Saya mengalami banyak masalah dengan GDAL. Selain hanya kadang-kadang kurang dokumentasi, tampaknya ada sedikit dukungan di Python. Ngomong-ngomong, ini hanyalah skrip proyek kumpulan yang berjalan demikian:
source_file = gdal.Open(filepath.encode("ascii"))
source_wkt = source_file.GetProjectionRef()
source_srs = osr.SpatialReference()
source_srs.ImportFromWkt(source_wkt)
reproj_file = gdal.AutoCreateWarpedVRT(source_file, source_wkt, dest_wkt)
gdal.ReprojectImage(source_file, reproj_file, source_wkt, dest_wkt)
reproj_attributes = reproj_file.GetGeoTransform()
driver = gdal.GetDriverByName("GTiff")
dest_file = driver.CreateCopy(outputpath.encode("ascii"), reproj_file, 0)
Bagian dest_srs dan des_wkt tidak didefinisikan dalam potongan kode ini tetapi berada di suatu tempat di luar loop (karena hanya perlu didefinisikan sekali). Tampaknya berfungsi sekali, saya bisa mendapatkan satu tif tampak bagus dari itu, lalu beri saya 'ERROR 6 WriteBlock () tidak didukung' dan python crash. Semuanya GeoTIFF dibuat dengan cara yang sama dengan data dasar yang sama (hanya waktu yang berbeda).
Juga karena sifat proyeksi ulang (dari GCS ke PCS), AutoCreateWarpedVRT cenderung membuat banyak ruang kosong, tetapi memberinya nilai 0, yang merupakan masalah karena itu bisa menjadi nilai data nyata. Apakah ada cara untuk mengatur nilai nodata ke -99?
sumber
gdalwarp -t_srs '+proj=utm +zone=11 +datum=WGS84' raw_spot.tif utm11.tif
. Sudah ada sejak lama, kaya fitur, teruji dengan baik, dan kemungkinan lebih cepat dari pendekatan python murni.Jawaban:
Tentang
AutoCreateWarpedVRT
ruang kosong.Lihatlah tiket kesalahan gdal ini .
Secara khusus dinyatakan di sana:
sumber
Option
memperbaiki, tetapi beralih ke menelepongdalwarp
melaluisubprocess
memecahkan masalah dengan membuka kedok NoData.