Add dataset merge as a command

This commit is contained in:
Inigo Flores 2020-11-18 20:33:04 +01:00
parent 9fb8ab2996
commit eb4dafb921
4 changed files with 121 additions and 24 deletions

View File

@ -9,10 +9,10 @@ class Config
const DATA_FOLDER ="data"; const DATA_FOLDER ="data";
const ARCHIVE_FOLDER = "archive"; const ARCHIVE_FOLDER = "archive";
const SOURCE_FILE = "caj_esp_0%d%d.zip"; const SOURCE_FILE = "caj_esp_0%d%d.zip";
const DEST_FILE = "codigos_postales_municipios"; const DEST_FILE = "codigos_postales_municipiosid";
const DEST_FILE_ENTIDADES = "codigos_postales_municipios_entidades"; const DEST_FILE_ENTIDADES = "codigos_postales_municipiosid_entidades";
const DEST_HISTORICAL_FILE = "codigos_postales_municipios_historical"; const DEST_HISTORICAL_FILE = "codigos_postales_municipiosid_historical";
const DEST_HISTORICAL_FILE_ENTIDADES = "codigos_postales_municipios_entidades_historical"; const DEST_HISTORICAL_FILE_ENTIDADES = "codigos_postales_municipiosid_entidades_historical";
//TRAMOS-NAL.F151231 //TRAMOS-NAL.F151231
@ -40,9 +40,69 @@ class Config
"resources" => [ "resources" => [
[ [
"name" => "ds_codigos_postales_municipios", "name" => "ds_codigos_postales_municipios",
"title"=> "Codigos postales por municipio", "title"=> "Codigos postales y municipios asociados",
"format"=> "csv", "format"=> "csv",
"path"=> "data/codigos_postales_municipios.csv", "path"=> "data/codigos_postales_municipios.csv",
"schema"=> [
"fields"=> [
[
"name" => "codigo_postal",
"type" => "number",
"description" => "Código Postal",
"pattern" => "[0-9]{5}"
],
[
"name" => "municipio_id",
"type" => "number",
"description" => "Código INE del municipio",
"pattern" => "[0-9]{5}"
],
[
"name" => "municipio_nombre",
"type" => "string",
"description" => "Nombre del municipio",
],
]
]
],
[
"name" => "ds_codigos_postales_municipios_entidades",
"title"=> "Códigos postales y municipios y entidades singulares asociados",
"format"=> "csv",
"path"=> "data/codigos_postales_municipios_entidades.csv",
"schema"=> [
"fields"=> [
[
"name" => "codigo_postal",
"type" => "number",
"description" => "Código Postal",
"pattern" => "[0-9]{5}"
],
[
"name" => "municipio_id",
"type" => "number",
"description" => "Código INE del municipio",
"pattern" => "[0-9]{5}"
],
[
"name" => "entidad_singular_nombre",
"type" => "string",
"description" => "Nombre entidad singular",
],
[
"name" => "municipio_nombre",
"type" => "string",
"description" => "Nombre del municipio",
],
]
]
],
[
"name" => "ds_codigos_postales_municipiosid",
"title"=> "Códigos postales y códigos INE de los municipios asociados",
"format"=> "csv",
"path"=> "data/codigos_postales_municipiosid.csv",
"schema"=> [ "schema"=> [
"fields"=> [ "fields"=> [
[ [
@ -61,10 +121,10 @@ class Config
] ]
], ],
[ [
"name" => "ds_codigos_postales_municipios_entidades", "name" => "ds_codigos_postales_municipiosid_entidades",
"title"=> "Codigos postales por municipio y entidad singular", "title"=> "Códigos postales y códigos INE de municipios y entidades singulares asociados",
"format"=> "csv", "format"=> "csv",
"path"=> "data/codigos_postales_municipios.csv", "path"=> "data/codigos_postales_municipiosid_entidades.csv",
"schema"=> [ "schema"=> [
"fields"=> [ "fields"=> [
[ [
@ -80,7 +140,7 @@ class Config
"pattern" => "[0-9]{5}" "pattern" => "[0-9]{5}"
], ],
[ [
"name" => "nombre_entidad_singular", "name" => "entidad_singular_nombre",
"type" => "string", "type" => "string",
"description" => "Nombre entidad singular", "description" => "Nombre entidad singular",
], ],
@ -89,10 +149,10 @@ class Config
] ]
], ],
[ [
"name" => "ds_codigos_postales_municipios_historical", "name" => "ds_codigos_postales_municipiosid_historical",
"title"=> "Histórico de codigos postales por municipio (desde 2013)", "title"=> "Histórico de códigos postales y códigos INE de municipios asociados (desde 2013)",
"format"=> "csv", "format"=> "csv",
"path"=> "data/codigos_postales_municipios_historical.csv", "path"=> "data/codigos_postales_municipiosid_historical.csv",
"schema"=> [ "schema"=> [
"fields"=> [ "fields"=> [
[ [
@ -121,10 +181,10 @@ class Config
] ]
], ],
[ [
"name" => "ds_codigos_postales_municipios_entidades_historical", "name" => "ds_codigos_postales_municipiosid_entidades_historical",
"title"=> "Histórico de codigos postales por municipio y entidades singulares(desde 2013)", "title"=> "Histórico de códigos postales y códigos INE de municipios y entidades singulares asociados (desde 2013)",
"format"=> "csv", "format"=> "csv",
"path"=> "data/codigos_postales_municipios_historical.csv", "path"=> "data/codigos_postales_municipiosid_historical.csv",
"schema"=> [ "schema"=> [
"fields"=> [ "fields"=> [
[ [
@ -140,7 +200,7 @@ class Config
"pattern" => "[0-9]{5}" "pattern" => "[0-9]{5}"
], ],
[ [
"name" => "nombre_entidad_singular", "name" => "entidad_singular_nombre",
"type" => "string", "type" => "string",
"description" => "Nombre entidad singular", "description" => "Nombre entidad singular",
], ],

44
scripts/lib/MergeCommand.php Executable file
View File

@ -0,0 +1,44 @@
<?php
require_once('Config.php');
use ConsoleKit\Widgets\ProgressBar;
/**
* Hace un merge con ds-organizacion-administrativa
*
*/
class MergeCommand extends ConsoleKit\Command
{
public function execute(array $args, array $options = array())
{
$box = new ConsoleKit\Widgets\Box($this->getConsole(), 'Haciendo merge con ds-organizacion-administrativagit');
$box->write();$this->getConsole()->writeln("");
shell_exec('
curl https://raw.githubusercontent.com/codeforspain/ds-organizacion-administrativa/master/data/municipios.csv \
| csvcut -c "municipio_id,nombre" \
| csvjoin -I -c "municipio_id" ../data/codigos_postales_municipiosid.csv - \
| csvcut -c "codigo_postal,municipio_id,nombre" \
> ../data/codigos_postales_municipios.csv
');
shell_exec("
sed -i 's/nombre/municipio_nombre/g' ../data/codigos_postales_municipios.csv
");
shell_exec('
curl https://raw.githubusercontent.com/codeforspain/ds-organizacion-administrativa/master/data/municipios.csv \
| csvcut -c \'municipio_id,nombre\' \
| csvjoin --snifflimit 0 -I -c "municipio_id" ../data/codigos_postales_municipiosid_entidades.csv - \
| csvcut -c "codigo_postal,entidad_singular_nombre,municipio_id,nombre" \
> ../data/codigos_postales_municipios_entidades.csv
');
shell_exec("
sed -i 's/,nombre/,municipio_nombre/g' ../data/codigos_postales_municipios_entidades.csv
");
}
}

View File

@ -1,8 +0,0 @@
#!/usr/bin/env bash
curl https://raw.githubusercontent.com/codeforspain/ds-organizacion-administrativa/master/data/municipios.csv \
| csvcut -c 'municipio_id,nombre' \
| csvjoin -I -c "municipio_id" ../data/codigos_postales_municipios.csv - \
| csvcut -c "codigo_postal,nombre_entidad_singular,municipio_id,nombre" \
> ../data/codigos_postales_municipios_join.csv

View File

@ -20,6 +20,7 @@ if (sizeof($argv)==1) {
$console->run(['download']); $console->run(['download']);
$console->run(['process']); $console->run(['process']);
//$console->run(['convert-to-json']); // No generamos los archivos json, alguno sobrepasa los 100 Mb (limite Github) //$console->run(['convert-to-json']); // No generamos los archivos json, alguno sobrepasa los 100 Mb (limite Github)
$console->run(['merge']);
$console->run(['update','--nojson']); $console->run(['update','--nojson']);
} else { } else {
$console->run(); $console->run();