Apa cara terbaik untuk menampilkan gambar udara besar menggunakan GeoServer

8

Saya memiliki gambar udara - hampir 1,5 GB, GeoTIFF - dan saya telah mencoba menambahkannya sebagai lapisan di GeoServer ...

Menambahkan lapisan berhasil, tetapi kinerjanya sangat buruk.

Saya mencoba untuk me-cache layer menggunakan GeoWebCache, dan kinerjanya masih buruk.

Ada tips?

Mathboy
sumber

Jawaban:

13

Anda perlu memasang gambar dan menambahkan ikhtisar agar seluruh gambar tidak pernah dibaca ke dalam memori pada saat yang bersamaan. GeoServer menyediakan datastore piramida gambar untuk tujuan ini.

Saya menulis catatan ini yang menjelaskan bagaimana saya mengatur ini di mesin saya. Langkah kuncinya adalah menggunakan GDAL untuk membangun piramida menggunakan perintah berikut:

mkdir bmpyramid
gdal_retile.py -v -r bilinear -levels 8 -ps 2048 2048 -co \
"TILED=YES" -targetDir bmpyramid \
bluemarble.tif

Dimana-

  • -v: output verbose, memungkinkan pengguna untuk melihat setiap gulir pembuatan file dengan, sehingga mengetahui kemajuan sedang dibuat (konstruksi piramida besar bisa memakan waktu berjam-jam)
  • -r bilinear: gunakan interpolasi bilinear saat membangun level resolusi yang lebih rendah. Ini adalah kunci untuk mendapatkan kualitas gambar yang baik tanpa meminta GeoServer untuk melakukan interpolasi yang mahal dalam memori
  • -levels 8: jumlah level dalam piramida
  • -ps 2048 2048: setiap ubin di piramida akan menjadi 2048x2048 GeoTIFF
  • -co "TILED = YA": setiap ubin GeoTIFF di piramida akan menjadi ubin dalam
  • (Tidak digunakan di sini) -co "COMPRESS = JPEG": setiap ubin GeoTIFF dalam piramida akan dikompresi JPEG (berdagang ukuran kecil untuk kinerja yang lebih tinggi, cobalah tanpa parameter ini juga)
  • -targetDir bmpyramid: membangun piramida di direktori bmpyramid. Direktori target harus ada dan kosong
  • bmreduced.tiff: file sumber

Catatan utilitas untuk gdal_retile.py .

Ian Turton
sumber
Bagaimana saya bisa mendapatkan gdal_retile.py (saya menjalankan geoserver di bawah Windows XP)?
Mathboy
trac.osgeo.org/osgeo4w dan ikuti instruksi instal cepat
Ian Turton
Sekarang saya punya masalah, saya telah membuat ubin menggunakan alat gdal_retile.py, tapi saya mendapatkan kesalahan berikut dari Geoserver saat menghubungkan lapisan dengan folder ubin: Could not list layers for this store, an error occurred retrieving them: This plugin accepts only File, URL and String pointing to a fileada saran?
Mathboy
@iant, apakah garis miring pada bagian ini -co \ "TILED=YES"hanya memungkinkan instruksi untuk span linebreak di jendela perintah?
elrobis
3
Juga, ketika menggunakan gdal_retile di Windows untuk memproses res tinggi, raster area besar, saya sarankan menambahkan -useDirForEachRow. Secara default, retile menempatkan semua ubin yang dibuat di folder yang sama, dan untuk raster besar, ini menciptakan perlambatan luar biasa setelah memiliki sekitar 350.000 ubin di folder root. Sebaliknya, -useDirForEachRowtempatkan ubin untuk setiap baris di folder mereka sendiri di bawah akar ubin. Ini berarti kecepatan tinggi pada Windows. Sebelum -useDirForEachRowmosaik gambar full-county (6-inci) perlu 2 bulan untuk berjalan! Setelah -useDir, proses penuh akan selesai dalam semalam.
elrobis