8.8 Dados da Espanha

8.8.1 – Baixando os dados do IDEE

No site Geoportal IDEE (Infraestructura de Datos Espaciales de España) (imagem destacada), execute os seguintes passos:

  • Clique em Português no menu superior;
  • Clique em Centros de descarga;
  • Na página Centros de descarga, clique em Centro de Descargas -CNIG sob Ministerio de Fomento, Instituto Geográfico Nacional.
  • Na página de Centros de Descargas, clique em Información geográfica de referencia para mostrar INFORMACIÓN GEOGRÁFICA DE REFERENCIA;
  • Em INFORMACIÓN GEOGRÁFICA DE REFERENCIA clique em Nomenclátor Geográfico Básico de España e em Nomenclátor Geográfico de Municipios y Entidades de Población.

Aceitando as condições para baixar os aquivos, dois arquivos serão baixados: NGBE.zip, que contém a lista de nomes de lugares do NGBE, com 150 MB; e BD_Municipios-Entidades.zip que contém informação de municípios e entidades de população (denominações, coordenadas, população, etc.), com 24 MB.

A Informação Geográfica de Referência (NGBE.zip), tem como SGR (Sistema Geodésico de Referência) o ETRS89 na Península, Ilhas Baleares, Ceuta e Melilla e REGCAN95 nas Ilhas Canárias (ambos os sistemas compatíveis com WGS84). Coordenadas de longitude e latitude e UTM em seu fuso correspondente. Ao ser descompactado é extraído o banco de dados do MS Access NGBE.accdb com tamanho de 670 MB e 1.132.560 registros em uma única tabela.

A Nomenclatura Geográfica Básica da Espanha (BD_Municipios-Entidades.zip) tem como SGR o WGS84 (compatível com ETRS89 e REGCAN95). Coordenadas de longitude e latitude. Ao ser descompactado são extraídos dois arquivos, um no formato .odb e outro no formato .mdb do Microsoft Access, com cinco tabelas.

Foi utilizado o programa bullzip MS Access to MySQL para carregar os bancos de dados do Microsoft Access no MySQL. Abaixo estão os bancos de dados e tabelas criados no MySQL:

mysql> show databases;
+-------------------------+
| Database                |
+-------------------------+
| information_schema      |
| BD_Municipios-Entidades |
| NGBE                    |
| mysql                   |
| performance_schema      |
| sys                     |
+-------------------------+
6 rows in set (0.00 sec)

Tabela do banco de dados NGBE:

mysql> SHOW TABLES FROM `NGBE`;
+----------------+
| Tables_in_NGBE |
+----------------+
| NGBE           |
+----------------+
1 row in set (0.01 sec)

Colunas da tabela NGBE:

mysql> SELECT ORDINAL_POSITION, COLUMN_NAME
    -> FROM information_schema.columns
    -> WHERE table_schema = 'NGBE'
    -> ORDER BY ORDINAL_POSITION;
+------------------+--------------------------+
| ORDINAL_POSITION | COLUMN_NAME              |
+------------------+--------------------------+
|                1 | id                       |
|                2 | codigo_ngbe              |
|                3 | codigo_ngbe_text         |
|                4 | nombre_extendido         |
|                5 | identificador_geografico |
|                6 | nombre_alternativo_2     |
|                7 | nombre_alternativo_3     |
|                8 | nombre_variante_1        |
|                9 | nombre_variante_2        |
|               10 | nombre_variante_3        |
|               11 | fuente_extendido         |
|               12 | fuente_idg               |
|               13 | fuente_alternativo_2     |
|               14 | fuente_alternativo_3     |
|               15 | fuente_variante_1        |
|               16 | fuente_variante_2        |
|               17 | fuente_variante_3        |
|               18 | idioma_idg               |
|               19 | estatus_idg              |
|               20 | long_etrs89_regcan95     |
|               21 | lat_etrs89_regcan95      |
|               22 | huso_etrs89_regcan95     |
|               23 | x_utm_etrs89_regcan95    |
|               24 | y_utm_etrs89_regcan95    |
|               25 | hojamtn_25               |
|               26 | codigo_ine               |
+------------------+--------------------------+
26 rows in set (0.01 sec)

Tabelas do banco de dados BD_Municipios-Entidades

mysql> SHOW TABLES FROM `BD_Municipios-Entidades`;
+-----------------------------------+
| Tables_in_BD_Municipios-Entidades |
+-----------------------------------+
| CONDOMINIOS                       |
| EATIMS                            |
| ENTIDADES                         |
| MUNICIPIOS                        |
| PROVINCIAS                        |
+-----------------------------------+
5 rows in set (0.00 sec)

Para selecionar os faróis espanhóis, a visão `vw_faros_espana` foi criada, como mostrado abaixo:

-- Faróis da Espanha
DROP VIEW IF EXISTS `vw_faros_espana`;
CREATE VIEW `vw_faros_espana` AS
SELECT `identificador_geografico`,
       `id`,
       `lat_etrs89_regcan95`,
       `long_etrs89_regcan95`
