7 votos

Obtener coordenadas X, Y en el centro de una celda raster

Estoy tratando de conseguir el X, Y coordenadas de todas las celdas de un archivo raster utilizando Python 2.6 y ArcGIS 10.0.

Me gustaría obtener la X, Y coordenadas en el centro de la célula.

¿Hay alguna manera de hacerlo?

10voto

sker Puntos 2670

Usted puede utilizar el módulo arcpy del GetRasterProperties comando para obtener la xmin, xmax, ymin e ymax coordenadas para la trama. Mediante la conversión de estos valores, los cuales son devueltos usando getOutput como unicode, carrozas aritmética simple se puede realizar a dar al centro de coordenadas del archivo raster.

import arcpy

path = r'C:\dem\profile-dtm_57583\grids\ns78ne1'

xmin = arcpy.GetRasterProperties_management(path,'LEFT')
xmax = arcpy.GetRasterProperties_management(path,'RIGHT')
ymin = arcpy.GetRasterProperties_management(path,'BOTTOM')
ymax = arcpy.GetRasterProperties_management(path,'TOP')

centerX = (float(xmax.getOutput(0)) + float(xmin.getOutput(0))) / 2
centerY = (float(ymax.getOutput(0)) + float(ymin.getOutput(0))) / 2

print centerX, centerY

EDITAR:

Para obtener las coordenadas de cada celda en el ráster, puede tomar la trama cellsize, y utilizarlo como un paso para recorrer todos los valores de xmin a xmax ymin a ymax para conseguir pasar a través de las coordenadas para cada celda.

#assuming square cells
cellsize = arcpy.GetRasterProperties_management(path,'CELLSIZEX')
cellsize = int(cellsize.getOutput(0))

for x in xrange(int(xmin.getOutput(0)), int(xmax.getOutput(0)), cellsize):
    for y in xrange(int(ymin.getOutput(0)), int(ymax.getOutput(0)), cellsize):
        print x,y

Nota este código va a tomar mucho tiempo para ejecutar con esta instrucción print como se debe imprimir una nueva línea para cada celda en el ráster.

Otro método sería leer el convertir la trama en un ASCII raster y leer en una 2D numpy matriz. La matriz de índices de haría, a continuación, corresponden a las coordenadas de las celdas.

2voto

Eric G Puntos 131

Si convierte la trama puntos añadir el X, Y de los campos y luego use la función de la geometría de calcular para añadir valores a los campos X e Y.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X