From eb4dafb921209241fb74a051aaac9bdf843090fc Mon Sep 17 00:00:00 2001 From: Inigo Flores Date: Wed, 18 Nov 2020 20:33:04 +0100 Subject: [PATCH] Add dataset merge as a command --- scripts/lib/Config.php | 92 +++++++++++++++++++++++++++++------- scripts/lib/MergeCommand.php | 44 +++++++++++++++++ scripts/merge.sh | 8 ---- scripts/script.php | 1 + 4 files changed, 121 insertions(+), 24 deletions(-) create mode 100755 scripts/lib/MergeCommand.php delete mode 100755 scripts/merge.sh diff --git a/scripts/lib/Config.php b/scripts/lib/Config.php index 417b86e..c927ea7 100755 --- a/scripts/lib/Config.php +++ b/scripts/lib/Config.php @@ -9,10 +9,10 @@ class Config const DATA_FOLDER ="data"; const ARCHIVE_FOLDER = "archive"; const SOURCE_FILE = "caj_esp_0%d%d.zip"; - const DEST_FILE = "codigos_postales_municipios"; - const DEST_FILE_ENTIDADES = "codigos_postales_municipios_entidades"; - const DEST_HISTORICAL_FILE = "codigos_postales_municipios_historical"; - const DEST_HISTORICAL_FILE_ENTIDADES = "codigos_postales_municipios_entidades_historical"; + const DEST_FILE = "codigos_postales_municipiosid"; + const DEST_FILE_ENTIDADES = "codigos_postales_municipiosid_entidades"; + const DEST_HISTORICAL_FILE = "codigos_postales_municipiosid_historical"; + const DEST_HISTORICAL_FILE_ENTIDADES = "codigos_postales_municipiosid_entidades_historical"; //TRAMOS-NAL.F151231 @@ -40,9 +40,69 @@ class Config "resources" => [ [ "name" => "ds_codigos_postales_municipios", - "title"=> "Codigos postales por municipio", + "title"=> "Codigos postales y municipios asociados", "format"=> "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"=> [ "fields"=> [ [ @@ -61,10 +121,10 @@ class Config ] ], [ - "name" => "ds_codigos_postales_municipios_entidades", - "title"=> "Codigos postales por municipio y entidad singular", + "name" => "ds_codigos_postales_municipiosid_entidades", + "title"=> "Códigos postales y códigos INE de municipios y entidades singulares asociados", "format"=> "csv", - "path"=> "data/codigos_postales_municipios.csv", + "path"=> "data/codigos_postales_municipiosid_entidades.csv", "schema"=> [ "fields"=> [ [ @@ -80,7 +140,7 @@ class Config "pattern" => "[0-9]{5}" ], [ - "name" => "nombre_entidad_singular", + "name" => "entidad_singular_nombre", "type" => "string", "description" => "Nombre entidad singular", ], @@ -89,10 +149,10 @@ class Config ] ], [ - "name" => "ds_codigos_postales_municipios_historical", - "title"=> "Histórico de codigos postales por municipio (desde 2013)", + "name" => "ds_codigos_postales_municipiosid_historical", + "title"=> "Histórico de códigos postales y códigos INE de municipios asociados (desde 2013)", "format"=> "csv", - "path"=> "data/codigos_postales_municipios_historical.csv", + "path"=> "data/codigos_postales_municipiosid_historical.csv", "schema"=> [ "fields"=> [ [ @@ -121,10 +181,10 @@ class Config ] ], [ - "name" => "ds_codigos_postales_municipios_entidades_historical", - "title"=> "Histórico de codigos postales por municipio y entidades singulares(desde 2013)", + "name" => "ds_codigos_postales_municipiosid_entidades_historical", + "title"=> "Histórico de códigos postales y códigos INE de municipios y entidades singulares asociados (desde 2013)", "format"=> "csv", - "path"=> "data/codigos_postales_municipios_historical.csv", + "path"=> "data/codigos_postales_municipiosid_historical.csv", "schema"=> [ "fields"=> [ [ @@ -140,7 +200,7 @@ class Config "pattern" => "[0-9]{5}" ], [ - "name" => "nombre_entidad_singular", + "name" => "entidad_singular_nombre", "type" => "string", "description" => "Nombre entidad singular", ], diff --git a/scripts/lib/MergeCommand.php b/scripts/lib/MergeCommand.php new file mode 100755 index 0000000..b215877 --- /dev/null +++ b/scripts/lib/MergeCommand.php @@ -0,0 +1,44 @@ +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 + "); + + } +} diff --git a/scripts/merge.sh b/scripts/merge.sh deleted file mode 100755 index 48c5fb0..0000000 --- a/scripts/merge.sh +++ /dev/null @@ -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 - diff --git a/scripts/script.php b/scripts/script.php index 98d9e3a..6523c54 100755 --- a/scripts/script.php +++ b/scripts/script.php @@ -20,6 +20,7 @@ if (sizeof($argv)==1) { $console->run(['download']); $console->run(['process']); //$console->run(['convert-to-json']); // No generamos los archivos json, alguno sobrepasa los 100 Mb (limite Github) + $console->run(['merge']); $console->run(['update','--nojson']); } else { $console->run();