lunes, 25 de enero de 2016

Generar malla de muestreo con ArcGIS 10


En muchos trabajos de campo es necesario generar una malla, una cuadrícula que divida en parcelas nuestra zona de estudio, para organizar los muestreos. Puede ser que esta malla nos venga predeterminada por la administración o  entidad que nos encargue el estudio, pero también puede darse el caso de que tengamos que desarrollar nuestra propia malla y cómo hacer esto con ArcGIS 10 es lo que veremos ahora.
 
Aquí tenemos la capa de nuestra zona de estudio.



Vamos a la herramienta Create Fishnet
 ArcToolbox>Data Management Tools>Feature Class>Create Fishnet




Rellenamos los distintos campos que nos pide:
       - Output feature class: nombre y ubicación de la capa que nos va a generar
       - Template Extent: aquí debemos especificar la extensión de la malla. Podemos hacerlo “a mano” o seleccionando con el menú desplegable la capa sobre la que vamos a generar la malla y nos rellena sus límites de forma automática 
      - Cell size width/height: ancho y alto de las cuadrículas que formarán nuestra malla
      - Number of rows/colums:  número de filas y columnas. Si queremos que lo calcule automáticamente le daremos el valor cero.
      - Create label points: si dejamos activada esta pestaña nos generará una capa adicional con los centroides de las parcelas 
- Geometry type: establecemos una geometría de tipo poligonal.


Este sería el resultado de ejecutar el proceso.
 

 Editamos la simbología para verlo mejor.
 


Como vemos, varias de las parcelas que nos genera no se corresponden con ninguna localización de nuestra zona de estudio, por lo que las eliminaremos. Para ello usaremos una selección por la localización. Barra de herramientas>Selection>Select by location
       - Target layer: la capa de las parcelas que hemos generado
       - Source layer: la capa de nuestra zona de estudio
       - Spatial selection method: intersect the source layer feature




Hemos seleccionado todas las parcelas que intersectan con la capa de la zona de estudio.



Ahora debemos invertir la selección para seleccionar las parcelas que nos interesa eliminar, para ello en el menú desplegable de la tabla de atributos calcamos Switch Selection.


 Ahora sí, ya tenemos tenemos seleccionadas las parcelas que nos interesa eliminar.
 



Desde la tabla de atributos, click del botón derecho sobre los registros seleccionados, Delete selected.






Ahora repetimos estos pasos para eliminar los puntos que no nos interesan de la capa de los centroides. En la selección por atributos realizaremos la selección de la capa de puntos sobre la capa de parcelas.






Ahora necesitamos codificar nuestras parcelas para poder identificarlas, para ello generamos un campo nuevo en la tabla de atributos.






Botón derecho sobre el campo, seleccionar Field Calculator, seleccionar Python, activar Show Codeblock y, Pre-Logic Script Code y en el siguiente cuadro escribir los siguientes códigos respectivamente:
 

rec=0 
def autoIncrement(): 
 global rec 
 pStart = 1  
 pInterval = 1 
 if (rec == 0):  
  rec = pStart  
 else:  
  rec += pInterval  
 return rec

autoIncrement()



(Código tomado del blog de Franz: http://respuestas.acolita.com/805/numerar-automaticamente-un-campo-de-una-tabla-en-un-shp)


Y así ya tenemos nuestras parcelas codificadas consecutivamente.



Ahora vamos a añadir el código de las parcelas a la capa de los centroides. Vamos a ArcToolbox>Analysis Tools>Overlay>Spatial Join.



En el cuadro de diálogo de la herramienta:
       - Target features: La capa de puntos con los centroides, que recibirá la información
      Join features: La capa de parcelas que contiene la información que queremos transferir
 - Output feature class: nombre y ruta de la nueva capa que nos va a generar


 Ahora ya tenemos en nuestra capa de los centroides la información acerca de a qué parcela pertenecen. El siguiente paso será añadir las coordenadas a esos puntos, para ello generamos dos campo que llamaremos “X” e “Y”.



Botón derecho sobre los campos que hemos generado, Calculate Geometry y seleccionamos las coordenadas X o Y según corresponda.




Y automáticamente se nos rellenan ambos campos con las coordenadas.