Un Sistema de Información Geográfico (GIS por sus siglas en inglés), es un sistema (software + hardware) que permite gestionar y analizar la información capturada en el entorno fÃsico.
Ver código de R aquÃ
La geometrÃa de este tipo de datos se compone de uno o más vértices interconectados. Un vértice describe una posición en el espacio utilizando un eje X y un eje Y (opcionalmente también un eje z). Mas información aquÃ.
Un conjunto de datos ráster está compuesto por una matriz de pÃxeles (también conocidos como celdas). Cada pÃxel representa una región geográfica, y el valor del pÃxel representa alguna caracterÃstica de la región. Mas información aquÃ.
Tomado de: Applied Spatial
Data Analysis with R
Punto: está compuesto de un solo vértice. LÃnea
o arco: está compuesto de dos o más vértices, pero el primer y
el último vértice deben ser diferentes. PolÃgono: está
compuesto de tres o más vértices, pero el último vértice es igual a la
primero.
Nombre | Extensión | Tipo |
---|---|---|
ESRI Shapefile | .shp (archivo principal) | Vector |
GeoJSON | .geojson | Vector |
KML | .kml | Vector |
GPX | .gpx | Vector |
GeoTIFF | .tif/.tiff | Raster |
Arc ASCII | .asc | Raster |
R-raster | .gri,.grd | Raster |
SQLite/SpatiaLite | .sqlite | Vector y raster |
ESRI FileGDB | .gdb | Vector y raster |
GeoPackage | .gpkg | Vector y raster |
Nota: Además del archivo .shp (que almacena la geometrÃa del objeto), el ESRI Shapefile debe contener un archivo .shx (almacena el Ãndice de la geometrÃa), un archivo .dbf (dataframe con los atributos) y un archivo .prj (contiene información del CRS).
Todo objeto espacial está asociado a un CRS (Coordinate Reference Systems). El CRS proporciona una referencia espacial estandarizada de un objeto. El CRS puedes ser Sistema de Coordenadas Geográficas o un Sistema de Coordenadas Proyectadas.
En este SCG las ubicaciones se miden en unidades angulares desde el centro de la tierra en relación con dos planos (uno definido en el ecuador y otro definido en el primer meridiano). En este sentido una ubicación se define como la combinación entre un valor de latitud (-90:90) y un valor de longitud (-180:180).
Es un sistema de referencia de coordenadas bidimensional, se define normalmente mediante dos ejes. Ubicados en ángulo recto uno respecto al otro, formando el denominado plano XY (como en un plano cartesiano). Existen por lo menos 3 familias de Sistemas de Coordenadas Proyectadas, Plana (a), Cónica (b) o CilÃndrica (c).
Tomado de: https://docs.qgis.org
Por ejemplo, los CRS geográficos y los CRS proyectados están expresados en unidades diferentes. El mapa de la izquierda tiene un CRS que está representado en grados decimales, mientras que la unidad de medida del mapa de la derecha es metros.
Ver código de R aquÃ
Sim embargo, dentro de los CRS geográficos/proyectadas pueden existir
puntos de origen diferentes. El mapa de la derecha usa un CRS con EPSG NAD83 y tiene las
unidades de medida en metros, el de la derecha también tiene unidades de
medidas de metros, pero usa una CRS Azimuthal que está centrada en
Tegucigalpa (coordenadas lon_0=-87
y
lat_0=14
):
Ver código de R aquÃ
Todas las CRS cuentan con un código de la European Petroleum Survey Group (EPSG), el cual almacena los parámetros geodésicos con códigos estándar. Puede encontrar otras referencias de EPSG aquÃ
Aquà puede acceder a los repositorios de GitHub con las librerÃas de r-spatial.
Ver código de R aquÃ
Fue escrita por Edzer Pebesma
y Roger Bivand quienes también
la librerÃa sp
(la versión anterior de
sf
).
sf
si sp
ya ha
sido probada y probada? • Lectura y escritura rápida de datos.
• Rendimiento de trazado mejorado.
• Los objetos sf pueden tratarse como dataframes en la mayorÃa de las operaciones.
• Las funciones de sf se pueden combinar con el operador %>% y
trabaja bastante bien con las funciones de la librerÃa
tidyverse
.
• Los nombres de las funciones sf son relativamente consistentes e intuitivos (todos comienzan con st_).
Vignettes in package ‘sf’:
sf1 1. Simple Features for R (source, html)
sf2 2. Reading, Writing and Converting Simple
Features (source, html)
sf3 3. Manipulating Simple Feature Geometries
(source, html)
sf4 4. Manipulating Simple Features (source, html)
sf5 5. Plotting Simple Features (source, html)
sf6 6. Miscellaneous (source, html)
sf7 7. Spherical geometry in sf using s2geometry
(source, html)
Un simple feature es cualquier objeto en el mundo real, como una
calle o un edificio. Un objeto sf
posee una geometrÃa
(describe lugar de la Tierra en el que se encuentra) y unos atributos
(describe otras propiedades del objeto). La geometrÃa de un árbol puede
ser el un cÃrculo con el diámetro de su copa o un punto que indica su
centro. Las propiedades pueden incluir su altura, color, diámetro,
etc.
Tomado de: https://docs.qgis.org
sf
Un objeto sf
puede almacenar por lo menos seis de los
siguientes tipos de datos vectoriales:
Por ejemplo, si usted tiene un objeto de clase sf
al que
le asignó el nombre de spatial_objetc
. Puede inspeccionar
la clase del objeto asÃ:
Y al imprimirlo sobre la consola puede observar que este objeto
contiene atributos (columnas
DPTO_CCDGO
,MPIO_CCDGO
,CPOB_CCDGO
,NANG_RTCN
y CSIMBOL
) e información sobre la geometrÃa:
## [4.] Modelo monocéntrico
Para replicar este ejercicio, primero debe descargar el siguiente proyecto
de R y abrir el archivo clase-02.Rproj
. Ahora puede
seguir el script de la clase que está ubicado en:
source/clase-02.R
Puede obtener la API-key de US Census Bureau Data aquÃ. Además, puede obtener una documentación de la librerÃa aquÃ.
## get Median Housing Values Cook county
chicago = get_acs(geography="block group",variables="B25077_001E",state ="IL",county="Cook County",year=2016,geometry=T)
## get Median Housing Values Suffolk County
boston = get_acs(geography="block group",variables="B25077_001E",state ="MA",county="Suffolk County",year=2016,geometry = T)
## [1] "sf" "data.frame"
## Warning: sf layer has inconsistent datum (+proj=longlat +datum=NAD83 +no_defs).
## Need '+proj=longlat +datum=WGS84'
## Boston CBD
boston_cbd = geocode_OSM("Carmen Park, Boston", as.sf=T)
leaflet() %>% addTiles() %>% addCircleMarkers(data=boston_cbd,col="red",weight=3)
## Chicago CBD
chicago_cbd = geocode_OSM("233 S Wacker Dr, Chicago, IL 60606, Estados Unidos", as.sf=T) ## Willis Tower
leaflet() %>% addTiles() %>% addCircleMarkers(data=chicago_cbd,col="red",weight=3)
## create distances Boston
boston_cbd = boston_cbd %>% st_transform(st_crs(boston)) ## change CRS
boston$dist_CBD = st_distance(boston,boston_cbd)
boston$dist_CBD = as.numeric(boston$dist_CBD)*0.000621371
## create distances Chicago
chicago_cbd = chicago_cbd %>% st_transform(st_crs(chicago)) ## change CRS
chicago$dist_CBD = st_distance(chicago,chicago_cbd)
chicago$dist_CBD = as.numeric(chicago$dist_CBD)*0.000621371
## prepare data
boston$City="Boston" ## create name city
chicago$City="Chicago" ## create name city
chicago=chicago %>% filter(dist_CBD<=10) ## keep block groups in Cook County that are within 10 miles of the city center
st_geometry(chicago) = NULL
st_geometry(boston) = NULL
dta = rbind(chicago,boston) # stack data
## scaterplot
ggplot(dta, aes(x=dist_CBD, y=estimate, color=City)) +
geom_point(shape=1) + geom_smooth(method="lm") + xlab("Distance to CBD (miles)") +
ylab("Median Housing Prices ($)") + theme_test()
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 288 rows containing non-finite values (`stat_smooth()`).
## Warning: Removed 288 rows containing missing values (`geom_point()`).
## ggplot + mapping
p = ggplot(data=bog) + geom_sf(mapping = aes(fill=q_price) , size=0.3 , col=NA) +
scale_fill_manual(values=c("yellow","#FF9900","#FF6600","#CC0000","#990000"),
name="Valor mediano\n del metro cuadrado")
## add theme and labels
p = p + theme_bw() + labs(x="",y="")
## add scalebar and north symbol
p = p + north(data=bog , location="topleft") +
scalebar(data=bog , dist=5 , dist_unit="km" , transform=T , model="WGS84")
p
## plot
ggplot(bog, aes(x=dist_CBD/1000, y=price_surface_median/1000000)) +
geom_point(shape=1) + geom_smooth(method="lm") +
theme_bw() + labs(x="DistancÃa al centro de negocios de la ciudad (kilómetros)",
y="Valor mediano del metro cuadrado (millones)")
## `geom_smooth()` using formula = 'y ~ x'