Respuestas:
El ráster se almacena en formato de coma flotante como valores individuales en cada celda; por lo tanto no tiene tabla de atributos. Una solución efectiva es discretizar los valores y convertirlos a formato entero. Esto crea una tabla de atributos que, cuando se traza, generará un histograma. Sus sumas acumulativas son la curva hipsométrica.
La apariencia de la curva hipsométrica (en forma de CDF) para este DEM de muestra (una porción de Illinois disponible en http://exampledata.wolfram.com/ArcGRID.zip ) varía con la precisión de la discretización del valor. Las siguientes imágenes usan contenedores de 5, 1 y 1/5 metros, respectivamente. Como puede ver, se puede obtener una curva precisa utilizando contenedores moderadamente gruesos.
Discretizar una cuadrícula implica dos operaciones que se pueden realizar en un solo paso: dividir por el ancho del contenedor y truncar (o redondear, si lo prefiere). Por ejemplo, las elevaciones en metros se pueden discretizar en incrementos de 0.1 metros a través de la división por 0.1 seguido de truncamiento, como en
Int( [elevation] / 0.1 )
Esta sintaxis, o algo parecido, se usaría en casi cualquier versión de ArcGIS (y también en muchos otros SIG ráster).
Normalmente uso R para esto. Puede leer conjuntos de datos ráster GDAL usando rgdal
(de CRAN), luego construir una distribución empírica acumulativa para los valores de elevación usando ecdf
(incorporado).
Por ejemplo, tengo mi DEM en un archivo GeoTIFF, en uso R:
library(rgdal)
topo <- readGDAL("mytoporaster.tif")
plot(ecdf(topo$band1), main="Hypsometric curve", xlab="Elevation (m)")
También vea el tutorial en Carleton .
Me encontré con este documento que habla de una extensión ArcGIS 9.x.
La extensión con datos de muestra se proporciona en esta ubicación de descarga .
Para el registro, la extensión funciona en ArcGIS 10.4.1.
Floor
función, porque algunasInt
implementaciones se truncan hacia 0 en lugar de hacia abajo, lo que duplicaría el ancho del contenedor que contiene 0 (un resultado no deseado).