Fallas de la ciudad de Valencia

CSV
CULTURA Y OCIO
VALENCIA
Autor/a
Afiliación

Marta Domingo Torres

Universidad de Valencia

Fecha de publicación

29 de marzo de 2025

Input

En el catálogo de Datos abiertos de la ciudad de Valencia, se encuentra información geográfica organizada en distintas categorías. Dentro del bloque de Cultura y Ocio, es posible acceder a datos espaciales sobre las Fallas, una de las festividades más emblemáticas de la ciudad.

Esta ficha se centra en las Fallas de la ciudad de Valencia y proporciona información detallada, incluyendo la sección a la que pertenecen, el artista fallero y otros datos de interés.

A continuación, se presenta información adicional sobre el conjunto de datos:

Los datos están disponibles para su descarga en diversos formatos, como CSV, JSON, EXCEL, GeoJSON, Shapefile, KML, FGB, GPX y Parquet, además de poder visualizarse en un mapa interactivo.

En este caso, se ha utilizado el archivo en formato CSV.

Descripción

Cargamos las librerías necesarias:

Leemos el conjunto de datos desde el portal de datos abiertos de Valencia:

data <- read.csv2("https://valencia.opendatasoft.com/api/explore/v2.1/catalog/datasets/falles-fallas/exports/csv?lang=es&timezone=Europe%2FBerlin&use_labels=true&delimiter=%3B")

Se trata de un objeto data.frame con 350 observaciones y 14 variables:

class(data)
[1] "data.frame"
dim(data)
[1] 350  14

Para representar los monumentos falleros en un mapa interactivo con leaflet, es necesario extraer las coordenadas geográficas de cada observación.

El dataset contiene dos columnas con información espacial:

colnames(data)
 [1] "OBJECTID"                      "Id..Falla"                    
 [3] "Nom...Nombre"                  "Secció...Seccion"             
 [5] "Fallera.Major...Fallera.Mayor" "President...Presidente"       
 [7] "Artiste...Artista"             "Lema"                         
 [9] "Anyo.Fundació...Año.Fundacion" "Distintiu...Distintivo"       
[11] "Esbós...Lema"                  "Falla.Experimental"           
[13] "geo_shape"                     "geo_point_2d"                 

Se selecciona la columna geo_point_2d, ya que almacena las coordenadas en formato de texto "latitud, longitud", lo que facilita su procesamiento y visualización.

Ejemplo de los primeros valores de esta columna:

head(data$geo_point_2d, 2)
[1] "39.47271514928657, -0.35007997461738655"
[2] "39.463208352054146, -0.3746039405177908"

Como los valores están en una única cadena de texto, se dividen en dos nuevas columnas: latitud y longitud, utilizando strsplit():

coords <- strsplit(data$geo_point_2d, ", ")
data$latitud <- as.numeric(sapply(coords, `[`, 1))
data$longitud <- as.numeric(sapply(coords, `[`, 2))

Una vez obtenidas las coordenadas, se convierte el data.frame en un objeto de clase sf y se procede a representar los datos en un mapa interactivo utilizando leaflet.

data_sf <- st_as_sf(data, coords = c("longitud", "latitud"), crs = 4326)

data_sf %>%
  leaflet() %>%
  addTiles() %>%
  addCircles(label = ~paste("Falla", Nom...Nombre))

Tras visualizar los puntos en el mapa, se detecta que al menos una falla se encuentra fuera de los límites de la ciudad de Valencia.

Tratamiento

Se ha identificado qué observaciones en el conjunto de datos presentan coordenadas geográficas fuera de los límites administrativos de la ciudad de Valencia. La cartografía de la región se ha obtenido del paquete mapSpain.

Para determinar qué puntos se encuentran dentro y fuera del término municipal de Valencia, se ha realizado una intersección espacial con los límites administrativos oficiales.

munic_spain <- esp_get_munic()

valencia <- munic_spain[munic_spain$cpro == "46" & munic_spain$cmun == "250", ]
valencia <- st_transform(valencia, crs = 4326)

pts_in <- sf::st_intersection(data_sf,valencia)
pts_out <- sf::st_difference(data_sf,valencia)

Como se observa a continuación, se detectan dos observaciones cuyas coordenadas están fuera de los límites de la ciudad:

pts_out %>% knitr::kable()
OBJECTID Id..Falla Nom…Nombre Secció…Seccion Fallera.Major…Fallera.Mayor President…Presidente Artiste…Artista Lema Anyo.Fundació…Año.Fundacion Distintiu…Distintivo Esbós…Lema Falla.Experimental geo_shape geo_point_2d codauto ine.ccaa.name cpro ine.prov.name cmun name LAU_CODE geometry
242 7639 356 Evarist Bas-Cullera 8C Tere Saurí Vicent Antonio J Vega Selma Antonio Sansano Escribano Pintant València 1984 Fulles (2013) http://mapas.valencia.es/WebsMunicipales/layar/img/fallasvalencia/2025_356_bm.jpg 0 {“coordinates”: [-0.4191242078180465, 39.50486614317032], “type”: “Point”} 39.50486614317032, -0.4191242078180465 10 Comunitat Valenciana 46 Valencia/València 250 Valencia 46250 POINT (-0.4191242 39.50487)
306 7857 299 Maria Ros-Manuel Iranzo 7C Irene López Rodero Javier Pérez Palomares Paco y David Pirateries tots els dies 1980 Fulles (2010) http://mapas.valencia.es/WebsMunicipales/layar/img/fallasvalencia/2025_299_bm.jpg 0 {“coordinates”: [-0.3926302284069324, 39.42711859200086], “type”: “Point”} 39.42711859200086, -0.3926302284069324 10 Comunitat Valenciana 46 Valencia/València 250 Valencia 46250 POINT (-0.3926302 39.42712)

Al analizar las coordenadas de estos puntos, se identifican dos casos a corregir:

  1. La primera falla aparece en el conjunto de datos con el código de municipio de la ciudad de Valencia. Sin embargo, al contrastar esta información con otras fuentes, se verifica que su código correcto es 46035, lo que confirma que pertenece a un municipio cercano a Valencia. Dado que no forma parte de la ciudad de Valencia, se decide eliminarla del conjunto de datos.

  2. La segunda falla presenta coordenadas incorrectas, por lo que sus datos espaciales han sido descartados y reemplazados mediante imputación manual basada en geocodificación real.

pts_out <- pts_out[pts_out$OBJECTID != 7639, ]

pts_out_df <- st_set_geometry(pts_out, NULL)

pto <- st_point(c(-0.3929340045291308, 39.427392706273295))
coords_out <- st_sfc(pto, crs = 4326)
coords_out_sf <- st_sf(pts_out_df, geom = coords_out)

colnames(coords_out_sf)[colnames(coords_out_sf) == "geom"] <- "geometry"
st_geometry(coords_out_sf) <- "geometry"

fallas_valencia <- rbind(pts_in, coords_out_sf)

Con este proceso, se garantiza que todas las observaciones en el conjunto de datos final estén correctamente ubicadas dentro de los límites administrativos de la ciudad de Valencia.

Output

Hemos obtenido un nuevo objeto sf, con 349 observaciones y 22 variables:

class(fallas_valencia)
[1] "sf"         "data.frame"
dim(fallas_valencia)
[1] 349  22

En la siguiente figura se observa que todas las fallas del nuevo dataset se encuentran correctamente dentro de los límites administrativos de la ciudad de Valencia.

El objeto spain se crea para obtener el mapa de los municipios de España, lo que permite situar la ciudad de Valencia dentro de su contexto geográfico. Posteriormente, se genera limites_val, que define los límites espaciales de Valencia extrayendo su caja delimitadora (bounding box).

spain <- mapSpain::esp_get_munic()
spain <- sf::st_transform(spain, crs=4326)

limites_val <- sf::st_buffer(valencia, 15000) %>% sf::st_bbox()

ggplot() +
  geom_sf(data = spain, fill="#CEC1AD") +
  geom_sf(data = valencia, fill = "white") +
  geom_sf(data = fallas_valencia, color = "#FF5733", alpha = 0.5) +
  coord_sf(xlim = c(limites_val["xmin"], limites_val["xmax"]), 
           ylim = c(limites_val["ymin"], limites_val["ymax"])) +
  theme_minimal() +
  theme(axis.title = element_blank(),
        panel.background = element_rect(fill = "lightblue")) +
  ggtitle("Fallas de la ciudad de Valencia")

sf::st_write(fallas_valencia, "fallas_valencia_ciudad.csv")

El fichero generado con el procedimiento descrito anteriormente se puede descargar, en formato CSV, aquí.



Proyectos de Innovación Educativa Emergente PIEE-2737007 y PIEE-3325394