This commit is contained in:
Pablo Castellano 2019-04-28 19:22:08 +02:00
parent c3a9f56b47
commit 7f4f234fe0
4 changed files with 89 additions and 89 deletions

128
README.md
View File

@ -1,6 +1,6 @@
# ds-codigos-postales-ine-es # ds-codigos-postales-ine-es
Dataset que proporciona un listado de todos los códigos postales de España asociados al código INE del municipio al que pertenecen. Dataset que proporciona un listado de todos los códigos postales de España asociados al código INE del municipio al que pertenecen.
Usa como fuente el Callejero del Censo Electoral (INE). Usa como fuente el Callejero del Censo Electoral (INE).
@ -8,48 +8,48 @@ Usa como fuente el Callejero del Censo Electoral (INE).
- Fuente: [Callejero del Censo Electoral (INE)](http://www.ine.es/ss/Satellite?L=es_ES&c=Page&cid=1254735624326&p=1254735624326&pagename=ProductosYServicios%2FPYSLayout) - Fuente: [Callejero del Censo Electoral (INE)](http://www.ine.es/ss/Satellite?L=es_ES&c=Page&cid=1254735624326&p=1254735624326&pagename=ProductosYServicios%2FPYSLayout)
- URL: `http://www.ine.es/prodyser/callejero/caj_esp/caj_esp_[MM][YYYY].zip` donde `MM` es el mes (01 ó 07) y la cadena `YYYY` es el último año - URL: `http://www.ine.es/prodyser/callejero/caj_esp/caj_esp_[MM][YYYY].zip` donde `MM` es el mes (01 ó 07) y la cadena `YYYY` es el último año
- Tipo: Texto de ancho fijo comprimido (.zip) - Tipo: Texto de ancho fijo comprimido (.zip)
- Datos procesados: [/data/codigos_postales_municipios.csv](data/codigos_postales_municipios.csv) - Datos procesados: [/data/codigos_postales_municipios.csv](data/codigos_postales_municipios.csv)
### Formato de los datos ### Formato de los datos
Ejemplo en CSV: Ejemplo en CSV:
| codigo_postal | municipio_id | nombre_entidad_singular | | codigo_postal | municipio_id | nombre_entidad_singular |
|---------------|--------------|---------------------------| |---------------|--------------|---------------------------|
| 28100 | 28006 | ALCOBENDAS | | 28100 | 28006 | ALCOBENDAS |
| 28108 | 28006 | ALCOBENDAS | | 28108 | 28006 | ALCOBENDAS |
| 28109 | 28006 | ALCOBENDAS | | 28109 | 28006 | ALCOBENDAS |
| 28110 | 28009 | "DEHESA NUEVA" | | 28110 | 28009 | "DEHESA NUEVA" |
| 28120 | 28045 | "PUEBLAS (LAS)" | | 28120 | 28045 | "PUEBLAS (LAS)" |
| 28124 | 28124 | "ROBLEDILLO DE LA JARA" | | 28124 | 28124 | "ROBLEDILLO DE LA JARA" |
| 28130 | 28162 | MIRAVAL | | 28130 | 28162 | MIRAVAL |
| 28140 | 28059 | ADOBERAS | | 28140 | 28059 | ADOBERAS |
| 28150 | 28164 | "MIRADOR (EL)" | | 28150 | 28164 | "MIRADOR (EL)" |
| 28160 | 28145 | "MORALEJA (LA)" | | 28160 | 28145 | "MORALEJA (LA)" |
| 28170 | 28163 | "COTO DE SAN BENITO" | | 28170 | 28163 | "COTO DE SAN BENITO" |
| 28180 | 28151 | "TOMILLARES (LOS)" | | 28180 | 28151 | "TOMILLARES (LOS)" |
| 28189 | 28153 | "SOTO (EL)" | | 28189 | 28153 | "SOTO (EL)" |
| 28190 | 28118 | "PUEBLA DE LA SIERRA" | | 28190 | 28118 | "PUEBLA DE LA SIERRA" |
| 28191 | 28117 | "PRADENA DEL RINCON" | | 28191 | 28117 | "PRADENA DEL RINCON" |
| 28192 | 28021 | "DEHESA BOYAL" | | 28192 | 28021 | "DEHESA BOYAL" |
| 28193 | 28039 | "CERCADOS (LOS)" | | 28193 | 28039 | "CERCADOS (LOS)" |
| 28194 | 28124 | "VILLAR (EL)" | | 28194 | 28124 | "VILLAR (EL)" |
| 28195 | 28902 | "SERRADA DE LA FUENTE" | | 28195 | 28902 | "SERRADA DE LA FUENTE" |
| 28196 | 28902 | "PRESA DE PUENTES VIEJAS" | | 28196 | 28902 | "PRESA DE PUENTES VIEJAS" |
| 28200 | 28131 | "JURISDICCION (LA)" | | 28200 | 28131 | "JURISDICCION (LA)" |
| 28210 | 28160 | VALDEMORILLO | | 28210 | 28160 | VALDEMORILLO |
| 28211 | 28054 | PERALEJO | | 28211 | 28054 | PERALEJO |
| 28212 | 28095 | "BARRANCOS (LOS)" | | 28212 | 28095 | "BARRANCOS (LOS)" |
## Codigos Postales por Municipio (Histórico) ## Codigos Postales por Municipio (Histórico)
- Fuente: [Callejero del Censo Electoral (INE)](http://www.ine.es/ss/Satellite?L=es_ES&c=Page&cid=1254735624326&p=1254735624326&pagename=ProductosYServicios%2FPYSLayout) - Fuente: [Callejero del Censo Electoral (INE)](http://www.ine.es/ss/Satellite?L=es_ES&c=Page&cid=1254735624326&p=1254735624326&pagename=ProductosYServicios%2FPYSLayout)
- URL: `http://www.ine.es/prodyser/callejero/caj_esp/caj_esp_[MM][YYYY].zip` donde `MM` es el mes (01 ó 07) y la cadena `YYYY` es el año, (desde 2013 hasta la actualidad)) - URL: `http://www.ine.es/prodyser/callejero/caj_esp/caj_esp_[MM][YYYY].zip` donde `MM` es el mes (01 ó 07) y la cadena `YYYY` es el año, (desde 2013 hasta la actualidad))
- Tipo: Texto de ancho fijo comprimido (.zip) - Tipo: Texto de ancho fijo comprimido (.zip)
- Datos procesados: [/data/codigos_postales_municipios_historical.csv](data/codigos_postales_municipios_historical.csv) - Datos procesados: [/data/codigos_postales_municipios_historical.csv](data/codigos_postales_municipios_historical.csv)
### Formato de los datos ### Formato de los datos
@ -58,58 +58,58 @@ Ejemplo en CSV:
Ejemplo en CSV: Ejemplo en CSV:
| codigo_postal | municipio_id | nombre_entidad_singular | year | month | | codigo_postal | municipio_id | nombre_entidad_singular | year | month |
|---------------|--------------|-------------------------|------|-------| |---------------|--------------|-------------------------|------|-------|
| 29610 | 29076 | OJEN | 2013 | 07 | | 29610 | 29076 | OJEN | 2013 | 07 |
| 29610 | 29076 | OJEN | 2014 | 01 | | 29610 | 29076 | OJEN | 2014 | 01 |
| 29612 | 29076 | OJEN | 2014 | 01 | | 29612 | 29076 | OJEN | 2014 | 01 |
En el ejemplo se aprecia como en 2014 aparece un nuevo código postal para el municipio de Ojén. En el ejemplo se aprecia como en 2014 aparece un nuevo código postal para el municipio de Ojén.
## Script ## Script
El script se puede encontrar en [/scripts/ine](/scripts/ine). El script se puede encontrar en [/scripts/](/scripts/).
## Merge con ds-organizacion-administrativa ## Merge con ds-organizacion-administrativa
Para obtener el nombre de municipio asociado al codigo INE se puede hacer un merge con `ds-organizacion-administrativa/ds-oa-municipios` mediante `csvjoin`: Para obtener el nombre de municipio asociado al codigo INE se puede hacer un merge con `ds-organizacion-administrativa/ds-oa-municipios` mediante `csvjoin`:
$ `curl https://raw.githubusercontent.com/codeforspain/ds-organizacion-administrativa/master/data/municipios.csv | $ `curl https://raw.githubusercontent.com/codeforspain/ds-organizacion-administrativa/master/data/municipios.csv |
csvcut -c 'municipio_id,nombre' |csvjoin -c "municipio_id" codigos_postales_municipios.csv - | csvcut -c 'municipio_id,nombre' |csvjoin -c "municipio_id" codigos_postales_municipios.csv - |
csvcut -C "municipio_id,nombre_entidad_singular" >codigos_postales_municipios_join.csv` csvcut -C "municipio_id,nombre_entidad_singular" >codigos_postales_municipios_join.csv`
Este comando devuelve [codigos_postales_municipios_join.csv](data/codigos_postales_municipios_join.csv). Ejemplo: Este comando devuelve [codigos_postales_municipios_join.csv](data/codigos_postales_municipios_join.csv). Ejemplo:
| codigo_postal | nombre_entidad_singular | municipio_id | nombre | | codigo_postal | nombre_entidad_singular | municipio_id | nombre |
|---------------|-------------------------|--------------|----------------------------| |---------------|-------------------------|--------------|----------------------------|
| 28100 | ALCOBENDAS | 28006 | Alcobendas | | 28100 | ALCOBENDAS | 28006 | Alcobendas |
| 28108 | ALCOBENDAS | 28006 | Alcobendas | | 28108 | ALCOBENDAS | 28006 | Alcobendas |
| 28109 | ALCOBENDAS | 28006 | Alcobendas | | 28109 | ALCOBENDAS | 28006 | Alcobendas |
| 28110 | DEHESA NUEVA | 28009 | Algete | | 28110 | DEHESA NUEVA | 28009 | Algete |
| 28120 | PUEBLAS (LAS) | 28045 | Colmenar Viejo | | 28120 | PUEBLAS (LAS) | 28045 | Colmenar Viejo |
| 28124 | ROBLEDILLO DE LA JARA | 28124 | Robledillo de la Jara | | 28124 | ROBLEDILLO DE LA JARA | 28124 | Robledillo de la Jara |
| 28130 | MIRAVAL | 28162 | Valdeolmos-Alalpardo | | 28130 | MIRAVAL | 28162 | Valdeolmos-Alalpardo |
| 28140 | ADOBERAS | 28059 | Fuente el Saz de Jarama | | 28140 | ADOBERAS | 28059 | Fuente el Saz de Jarama |
| 28150 | MIRADOR (EL) | 28164 | Valdetorres de Jarama | | 28150 | MIRADOR (EL) | 28164 | Valdetorres de Jarama |
| 28160 | MORALEJA (LA) | 28145 | Talamanca de Jarama | | 28160 | MORALEJA (LA) | 28145 | Talamanca de Jarama |
| 28170 | COTO DE SAN BENITO | 28163 | Valdepiélagos | | 28170 | COTO DE SAN BENITO | 28163 | Valdepiélagos |
| 28180 | TOMILLARES (LOS) | 28151 | Torrelaguna | | 28180 | TOMILLARES (LOS) | 28151 | Torrelaguna |
| 28189 | SOTO (EL) | 28153 | Torremocha de Jarama | | 28189 | SOTO (EL) | 28153 | Torremocha de Jarama |
| 28190 | PUEBLA DE LA SIERRA | 28118 | Puebla de la Sierra | | 28190 | PUEBLA DE LA SIERRA | 28118 | Puebla de la Sierra |
| 28191 | PRADENA DEL RINCON | 28117 | Prádena del Rincón | | 28191 | PRADENA DEL RINCON | 28117 | Prádena del Rincón |
| 28192 | DEHESA BOYAL | 28021 | "Berrueco, El" | | 28192 | DEHESA BOYAL | 28021 | "Berrueco, El" |
| 28193 | CERCADOS (LOS) | 28039 | Cervera de Buitrago | | 28193 | CERCADOS (LOS) | 28039 | Cervera de Buitrago |
| 28194 | VILLAR (EL) | 28124 | Robledillo de la Jara | | 28194 | VILLAR (EL) | 28124 | Robledillo de la Jara |
| 28195 | SERRADA DE LA FUENTE | 28902 | Puentes Viejas | | 28195 | SERRADA DE LA FUENTE | 28902 | Puentes Viejas |
| 28196 | PRESA DE PUENTES VIEJAS | 28902 | Puentes Viejas | | 28196 | PRESA DE PUENTES VIEJAS | 28902 | Puentes Viejas |
| 28200 | JURISDICCION (LA) | 28131 | San Lorenzo de El Escorial | | 28200 | JURISDICCION (LA) | 28131 | San Lorenzo de El Escorial |
| 28210 | VALDEMORILLO | 28160 | Valdemorillo | | 28210 | VALDEMORILLO | 28160 | Valdemorillo |
| 28211 | PERALEJO | 28054 | "Escorial, El" | | 28211 | PERALEJO | 28054 | "Escorial, El" |
| 28212 | BARRANCOS (LOS) | 28095 | Navalagamella | | 28212 | BARRANCOS (LOS) | 28095 | Navalagamella |

