明確化:私は何とか重要な点を省いています:os.systemやサブプロセスを使用していません - 単にPython APIです。GDAL pythonで別のグリッドと一致するようにグリッドを投影して再サンプリングするにはどうすればいいですか?
私はNOAA GTXオフセットグリッドのセクションを垂直方向のデータ変換に変換しようとしていますが、これはGDALでpythonを使ってこれを行う方法に完全には従っていません。グリッド(この場合はBathimetry Attributed Gridですが、ジオテイフになる可能性があります)を使用して、テンプレートとして使用したいと思います。私がこのことを正しく行うことができれば、人々がこの種のデータを活用するのに大いに役立つと感じています。
これは私が間違いなく働いているものです。結果の宛先データセット(dst_ds)でgdalinfoを実行すると、ソースグリッド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)
例ファイル(それらは重複の任意の2つのグリッドが、異なる投影しているだろう):
- 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
私がやろうとしていることに相当するコマンドライン:
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}
bag_srsのWKTの出力は何ですか? 「バッグ」と同じSRSであることを確認しましたか?私はいくつかのWKTを見てきました。うまくフォーマットされていません...私は、コマンドラインのバージョンがEPSG:2960(NAD83ですか?)を指定していることに気付きました。私は長い間gdalを使用していませんが、これに遭遇した場合は再投影が適切なSRS値を使用していることを確認することから始めます。申し訳ありませんが、良い答えではありません...それが理由です。 – Kasapo