Saya sedang mengerjakan aplikasi yang perlu membuat ubin (jpeg) dari dataset raster yang diberikan. Kecenderungan awal saya adalah menggunakan gdal2tiles.py, tetapi kinerjanya sepertinya dapat ditingkatkan.
Itu membuat saya mengajukan pertanyaan berikut: Apa cara tercepat untuk memotong 'gambar ubin' dari dataset raster menggunakan GDAL? Dan dengan 'ubin gambar', maksud saya hanya jpeg atau png sederhana.
Dalam prototipe saya, saya menggunakan binding MapServer C # MapScript untuk melakukan pekerjaan itu. Artinya, saya membuat objek peta, loop melalui semua batas ubin yang perlu saya potong, atur sejauh mana objek peta, dan kemudian simpan gambar yang dihasilkan. Kinerja dari pendekatan ini secara signifikan lebih baik daripada gdal2tiles.py, tetapi saya bertanya-tanya apakah saya menggunakan GDAL secara langsung jika saya tidak dapat membuatnya lebih cepat. Adakah yang bisa menyarankan alur kerja serupa dengan metode GDAL?
EDIT: Setelah beberapa penelitian hari ini, saya menemukan jawabannya tepat di depan saya. Jika Anda telah mengunduh FWTools, folder csharp \ apps berisi sejumlah kelas untuk menunjukkan ikatan C # GDAL. Dalam kasus saya, GDALRead.cs dan GDALReadDirect.cs adalah apa yang saya cari.
Jawaban:
Seseorang telah menghabiskan waktu untuk menggunakan gdal2tiles.py menggunakan banyak prosesor: parallel gdal
Saya telah menggunakan ini dan sepertinya berhasil. Ini berhasil menggunakan semua 4 core hingga 100% dan memotong total waktu untuk membuat ubin hingga 1/4 dari waktu aslinya.
sumber
Apakah kamu mencoba ini? http://www.klokan.cz/projects/gdal2tiles/
sumber
Di perusahaan saya, kami menulis skrip python khusus, menggunakan gdal_warp (sebelum kami tahu ada gdal2tiles). Itu lebih cepat daripada g2t, terutama ketika kita menulis ulang untuk berjalan di banyak core (menggunakan pypool threadpool). Juga menghasilkan ubin berkualitas lebih tinggi (interpolasi lanczos pada g2t tampaknya bekerja buruk, di gdal_warp ubin yang dihasilkan sangat mencengangkan).
Perlu sedikit usaha untuk menulis skrip, Anda perlu secara manual menghitung kotak pembatas yang dihasilkan, mengatur beberapa opsi untuk proyeksi, dll.
sumber
MapCruncher
http://research.microsoft.com/en-us/um/redmond/projects/mapcruncher/
berfungsi dengan baik dan dapat digunakan untuk memotong gambar
sumber
Pilihan lain menggunakan TileCache (WMS-C). Meskipun saya belum pernah menggunakan gdal2tiles, saya tidak akan berharap bahwa TileCache akan membawa peningkatan kinerja.
Bagaimanapun, strategi berikut dapat mempercepat pemasangan:
sumber
Skrip gdal_tiler.py dari http://code.google.com/p/tilers-tools bisa menjadi opsi yang bermanfaat.
Biasanya ini menunjukkan kinerja yang sangat baik dibandingkan dengan gdal2tiles.py dan itu harus bekerja dengan sumber GDAL (dataset), khususnya, itu tidak memerlukan konversi dataset sumber ke RGB.
sumber
Gdal2tiles_parallel https://gitlab.com/GitLabRGI/erdc/geopackage-python Jika geopackage atau MBTILES maka tidak diperlukan python yang dilakukan secara native dengan gdal_translate.EXE. Anda juga perlu menjalankan gdaladdo untuk menambahkan lebih dari satu level zoom. saya juga menggunakan qtiles / qmetatiles untuk desktop qgis. Masih tidak ada yang bisa bersaing dengan perangkat lunak komersial maptiler pro. Jika Anda membutuhkan folder ubin, konversikan MBTILES ke TMS ATAU XYZ dengan mbUtil python
sumber