UNIVERSIDAD CENTRAL DEL ECUADOR
                            
                            Facultad de Ciencias Económicas

                             Docente: Ing. Hernán Rengel

UNIVERSIDAD CENTRAL DEL ECUADOR

CONSULTAS
1 : Consultar cuales son las extensiones de los archivos shape y que contiene cada uno de ellos.

La información de partida con la que contamos es el enunciado y un conjunto de capas temáticas en formato vectorial. Estas capas se proporcionan en formato Shapefile, por lo que antes de comenzar conviene conocer algunos detalles sobre este formato:

El Shapefile es un formato de representación vectorial desarrollado por ESRI (Enviromental Systems Research Institute). Consta de un número variable de archivos, en los que se almacena digitalmente la localización de los elementos geográficos (archivo shape.shp) junto con sus atributos o características (tabla dBase.dbf). Algunas de las características principales de este tipo de archivos son:

No se trata de un único archivo, si no de entre 3 y 8 archivos independientes. Cada uno de estos archivos tiene una función específica y almacena un tipo de información (elementos geométricos, atributos, proyección, metadatos…)

SHAPE

Shape (.shp): Se trata del archivo principal y almacena la información geométrica de los elementos de la capa en formato vectorial. Pueden contener puntos, líneas o polígonos y cada vértice lleva implícitas sus coordenadas en un sistema de referencia concreto (que por lo general se especifica en el archivo project). Se componen de una cabecera con información general sobre el tipo de shapefile y un número variable de registros, que a su vez pueden estar compuestos por varias entidades geométricas independientes.

Shape Index (.shx): Consiste en un índice de las entidades geométricas que permite refinar las búsquedas dentro del archivo .shp.

Los archivos que contiene son:

● .shp — formato shape; características de la geometría propiamente dicha

● .shx — formato índice de shape; un índice con las características de las geometrías para permitir búsquedas más rápidas

● .dbf — formato de atributos; atributos presentados en columnas para cada “shape”

2 : Generar un script en rmarkdowmd que les permita abrir cada una de las coberturas de la dpa (provincias, cantones y parroquias) y adicionalmente un mapa base.
# Generar un script en rmarkdowmd

library(ggplot2)
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ tibble  3.1.8     ✔ dplyr   1.0.9
## ✔ tidyr   1.2.0     ✔ stringr 1.4.0
## ✔ readr   2.1.2     ✔ forcats 0.5.1
## ✔ purrr   0.3.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(datos)
## Warning: package 'datos' was built under R version 4.2.2
x11()
ggplot()+borders("world","ecuador")

# Ciudades

ciudades <- c("Quito","Guayaquil","Cuenca","Loja","Tena") 
ciudades
## [1] "Quito"     "Guayaquil" "Cuenca"    "Loja"      "Tena"
# Latitudes

lat <- c(-0.22985, -2.19616, -2.90055, -3.99313, -0.9938) 
lat
## [1] -0.22985 -2.19616 -2.90055 -3.99313 -0.99380
# Longitudes

lon<- c(-78.52495, -79.88621, -79.00453, -79.20422, -77.81286) 
lon
## [1] -78.52495 -79.88621 -79.00453 -79.20422 -77.81286
# Aqui se muestra la tabla creada con los datos de las ciduades 


Tabla_ciudades <-tibble(Ciudad = ciudades,
                         Latitud = lat, 
                         Longitud = lon)


Tabla_ciudades
## # A tibble: 5 × 3
##   Ciudad    Latitud Longitud
##   <chr>       <dbl>    <dbl>
## 1 Quito      -0.230    -78.5
## 2 Guayaquil  -2.20     -79.9
## 3 Cuenca     -2.90     -79.0
## 4 Loja       -3.99     -79.2
## 5 Tena       -0.994    -77.8
# Ahora grafica puntos capa de puntos

x11()
ggplot() +borders("world", "ecuador") +geom_point(data = 
                                                    Tabla_ciudades,
                                                  aes(x = lon, 
                                                      y = lat))

# Ahora grafica nombres provincias 

x11()
ggplot() +borders("world", "ecuador") + 
  geom_text(data = Tabla_ciudades,
            aes(x = lon,y = lat), 
            label = ciudades)

# Generar un script 

library(tidyverse)
library(jsonlite)
## 
## Attaching package: 'jsonlite'
## The following object is masked from 'package:purrr':
## 
##     flatten
library(httr)
library(highcharter)
## Warning: package 'highcharter' was built under R version 4.2.2
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
# En formato lista

mapa.ec <- 
  httr::GET("https://raw.githubusercontent.com/zpio/mapa-ecuador/main/ec-all.geo.json") %>% 
  httr::content(type = 'text') %>% 
  jsonlite::fromJSON(simplifyVector = FALSE)
## No encoding supplied: defaulting to UTF-8.
# En formato data frame

mapa_ec <- 
  jsonlite::fromJSON("https://raw.githubusercontent.com/zpio/mapa-ecuador/main/ec-all.geo.json") %>% 
  as.data.frame()

# 

provincias <- 
  data.frame(
    name= mapa_ec$features.properties$name,
    lon = mapa_ec$features.properties$longitude,
    lat = mapa_ec$features.properties$latitude
  ) %>% 
  filter(name != is.na(name)) %>% 
  mutate(across(everything(), as.character)) %>% 
  mutate(across(c(lon, lat), as.numeric))


