Wyjaśnienie: Jakoś pominąłem kluczowy aspekt: nie używając os.system lub podprocesu - tylko API Pythona.Jak projektować i próbkować siatkę, aby pasowała do innej siatki z pytonem GDAL?
Próbuję przekonwertować sekcję siatki przesunięcia GTX NOAA dla pionowych transformacji bazy danych i nie całkowicie śledzić, jak to zrobić w GDAL z pythonem. Chciałbym wziąć siatkę (w tym przypadku Batymetry Attended Grid, ale może to być geotif) i użyć go jako szablonu, który chciałbym zrobić. Jeśli mogę to zrobić dobrze, mam wrażenie, że bardzo pomoże to ludziom w korzystaniu z tego rodzaju danych.
Oto, co mam, to zdecydowanie nie działa. Kiedy uruchamiam gdalinfo na wynikowym docelowym zbiorze danych (dst_ds), nie pasuje on do źródłowej siatki BAG.
from osgeo import gdal, osr
bag = gdal.Open(bag_filename)
gtx = gdal.Open(gtx_filename)
bag_srs = osr.SpatialReference()
bag_srs.ImportFromWkt(bag.GetProjection())
vrt = gdal.AutoCreateWarpedVRT(gtx, None, bag_srs.ExportToWkt(), gdal.GRA_Bilinear, 0.125)
dst_ds = gdal.GetDriverByName('GTiff').Create(out_filename, bag.RasterXSize, bag.RasterYSize,
1, gdalconst.GDT_Float32)
dst_ds.SetProjection(bag_srs.ExportToWkt())
dst_ds.SetGeoTransform(vrt.GetGeoTransform())
def warp_progress(pct, message, user_data):
return 1
gdal.ReprojectImage(gtx, dst_ds, None, None, gdal.GRA_NearestNeighbour, 0, 0.125, warp_progress, None)
przykład pliki (ale każde dwie siatki, gdzie nakładają się na siebie, ale są w różnych występów zrobi):
- http://surveys.ngdc.noaa.gov/mgg/NOS/coast/F00001-F02000/F00574/BAG/ F00574_MB_2m_MLLW_2of3.bag
- http://vdatum.noaa.gov/download/data/VDatum_National.zip MENHMAgome01_8301/mllw.gtx
Wiersz poleceń odpowiada temu, co próbuję wykonać:
gdalwarp -tr 2 -2 -te 369179 4773093 372861 4775259 -of VRT -t_srs EPSG:2960 \
MENHMAgome01_8301/mllw.gtx mllw-2960-crop-resample.vrt
gdal_translate mllw-2960-crop-resample.{vrt,tif}
Jakie jest wyjście z WKT dla bag_srs? Czy zweryfikowaliście, że to ten sam SRS, który daje "torba"? Znalazłem WKT, który jest ... no, nie jest dobrze sformatowany ... Zauważyłem, że wersja wiersza poleceń określa EPSG: 2960 (co jest NAD83?). Nie używałem gdal od dłuższego czasu, ale jeśli wpadłbym na to, domyślam się, że zacznę od upewnienia się, że reprojection używa właściwych wartości SRS. Niestety, nie jest to dobra odpowiedź ... dlatego jest to komentarz. – Kasapo