Cap de Creus amb BTT

L’estiu s’ha acabat, i enguany al Port de la Selva m’he emportat la bici de muntanya. He posat tots els tracks gravats en un sol mapa, utilitzant el package de OpenLayers i partint de l’exemple de la documentació. D’aquesta manera puc posar en perspectiva els camins que he recorregut, i sobretot ja pensar en nous camins i zones per explorar l’any vinent.

Esglésies romàniques de Catalunya

Finalment he acabat el projecte de les esglésies romàniques. Han estat uns mesos de documentació i de picar pedra, poc a poc, sense estressar-me, enmig del confinament.

Resumint, la feina que s’ha fet és:

  • generar una bases de dades mysql de totes les esglésies
  • replicar tota aquesta informació a OSM: hi havia una gran quantitat d’esglésies que no existien; s’ha convertit molts nodes a vies; s’ha aprofitat per editar cases i granges de l’entorn de les esglésises; s’ha actualitzat molts tags, com ara wikidata, wikipedia, ruins, etc. S’ha respectat al màxim la informació editada per altres usuaris.
  • fer una pàgina web, amb diferents exemples de mapes, entre ells la cartografia del ICGC

Les edicions que s’han fet a OSM són manuals, i s’ha utilitzat scripts python per associar i actualitzar la informació de la bd amb la informació de OSM. Ha estat una feina gran de documentació, i moltes vegades la informació s’ha hagut de contrastar amb altres fonts, com els mapes del ICGC.

No considero que la feina estigui acabada, hi ha algunes coses que vull discutir amb la comunitat de OSM, però això haurà de ser després de l’estiu. Per exemple, tot i que les esglésies en qüestió són romàniques, l’etiqueta building:architecture=romanesque no sempre serà correcta. Per exemple, l’església de la Torre de Faia (Capella de Santa Magdalena), a Gisclareny, i que conec, és una construcció més moderna que va aprofitar les pedres de l’antiga església romànica. Mereix el tag building:architecture=romanesque? I és que la realitat sempre supera en complexitat a la teoria…

Referències:

Utilitzar els mapes del Institut Cartogràfic i Geològic de Catalunya (ICGC)

Últimament estic consultant bastant el mapa topogràfic del ICGC, doncs la toponímia és molt correcta, i ho utilitzo per actualitzar la informació de OpenStreetMap (tot i que els puristes diuen que això no es pot fer, que no es poden consultar altres fonts que no sigui la realitat del coneixement real). Això em serveix molt per al projecte en què estic ara, les esglésies romàniques de Catalunya (i de pas, moltes masies aïllades que hi ha arreu del territori).

Fins ara els mapes del ICGC només els consultava, però no m’havia plantejat d’utilitzar aquests mapes topogràfics (i les ortofotos) en els meus mapes. Pensava que les llicències no permetrien el seu ús. Doncs estava equivocat: el ICGC dóna informació de com utilitzar els mapes topogràfics (i les ortofotos) tant amb les llibreries Openlayers com Leaflet, i proporciona el codi bàsic per pintar els mapes. La única cosa és que l’exemple de Openlayers que proposen és amb OL3 i els enllaços a les llibreries no funcionen, millor utilitzar OL4. Ho tinc explicat a la wiki.

Així doncs, ja tinc una altra possibilitat a l’hora de pintar els meus mapes.

  • Info a la wiki
  • Condicions d’ús de la geoinformació ICGC
  • Institut Cartogràfic i Geològic de Catalunya (ICGC)

L’hora catalana amb Festival (TTS, text to speech)

Estic treballant en un Magic Mirror, que li vull dotar de funcions de reconeixement de veu (STT, amb Pocketsphynx) i síntesi de veu (TTS, amb Festival). Vull que sigui un projecte una mica de cachondeo, i vull escollir bé els mòduls a instal·lar, i també programar-ne un.

Una cosa divertida que havia pensat és un mòdul que et digui l’hora catalana:

-Magic Mirror (li posarem un nom divertit), quina hora és?
-Són dos quarts i cinc de vuit.

He estat treballant amb el Festival (que s’instal·la sense problemes en una Raspberry Pi) i integrar-ho tot amb Node/Javascript, que és la tecnologia que utilitza MagicMirror.

En el video hi ha una mostra del que volem aconseguir:

Referències:

Activitat a la wiki i al bloc durant la COVID-19

Durant aquest temps de confinament s’ha fet molta feina a casa i molt de teletreball, coses de l’institut i coses meves. Fent una consulta al mysql de la wiki i del wordpress es pot saber fàcilment en què he estat treballant durant aquests dies.

A la wiki, a wiki.joanillo.org:

mysql> select distinct page_title 'COVID-19 editons' from page, revision where page_id=rev_page and rev_timestamp >= '20200313%' and page_namespace=0;
+--------------------------------------------------------------------+
| COVID-19 editons                                                   |
+--------------------------------------------------------------------+
| Llibres_electrònics_i_l'editor_Sublime_Text2._Convertir_pdf_a_txt |
| Esglésies_romàniques_de_Catalunya                                |
| Aplicació_web_amb_motor_Python                                    |
| Pàgina_principal                                                  |
| Mapes_medievals,_mapes_ficticis,_mapes_de_fantasia                 |
| Fusionar_GeoJSON                                                   |
| Opendata-barcelona                                                 |
| Openlayers:_ol_package._Exemple_Casa_de_Papel                      |
| DAW-M06-WEC                                                        |
| React:_A_JavaScript_library_for_building_user_interfaces           |
| JQuery:_Tablesorter                                                |
| React_Native                                                       |
| Github_pràctic:_control_de_versions                               |
| Desplegar_un_projecte_web_amb_Express_i_Heroku                     |
| Aplicació_Reactjs_a_través_del_servidor_web_Express              |
| Openlayers_amb_ReactJS                                             |
| ReactJS._Curs_EdX._Introduction_to_ReactJS._Microsoft:_DEV281x     |
| Curriculum_Vitae_Joan_Quintana_Compte                              |
| Introducció_als_frameworks_de_Javascript                          |
| React_CRUD_tutorial                                                |
| Exemples_Openlayers_(ol_package)                                   |
+--------------------------------------------------------------------+
21 rows in set (0.00 sec)