# Poblacion Ecuador por provincia 2020

pop_prov <- read_csv('https://raw.githubusercontent.com/zpio/mapa-ecuador/main/pop_prov2020.csv')
## Rows: 24 Columns: 2
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Provincia
## dbl (1): Poblacion2020
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Mapa con colores degradados predeterminados

highchart() %>% 
  hc_add_series_map(
    map = mapa.ec,
    df = pop_prov, 
    name= 'Población',
    value = "Poblacion2020",
    joinBy = c("name", "Provincia"),
    dataLabels = list(enabled = TRUE, 
                      format = '{point.name}'),
    states = list(hover = list(color='#04635b')),
    borderColor = "#FFFFFF"
  ) %>% 
  hc_mapNavigation(enabled = TRUE) %>% 
  hc_add_theme(hc_theme_smpl()) %>% 
  hc_title(text = "Población del Ecuador por provincias") %>%
  hc_subtitle(text = "Source: https://github.com/zpio") %>% 
  hc_legend(
    layout= 'vertical',
    align= 'right',
    verticalAlign= 'bottom'
  )
3 : De la función que utilice para la presentación del mapa investigue los argumentos de la función y aplíquelos.

Muchos paquetes y funciones para la generación de gráficos se apoyan en los motores gráficos base de R. Sin embargo, para ciertos gráficos avanzados se quedan cortos. En este post, siguiendo con la estrecha relación entre R y los SIG, mostraremos los pasos para construir mapas con R con un acabado profesional utilizando el paquete ggplot2.

Antes de adentrarnos en el paquete ggplo2, es interesante conocer el funcionamiento del sistema de gráficos en R. Este sistema está formado por:

Paquetes gráficos. Sistemas gráficos. Motor de dispositivos gráficos. Paquetes de dispositivos gráficos.

librerias

library(tidyverse) library(jsonlite) library(httr) library(highcharter)

tres_prov <- pop_prov %>% 
  filter(Provincia %in% c("Guayas", "Pichincha", "Manabi")) %>% 
  arrange(Poblacion2020) %>% 
  mutate(value = 1:3)

highchart() %>% 
  #hc_chart(backgroundColor = "#161C20") %>% #color fondo imagen
  hc_add_series_map(
    map = mapa.ec,
    df = tres_prov, 
    name= 'Población',
    value = "value",
    joinBy = c("name", "Provincia"),
    dataLabels = list(enabled = TRUE, 
                      format = '{point.Provincia}'),
    states = list(hover = list(color='#e3e3e3')),
    tooltip = list(pointFormat = "Pop: {point.Poblacion2020:,.0f}"),
    borderColor = "#FFFFFF",
    #para cambiar el tono gris del mapa
    nullColor = "#e8e8e8" ) %>% 
  hc_mapNavigation(enabled = TRUE) %>% 
  hc_add_theme(hc_theme_smpl()) %>% 
  hc_colorAxis(
    ataClassColor="category", 
    dataClasses = list(list(from=1, to=1, color ='#c4a6ff', name="Manabi"),
                       list(from=2, to=2, color = '#ff4f4f', name="Pichincha"),
                       list(from=3, to=3, color = '#1e8bb0', name="Guayas"))
    
  ) %>%
  hc_title(text = "Población del Ecuador por provincias") %>%
  hc_subtitle(text = "Source: https://github.com/zpio") %>% 
  hc_legend(
    layout= 'vertical',
    align= 'right',
    verticalAlign= 'bottom')
4 : Investigue que componentes me sirven para activar capas bases en Qgis y como activarlas.
Creando nuevas capas vectoriales

QGIS le permite crear nuevas capas en diferentes formatos. Proporciona herramientas para crear GeoPackage, Shapefile, SpatiaLite, formato GPX y capas temporales borrador (también conocidas como capas de memoria). La creación de una :ref: nueva capa GRASS es compatible con el complemento GRASS.

Creando una nueva capa de GeoPackage

Para crear una nueva capa de GeoPackage, presione el botón newGeoPackageLayer Nueva Capa GeoPackage… en el menú Capa -> Crear capa -> o desde la barra de herramientas Administrador de Fuente de Datos. Se mostrará el diálogo Nueva Capa Geopaquete como se muestra en figure_create_geopackage.

Pasos
  1. El primer paso es indicar la ubicación del archivo de la base de datos. Esto se puede hacer presionando el botón … a la derecha del campo Base de datos y seleccione un archivo GeoPackage existente o cree uno nuevo. QGIS agregará automáticamente la extensión correcta al nombre que proporcione.

  2. Dá un nombre a la nueva capa/tabla (Nombre Tabla)

  3. Defina el Tipo de geometría. Si no es una capa sin geometría, puede especificar si debe Incluir dimensión Z y/o Incluir valores M.

  4. Especificar el sistema de coordenadas de referencia usando el botón

Detalles
  1. Introduce el Nombre del campo

  2. Selecciona el Tipo de datos. Solo los atributos número decimal, número entero, datos de texto y Fecha son soportados.

  3. En función del formato de datos, introduce la Longitud y Precisión.

  4. Click en el botón newAttribute Añadir a Lista de campos

  5. Repite los pasos anteriores para cada campo que necesites añadir

  6. Una vez contento con los atributos, click Aceptar. QGIS añadirá la nueva capa a la leyenda, y puede editarla como se describe en la sección Digitalizando una capa existente.