Menghaluskan / menginterpretasi ulang raster dengan GDAL?

15

Pendek:
Saya ingin mengubah resolusi raster dan menghaluskan jalan abu-abu seperti yang ditunjukkan pada gambar di bawah. Preferensi adalah menggunakan GDAL, PIL atau Numpy.

Deskripsi:
Saya mengarahkan poin ke raster dengan resolusi keluaran 20 meter dengan High Performance Geostatistic Library . Saya tidak ingin mengubah resolusi output karena waktu interpolasi meningkat secara eksponensial.
Dengan resolusi ini gambar output jelek (pixelated dan alias). Saya tidak tahu apakah itu benar secara konseptual tetapi saya ingin gambar menjadi lebih halus seperti pada contoh di bawah ini. Ini seperti 'reinterpolasi' gambar menjadi resolusi yang lebih baik. Saya menggunakan python sehingga preferensi saya adalah GDAL, Python Imaging Library atau Numpy. Jawabannya bisa teoretis, seperti menunjukkan nama algoritma atau konsep operasi semacam ini.

Sumber:
masukkan deskripsi gambar di sini

Tujuan:
masukkan deskripsi gambar di sini

Hasil EDIT dengan gdalwarp cubic spline:
masukkan deskripsi gambar di sini

Pablo
sumber
Saya tidak mendapatkan hasil sebaik gambar 'setelah' yang Anda poskan dengan gdalwarp. Bisakah Anda memposting perintah persis yang Anda gunakan?
Grant Humphries

Jawaban:

5

Gunakan GDALReprojectImage , yang diekspos dengan Python:

from osgeo import gdal
help(gdal.ReprojectImage)

Untuk interpolasi yang halus, gunakan metode bilinear atau kubik. Fungsi ini canggung, karena tidak mengambil argumen kata kunci, sehingga Anda perlu menemukan posisi:

gdal.ReprojectImage(src_ds, dst_ds, None, None, gdal.GRA_Bilinear)

Mungkin bagian yang sulit adalah pengaturan dst_ds, yang perlu memiliki geotransform serupa src_ds, tetapi dengan ukuran sel yang dimodifikasi.

Mike T
sumber
+1. Saya tidak yakin apa metode "kubik" itu. Jika spline kubik, kemungkinan akan lebih halus daripada bilinear; tetapi jika itu adalah konvolusi kubik, itu akan menjadi kurang mulus dari bilinear. Spline kubik akan menjadi ideal.
whuber
1
@whuber benar, ada dua opsi algoritma "kubik" : GRA_CubicSpline(coba ini dulu) vs. GRA_Cubic(konvolusi).
Mike T
0

Untuk memperlancar variasi, Anda memerlukan filter low-pass. Anda bisa menulis sendiri menggunakan GDAL, atau ada yang menggunakan GRASS. Saya belum mencobanya, tapi ini panduan http://wiki.awf.forst.uni-goettingen.de/wiki/index.php/Exercise_31

Anda mungkin ingin mengambil sampel raster Anda terlebih dahulu sebelum menerapkan filter low-pass untuk mendapatkan output resolusi yang lebih baik.

spatialthoughts
sumber
1
Saya tidak berpikir OP ingin memuluskan variasi: jika tidak, mengapa pergi ke upaya kriging? Semua manfaatnya akan hilang. Alih-alih, seperti yang disarankan gambar, pertanyaannya meminta prosedur resampling yang halus untuk membuat versi resolusi yang lebih tinggi dari hasil yang telah diperoleh (yang merupakan cara cerdas dan efisien untuk mempercepat kriging).
whuber
-1

Anda dapat menggunakan filter peringkat / median dengan jari-jari = 5, yaitu ukuran kernel ukuran = 11, (untuk setiap saluran rgb).

yildirim
sumber