Saya ingin menyelaraskan banyak raster dalam beberapa ukuran piksel, luas dan sistem proyeksi menggunakan Python atau PyQGIS.
Pikiran pertama adalah menggunakan GDAL:
gdalinfo (untuk mencari informasi dari raster referensi)
gdalwarp (untuk mengonversi sistem proyeksi dan ukuran piksel)
gdal_translate (untuk mengonversi luas)
Mereka bekerja, tetapi tidak mudah untuk menggunakan alat-alat itu bersama-sama dengan Python dan mereka membutuhkan banyak waktu untuk menyelesaikan pekerjaan ini. Selain itu, dapat dilakukan dengan mudah menggunakan QGIS dan Align Rasters Tool.
Apakah ada alat yang melakukan pekerjaan ini menggunakan PyQGIS atau Python? (Saya ingin bekerja lebih banyak pemrograman secara otomatis)
MEMPERBARUI
Saya menemukan kode ini dari pertanyaan ini :
from osgeo import gdal, gdalconst
inputfile = #Path to input file
input = gdal.Open(inputfile, gdalconst.GA_ReadOnly)
inputProj = input.GetProjection()
inputTrans = input.GetGeoTransform()
referencefile = #Path to reference file
reference = gdal.Open(referencefile, gdalconst.GAReadOnly)
referenceProj = reference.GetProjection()
referenceTrans = reference.GetGeoTransform()
bandreference = reference.GetRasterBand(1)
x = reference.RasterXSize
y = reference.RasterYSize
outputfile = #Path to output file
driver= gdal.GetDriverByName('GTiff')
output = driver.Create(outputfile, x, y, 1, bandreference.DataType)
output.SetGeoTransform(referenceTrans)
output.SetProjection(referenceProj)
gdal.ReprojectImage(input, output, inputProj, referenceProj, gdalconst.GRA_Bilinear)
del output
Kode itu berfungsi dengan baik kecuali klip raster. Adakah yang tahu cara memperbarui kode ini ke raster input klip hingga rujukan referensi dalam kode?
Jawaban:
Pendekatan dan waktu GDAL
Saya setuju dengan @user: 78446 - gdal adalah cara terbaik ke depan dan Anda harus dapat menggunakan alat yang sudah Anda sebutkan yaitu gdalwarp, gdaltranslate dll. Ini akan menjadi proses yang cukup panjang karena untuk setiap raster, setiap sel harus disesuaikan. dan pada dasarnya diinterpolasi kembali untuk memperhitungkan penyelarasan sel - bahkan lebih lama berdasarkan ukuran raster.
Kebetulan dalam analisis berikut, pastikan untuk memperhitungkan perubahan nilai piksel raster ini juga - terutama jika penyelarasan raster berada pada jarak yang sangat besar.
GDAL dan Python
Dengan melihat-lihat forum, Anda akan menemukan banyak contoh yang menunjukkan cara merangkai gdal dan python bersama, misalnya di sini .
Juga, lihat bantuan di sini untuk bekerja dengan gdal dan Python bersama.
sumber
Tampaknya Anda dapat menggunakan gdal.Warp alih-alih ReprojectImage, seperti pada
(Kode diambil dari https://gis.stackexchange.com/a/237372/15183 ).
sumber
Bekerja dengan baik untuk saya. Hanya diperbaiki
GA_ReadOnly
dalam satu barisuntuk
Script memproyeksi ulang dan klip raster input (seluruh Eropa) ke resolusi dan tingkat raster referensi (bagian tengah), hasilnya:
gdalwarp
dapat juga digunakan untuk menyelaraskan raster ( Mengubah ukuran piksel dalam file 'asc' menggunakan Qgis? )sumber