Reduzca la resolución de un shapefile en R (o QGIS si es necesario)

12

Estoy usando archivos de forma de la historia de los límites del estado de EE. UU. Desde NHGIS para hacer mapas en R. Estos archivos de forma tienen una resolución mucho más alta de lo que necesito cuando hago mapas a escala del país: más de 2 millones de observaciones para un archivo. ¿Hay alguna manera de reducir la resolución de estos archivos de forma en R? Si es necesario, puedo hacerlo en QGIS en su lugar.

Lincoln Mullen
fuente
Puedes explicarme mas. La resolución está asociada a las imágenes. ¿Quiere decir que hay demasiados nodos en un polígono, proporcionando demasiados detalles? ¿O es que hay demasiados puntos en un archivo de forma de puntos?
Ryan Garnett
2
@Ryan Aunque la resolución está asociada con las imágenes, también es un concepto que tiene sentido para los datos vectoriales. Para las características de polilínea y polígono, se puede estimar en términos del número de vértices utilizados por unidad de longitud de arco. La resolución no siempre se puede determinar con precisión inspeccionando los datos vectoriales (considere un conjunto de características de puntos de alta resolución pero ampliamente espaciadas, por ejemplo), de donde típicamente se encuentra la resolución consultando los metadatos apropiados.
whuber
Quiero decir que hay muchos más puntos en el archivo de forma que los necesarios para hacer un mapa de una nación. Quisiera ese nivel de detalle para hacer, por ejemplo, un mapa de una ciudad. La razón por la que esto es importante para mí es que hace que la generación de tramas sea lenta y, por lo tanto, consume mucho tiempo iterar.
Lincoln Mullen

Respuestas:

9

Puede usarlo gSimplifydesde el rgeospaquete, y si agrega la topologyPreserve=TRUEbandera, conservará la topología.

Tenga en cuenta que aún puede terminar con líneas superpuestas: necesitamos una implementación de este robusto algoritmo DP en R:

http://www.sciencedirect.com/science/article/pii/S0098300413002380

[ese enlace posiblemente detrás de un muro de pago]

Hombre espacial
fuente
+1 Es bueno saberlo. Los rgeosdocumentos están en cran.r-project.org/web/packages/rgeos/rgeos.pdf .
whuber
1

Un método estándar para "adelgazar" formas lineales (incluidos los límites de los polígonos) es el algoritmo Douglas-Peucker . Al menos dos Rpaquetes implementan esto: dpen el paquete shapefiles y thinnedSpatialPolyen el paquete Guerry .

Tenga en cuenta que el adelgazamiento de los polígonos adyacentes generalmente crea brechas y superposiciones leves en sus límites: no respeta las relaciones topológicas entre ellos. No conozco ningún Rpaquete que mantenga la topología mientras se adelgaza. Para fines de mapeo a pequeña escala como estos, esto no debería ser un problema grave.


Por cierto, porque ya nadie sabe cómo pronunciar alemán :-), Tom Poiker cambió la ortografía de su nombre hace un tiempo.

whuber
fuente
Desea tener mucho cuidado cuando está "adelgazando" la geometría. Si tiene varias capas que comparten límites, el adelgazamiento puede crear huecos y causar errores visuales y de precisión. El adelgazamiento excesivo puede hacer que los límites sean irregulares y demasiado simplificados. Querrás jugar y probar con las tolerancias dentro de la simplificación.
Ryan Garnett