View File

@ -12,7 +12,7 @@ Si no los encuentra, los descarga.
Si se invoca sin subcomandos o argumentos, executa: Si se invoca sin subcomandos o argumentos, executa:
1. download all 1. download all
2. process all 2. process all
3. update 3. update
4. convert-to-json 4. convert-to-json
@ -20,25 +20,25 @@ Si se invoca sin subcomandos o argumentos, executa:
### Opciones ### Opciones
COMMANDS COMMANDS
download [SUBCOMMAND] Descarga los archivos fuente, pero no los procesa. download [SUBCOMMAND] Descarga los archivos fuente, pero no los procesa.
Se puede especificar opcionalmente un subcomando: Se puede especificar opcionalmente un subcomando:
year YEAR MONTH Descarga únicamente el periodo YEAR MONTH (Month es 1 ó 7) year YEAR MONTH Descarga únicamente el periodo YEAR MONTH (Month es 1 ó 7)
all Descarga todos los años all Descarga todos los años
OPTIONS OPTIONS
--force, -f Fuerza la descarga de los archivos fuente, aunque existan --force, -f Fuerza la descarga de los archivos fuente, aunque existan
process [SUBCOMMAND] Procesa los archivos fuente, y crea los archivos CSV/JSON. process [SUBCOMMAND] Procesa los archivos fuente, y crea los archivos CSV/JSON.
Se puede especificar opcionalmente un subcomando: Se puede especificar opcionalmente un subcomando:
year YEAR Procesa únicamente el año YEAR year YEAR Procesa únicamente el año YEAR
year last Procesa únicamente el último año year last Procesa únicamente el último año
historical Procesa todos los años y general histórico. historical Procesa todos los años y general histórico.
@ -46,12 +46,12 @@ Si se invoca sin subcomandos o argumentos, executa:
convert-to-json Convierte todos los archivos .csv almacenados en /data a .json. convert-to-json Convierte todos los archivos .csv almacenados en /data a .json.
update Actualiza el archivo datapackage.json update Actualiza el archivo datapackage.json
## Requisitos ## Requisitos
@ -63,15 +63,15 @@ Si se invoca sin subcomandos o argumentos, executa:
Para poder generar los archivos en `.json`, hay que tener instalado [csvkit](https://csvkit.readthedocs.org/en/540/index.html). Para este script se ha usado la version 1.0.0. Para poder generar los archivos en `.json`, hay que tener instalado [csvkit](https://csvkit.readthedocs.org/en/540/index.html). Para este script se ha usado la version 1.0.0.
Se instala mediante: Se instala mediante:
$ sudo pip install csvkit $ sudo pip install csvkit
Así mismo, `pip` tiene que estar instalado. En Ubuntu esto se hace mediante: Así mismo, `pip` tiene que estar instalado. En Ubuntu esto se hace mediante:
$ sudo apt-get install python-pip python-dev build-essential $ sudo apt-get install python-pip python-dev build-essential
$ sudo pip install --upgrade pip $ sudo pip install --upgrade pip
$ sudo pip install --upgrade virtualenv $ sudo pip install --upgrade virtualenv

View File

@ -29,4 +29,4 @@ class ConvertToJsonCommand extends ConsoleKit\Command
$progress->stop(); $progress->stop();
} }
} }

View File

@ -162,4 +162,4 @@ class ProcessCommand extends ConsoleKit\Command
} }
} }