現在、CANGRID気候データ(Surfer Grid ascii、「。grd」ファイルとして提供)をArcGISにインポートしています。グリッドのサイズは、95行125列です。メタデータは、緯度/経度の原点(左下隅)、セルサイズ(50km)に加えて、中央子午線(110度W)と原点の緯度(60度N)を備えた極立体図としてのノートの投影を提供します。
最初に.grdを.asciiおよび.fltとしてラスターに変換しようとして失敗した後、GDALを使用して範囲と投影を設定することができましたが、データセットは意図した領域の境界に正しく整列しません。下の画像をご覧ください。
このアライメントの欠如を説明することができる、ポーラーステレオグラフィックの受け入れられた地理変換はありますか?
たとえば、使用すべき特定の変換係数または回転はありますか?
データセットのサンプルファイルは次のとおりです。「t201113.grd」
ここに私が現在GDALで使用しているコードがあります
ds = gdal.Open("t201113.grd")
array = ds.ReadAsArray()
x_rotation = 0
y_rotation = 0
xres = 1
yres = -1
llx = -129.8530
lly = 40.0451
ulx = -175.144
uly = 71.385
input_osr = osr.SpatialReference()
input_osr.ImportFromWkt(ds.GetProjection())
wgs84_osr = osr.SpatialReference()
wgs84_osr.ImportFromEPSG(4326)
wgs_to_nps_trans = osr.CoordinateTransformation(wgs84_osr, input_osr)
x, y, z = wgs_to_nps_trans.TransformPoint(llx,lly)
geo_transform = [ x, xres, x_rotation, y, y_rotation, yres ]
ncol = ds.RasterXSize
nrow = ds.RasterYSize
out_driver = gdal.GetDriverByName("HFA")
out_ds = out_driver.Create(t201113.img", ncol, nrow, 1, gdal.GDT_Float32)
out_ds.SetGeoTransform(geo_transform)
out_prj = 'PROJCS["North_Pole_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",60.0],UNIT["50_Kilometers",50000.0]]'
out_ds.SetProjection(out_prj)
out_ds.GetRasterBand(1).WriteArray(array)
out_ds.GetRasterBand(1).SetNoDataValue(1.70141e+038)
out_ds.FlushCache()
out_ds = None
`
また、入力、つまり「GetProjection()」から定義される投影情報は次のとおりです。
'PROJCS ["North_Pole_Stereographic"、GEOGCS ["GCS_WGS_1984"、DATUM ["WGS_1984"、SPHEROID ["WGS_1984"、6378137.0,298.257223563]]、PRIMEM ["Greenwich"、0.0]、UNIT ["Degree"、0.0174532925199433]]、 PROJECTION ["Stereographic"]、PARAMETER ["False_Easting"、0.0]、PARAMETER ["False_Northing"、0.0]、PARAMETER ["Central_Meridian"、0.0]、PARAMETER ["Scale_Factor"、1.0]、PARAMETER ["Latitude_Of_Origin"、90.0 ]、UNIT ["50_Kilometers"、50000.0]] '
そして、入力GeoTransform:
(-0.5, 1.0, 0.0, 94.5, 0.0, -1.0)
また、長いグリッド座標も提供されます。投影座標系で表示すると、次のようになります。ジオトランスフォームが左下(黄色)または右上(ピンク)座標の座標で定義されている場合、範囲を効果的に設定できますが、ラスター全体で位置合わせの問題が残ります。