Tengo una serie de shapefiles en diferentes CRS (principalmente WGS84 lat / lon) que me gustaría transformar en una proyección común (probablemente Albers Equal Area Conic, pero puedo pedir ayuda para elegir otra pregunta una vez que mi problema mejore) -definido).
Pasé unos meses haciendo cosas de estadísticas espaciales en R, pero fue hace 5 años. Por mi vida, no puedo recordar cómo transformar un sp
objeto (por ejemplo SpatialPolygonsDataFrame
) de una proyección a otra.
Código de ejemplo:
P4S.latlon <- CRS("+proj=longlat +datum=WGS84")
hrr.shp <- readShapePoly("HRR_Bdry"), verbose=TRUE, proj4string=P4S.latlon)
# Shapefile available at
# http://www.dartmouthatlas.org/downloads/geography/hrr_bdry.zip
# but you must rename all the filenames to have the same
# capitalization for it to work in R
Ahora tengo una SpatialPolygonsDataFrame
información de proyección adecuada, pero me gustaría transformarla en la proyección deseada. Recuerdo que hay una función con un nombre poco intuitivo para esto, pero no puedo recordar qué es.
Tenga en cuenta que no solo quiero cambiar el CRS sino cambiar las coordenadas para que coincidan ("reproyectar", "transformar", etc.).
Editar
Excluyendo AK / HI, que están molestamente ubicados en México para este archivo de forma:
library(taRifx.geo)
hrr.shp <-
subset(hrr.shp, !(grepl( "AK-" , hrr.shp@data$HRRCITY ) |
grepl( "HI-" , hrr.shp@data$HRRCITY )) )
proj4string(hrr.shp) <- P4S.latlon
fuente
Respuestas:
Puede usar los
spTransform()
métodos en rgdal; con su ejemplo, puede transformar el objeto en NAD83 para Kansas (26978):Para guardarlo en la nueva proyección:
EDITAR : O, según la sugerencia de @ Spacedman (que escribe un archivo .prj con la información de CRS):
Si no está seguro de qué CRS proyectar, consulte la siguiente publicación:
Y si uno quiere definir / asignar un CRS cuando los datos no tienen uno, consulte:
fuente
Desde la introducción del paquete sf (eche un vistazo a las viñetas sf1 , sf2 , sf3 , sf4 y una guía de migración aquí ) puede usar
st_transform()
para volver a proyectar sus datos vectoriales:SF sustituirá sp en el futuro y, debido a su simplicidad y velocidad, ofrece varias ventajas en comparación con sp.
fuente