Actualmente estoy trabajando para importar los datos climáticos de CANGRID (proporcionados como archivos Surfer Grid ascii, ".grd") a ArcGIS. La cuadrícula tiene un tamaño de 95 filas por 125 columnas. Metadatos proporciona la latitud del origen (esquina inferior izquierda), el tamaño de la celda (50 km), así como la proyección de las notas como estereográfica polar con el meridiano central (110 grados W) y la latitud del origen (60 grados N).
Después de intentar primero convertir el .grd a rásteres como .ascii y .flt sin éxito, he conseguido utilizar GDAL para establecer la extensión y la proyección, sin embargo el conjunto de datos no se alinea correctamente con los límites de la zona prevista. Véase la imagen de abajo.
¿Existe alguna geotransformación aceptada para la estereografía polar que pueda explicar esta falta de alineación?
Por ejemplo, ¿hay algún factor de conversión o rotación específico que deba utilizar?
Un archivo de ejemplo del conjunto de datos está aquí: "t201113.grd"
Este es el código que estoy utilizando actualmente en 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
`
Además, aquí está la información de la proyección, tal y como se define en la entrada, es decir, desde "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],PARÁMETRO["Falso_noroeste",0.0],PARÁMETRO["Meridiano_central",0.0],PARÁMETRO["Factor_de_escala",1.0],PARÁMETRO["Latitud_de_origen",90.0],UNIDAD["50_Kilómetros",50000.0]]'
Y la GeoTransformación de entrada:
(-0.5, 1.0, 0.0, 94.5, 0.0, -1.0)
También se proporcionan las coordenadas lat y long de la cuadrícula, y cuando se ven en el sistema de coordenadas proyectadas tienen el aspecto siguiente. Cuando la geotransformación está definida por las coordenadas de la parte inferior izquierda (amarillo) o superior derecha (rosa), puedo establecer efectivamente la extensión, pero sigue habiendo problemas de alineación en todo el raster.
0 votos
Si está utilizando ArcGIS, cambie al Polo Norte Estereográfico y establezca el paralelo estándar en 60,0. La implementación estereográfica de ArcGIS utiliza un factor de escala en lugar de un paralelo estándar porque el proyecto puede centrarse en cualquier lugar.
0 votos
Gracias @mkennedy - ¿te refieres al proyecto "North Pole Stereographic" (WKID 102018)? He configurado los valores de latitud de origen y meridiano central utilizando esta proyección y sigo teniendo el mismo problema. ¿Quizás te refieres a otra proyección?
0 votos
No, necesitas uno donde la proyección (método) sea Stereographic_North_Pole. No creo que tengamos el PCS exacto; intente modificar desde 3995 o 3413.
0 votos
Hasta ahora no ha habido suerte modificando el paralelo estándar ni en el WKID 3995 ni en el 3413, por desgracia. Cualquier otra sugerencia será muy apreciada.
1 votos
Los metadatos indican que "El archivo grid_pnt_lls.txt lista las lat/longs para cada x/y (0,0 = esquina SW de la cuadrícula)". Con este archivo en la mano se podría reproyectar esta cuadrícula a cualquier sistema de coordenadas que se desee y seguir a partir de ahí.
0 votos
Gracias @whuber.Para que quede claro, ¿estás sugiriendo el enfoque de Warp from File en ArcGIS Desktop, y que debo calcular las coordenadas de ida y vuelta para cada ubicación de la cuadrícula?
0 votos
Es sólo un detalle porque no entiendo todo el panorama. Supongo que en lugar de xres = 1 y yres = -1 deberías darle a GDAL el tamaño del pixel, xres = 50000 yres = -50000.
0 votos
@user30184 - gracias, sí, la unidad lineal en la proyección es 50000m. Como alternativa, puedes modificar la unidad lineal en la proyección para que sea "Metros, 1.0" y luego establecer el tamaño de la celda en la geotransformación a 50000.
0 votos
El archivo de metadatos se refiere al grid_pnt_lls.txt. ¿Dónde puedo ver este archivo?
0 votos
@Matej ftp.ccrs.nrcan.gc.ca/ad/EMS/Anita/DATA/CANGRID/original_files (asegúrese de leer el archivo readme2.txt)
0 votos
Puede que me equivoque en el sistema de coordenadas porque el readme2.txt y los archivos que enumeran las coordenadas de las celdas muestran un origen en aproximadamente 40.0451N 129.8530W, sin embargo la proyección es "verdadera" en 60N.
0 votos
@mkennedy: El enlace de arriba requiere autenticación.
0 votos
@Matej, no me ha consultado. ¿Tu navegador está configurado para enviar usuario: anónimo, contraseña: dirección_de_email? Si sigues sin poder acceder, envíame un correo electrónico (mkennedy arroba esri punto com) y te los enviaré.
1 votos
¿Dónde podemos descargar la capa vectorial para las pruebas?