현재 CANGRID 기후 데이터 (Surfer Grid ascii, ".grd"파일로 제공)를 ArcGIS로 가져 오기 위해 노력하고 있습니다. 격자의 크기는 95 행 x 125 열입니다. 메타 데이터 는 위도 / 경도 (왼쪽 아래), 셀 크기 (50km), 중앙 자오선 (110W) 및 원점 (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_Of0.0O_in_Origin" ], UNIT [ "50_ 킬로미터", 50000.0]] '
입력 GeoTransform :
(-0.5, 1.0, 0.0, 94.5, 0.0, -1.0)
위도, 긴 그리드 좌표도 제공되며 투영 좌표계에서 볼 때 아래와 같습니다. 지오 변환이 왼쪽 하단 (노란색) 또는 오른쪽 상단 (분홍색) 좌표의 좌표로 정의되면 범위를 효과적으로 설정할 수 있지만 래스터 전체에 정렬 문제가 남아 있습니다.