FROM `NGBE`
WHERE `codigo_ngbe_text` = 'Poblaciones y construcciones.Edificación'
AND `identificador_geografico` LIKE 'Faro %'
AND NOT `lat_etrs89_regcan95` IS NULL;

Abaixo estão as primeiras cinco linhas da visão:

mysql> SELECT * FROM `NGBE`.`vw_faros_espana` LIMIT 5;
+--------------------------+---------+---------------------+----------------------+
| identificador_geografico | id      | lat_etrs89_regcan95 | long_etrs89_regcan95 |
+--------------------------+---------+---------------------+----------------------+
| Faro de Santa Pola       | 2301141 |    38.2094727090001 |   -0.513488796999923 |
| Faro de Tabarca          | 2301143 |    38.1641237900001 |   -0.471191441999906 |
| Faro de San Antonio      | 2255938 |    38.8031012550001 |    0.197085783000091 |
| Faro de la Nao           | 2256029 |        38.732117632 |    0.231082644000082 |
| Faro de Orpesa           | 2126326 |        40.083129768 |    0.147094542000048 |
+--------------------------+---------+---------------------+----------------------+
5 rows in set (0.09 sec)

As linhas da visão `vw_faros_espana` foram exportadas para o arquivo faros_espana.csv usando o comando:

mysql --user=sistemas                           \
      --password                                \
      --execute "SELECT * FROM vw_faros_espana" \
      --batch                                   \
      NGBE > faros_espana.csv

8.8.2 – Conversão de dados do IDEE para o formato GeoJSON

O arquivo faros_espana.csv foi convertido para o formato GeoJSON usando o programa utilitário ogr2ogr da GDAL, que converte dados entre formatos de arquivo, conforme mostrado abaixo:

ogr2ogr -f GeoJSON faros_espana.geojson faros_espana.csv \
        -oo X_POSSIBLE_NAMES=long_etrs89_regcan95        \
        -oo Y_POSSIBLE_NAMES=lat_etrs89_regcan95         \
        -oo KEEP_GEOM_COLUMNS=NO

8.8.3 – Criação da coleção no MongoDB para importar os dados do IDEE

Para importar os dados do arquivo faros_espana.geojson foi criada a coleção faros_espana usando os comandos:

// Criar a coleção faros_espana especificando as regras de validação do esquema JSON
use reficio;
// Apagar a coleção, se existir
db.faros_espana.drop();
// Criar a coleção
db.createCollection("faros_espana", {
   validator : {
      $jsonSchema : {
         "properties" : {
            "type" : {
               bsonType : "string",
               description : "FeatureCollection",

            },
            "name" : {
               bsonType : "string",
               description : "faros_espana",

            },
            "features" : {
               bsonType : "array",
               "items" : {
                  bsonType : "object",
                  "properties" : {
                     "type" : {
                        bsonType : "string",
                        description : "Feature",

                     },
                     "properties" : {
                        bsonType : "object",
                        "properties" : {
                           "identificador_geografico" : {
                              bsonType : "string",
                              description : "identificador geográfico",

                           },
                           "id" : {
                              bsonType : "string",
                              description : "nome do ponto geográfico em caracteres ascii, varchar(200)",

                           },
                        }
                     },
                     "geometry" : {
                        bsonType : "object",
                        "properties" : {
                           "type" : {
                              bsonType : "string",
                              description : "objeto GeoJSON do tipo Point",

                           },
                           "coordinates" : {
                              bsonType : "array",
                              "items" : {
                                 bsonType : "number",
                                 description : "Longitude e Latitude do ponto",

                              }
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   }
})

8.8.4 – Importação dos dados

A importação dos dados do IDEE na coleção faros_espana do MongoDB foi feita usando o utilitário mongoimport, como mostrado abaixo:

mongoimport \
    --stopOnError \
    --db reficio \
    --collection faros_espana \
    --file faros_espana.geojson

produzindo a saída:

2018-05-30T06:46:35.005-0300    connected to: localhost
2018-05-30T06:46:35.010-0300    imported 1 document

8.8.5 – Um documento para cada ponto

Como pode ser visto acima, todos os pontos foram importados para um único documento. Para colocar cada ponto em um documento, foi criada a coleção idee_faros_espana conforme mostrado abaixo:

$ mongo
use reficio;
db.createCollection("idee_faros_espana", {}, { collation: { locale: "es", strength: 1 } } );

e executado o comando:

db.faros_espana.find().forEach(function(data) {
    db.idee_faros_espana.insert( data.features );
});

8.8.6 Vendo os faróis no mapa

Para ver os faróis da espanha no mapa, foi criado o script idee_faros_espana.py em Python, que gera o arquvo GPX (GPS eXchange Format) idee_faros_espana.gpx. O mapa está mostrado abaixo no OpenStreetMap.

8. Dados externos