Al bloc, a www.joanillo.org:

select post_title from wp_posts where post_modified >= '2020-03-13%' and post_type='post' and post_parent=0

Geovisualització de la COVID-19
Esglésies romàniques
Vegueries/regions de Catalunya. Densitat de població
La Casa de Papel: aplicació web
John H. Conway. Joc de la Vida
Introducció a ReactJS: DEV281x

De moment és això, perquè malauradament el confinament continua.

La Casa de Papel: aplicació web

Aquest és un exemple que he fet mano a mano amb el Pere, ara que estem confinats per la COVID-19 i estem a la meitat de la 3a temporada de La Casa de Papel.

Per a mi també ha servit per fer una aplicació OpenLayers amb codi Node, que sembla ser que tot anirà cap aquí. Tot està explicat a la wiki i als enllaços a què fa referència.

La renderització que s’ha fet del mapa amb blanc i negre és l’estil toner de Stamen. A mi particularment m’agrada molt, i crec que hem aconseguit una bona integració amb el disseny propi de la sèrie, que juga amb els colors negre i vermell.
Enllaços:

Vegueries/regions de Catalunya. Densitat de població

He estat programant uns scripts per fusionar fronteres (veure enllaç). Ha estat una mica més difícil del que em pensava, i m’ha quedat un codi Python bastant guarro, però al final he aconseguit de fusionar comarques de Catalunya per tal d’obtenir les regions/vegueries. Ja miraré d’arreglar el codi quan pugui, doncs estudiar els diferents casos és un problema de topologia bastant interessant i no massa difícil. Però ara, degut al confinament provocat pel corona-virus i la COVID-19, aquest és el millor codi que m’ha soritit (i ja hi he dedicat més hores de les que desitjava).

Tot això ve perquè vaig estar cercant el geojson de les vegueries i vaig ser incapaç de trobar-ho. Aquest codi també ha de servir per fusionar altres casos. Estic pensant per exemple fusionar els municipis de l’Alt Berguedà.

Amb tot això he fet com a primer exemple la densitat de població, classificat per vegueries.

Nota 31-03-2020: He millorat el codi i ara ja estic content del resultat final. Amb la nova versió he fusionat els municipis de l’Alt Berguedà.

GeoJSON: densitat de les comarques de Catalunya

Tenia un tema pendent amb la visualització de mapes: programar aquells mapes en què es veuen les fronteres (ja siguin països, regions, comarques, municipis), i on podem assignar un color o podem clicar a cadascuna de les regions.

A l’API d’Overpass es poden fer consultes de les relacions a nivell administratiu, i normalment s’obté les ways que representen línies de frontera administrativa. Això ja va bé per pintar el contorn d’un municipi, per exemple. Ara bé, per ombrejar tota una àrea necessitem un poligon tancat. El millor és cercar una font de dades amb format GeoJSON de les dades que necessitem, per exemple les comarques. Cercant una mica pots trobar dades de tot: països, comunitats autònomes, províncies, etc. Combinant aquestes dades amb la informació que ens interessa (per exemple, la densitat de població per comarca), podem fer una aplicació com la que mostrem a la imatge.

Per fer-ho, està explicat a la wiki. Ara que m’he posat amb el GeoJSON, ara veig que hi ha un altre format interessant que és el TopoJSON. Això és un no parar!

Catalunya megalítica

Ja tinc acabada la visualització de tots els dòlmens de Catalunya i la Catalunya Nord. S’ha fet aquesta feina amb varis propòsits. D’una banda, unificar i actualitzar tota la informació disponible a OpenStreetMap, on només estaven llistats la meitat dels dòlmens. També m’interessava la programació de OpenLayers per tal de visualitzar el mapa, i la renderització del mapa amb diferents estils a part del clàssic de OSM.

Per visualitzar el mapa crec que el més xul·lo és l’estil Terrain. Ara bé, si vull fer zoom i que aparegui informació al detall de la zona, el millor mapa continua sent el de OSM. L’aplicació també pot visualitzar el mapa amb els estils Toner i Watercolor.

Tot plegat m’ha portat més feina del que havia previst i desitjat. O sigui que n’he fet un subdomini per tal de què la informació estigui sempre disponible:

web de Rutes BTT, nova versió (v4)

Fa anys que publico les excursions amb BTT al subdomini rutesgps.joanillo.org.

Tot va començar amb la programació de la API de Google Maps. Més endavant vaig migrar a OpenStreetMap. I durant aquest temps he anat afegint funcionalitats. També, durant aquests anys sempre he fet amb els alumnes pràctiques de geolocalització, en el marc de l’assignatura de Javascript de DAW.

Així que ara he afegit unes quantes funcionalitats més: els videos de Relive; els punts d’interès; icones d’inici i final de ruta; 3 capes de visualització del terreny; aspectes de disseny; etc. Ara, cada cop que afegeixi una ruta, tinc un protocol consistent per tal de no cometre errors.

La passada tardor em vaig comprar un GPS de ciclisme, el Bryton 450E (que està basat en mapes de OpenStreetMaps), i tot i les seves limitacions, li estic treient el màxim profit. I tot plegat no tindria cap sentit si això no es traduís en kilòmetres de bicicleta i disfrutar de la natura.