OpenStreetMap

Diary Entries in Italian

Recent diary entries

Una delle cose che ci ha ricordato recentemente Steve Coast, il fondatore di OpenStreetMap, è che il nostro database è carente di indirizzi rispetto ad altre mappe commerciali.

Pertanto ho pensato di fare una presentazione dove spiego come funziona la numerazione civica in Italia. Illustro poi come si inserisce un indirizzo in OSM con alcuni esempi. Analizzo quali sono gli errori più comuni che si commettono e infine mostro diverse modalità di rilevamento e alcuni strumenti per il controllo della qualità dei numeri civici.

La trovate sul canale YouTube OpenStreetMap Piemonte, dove sono presenti anche altri video sul nostro progetto di mappatura preferito :-)

Posted by massimo_59 on 23 August 2023 in Italian (Italiano).

La Rotta dei due mari con partenza a Polignano a mare si divide in sei tappe: 1) Polignano a mare - Castellana Grotte 2) Castellana Grotte - Alberobello 3) Alberobello - Locorotondo 4) Locorotondo - Martina Franca 5) Martina Franca - Crispiano 6) Crispiano - Taranto

Location: Cala Sala - Portacola - Portalga, Polignano a Mare, Bari, Puglia, 70044, Italia

Aggiunte a Napoli le linee filoviarie cittadine. Le linee sono la 201, la 202 e la 204. Tutte e tre partono da via Medina e si dirigono rispettivamente in: piazza Carlo III (la 201), in piazza Vico (la 202) e all’ospedale Cardarelli (la 204).

Location: Municipalità 4, Napoli, Campania, Italia

Websites URLs in many cases are not stone steady, hence monitoring their status can be wortly. Here is how to do it in a semi-automatic flavour:
* download POIs,
* ask their URL a reply
* store unresponsive websites OSM objects

Let’s start gathering a list of shops with website tag. This Overpass example query yelds a CSV with essential data separated by comma. You can see the result in Overpass data window.

To automate process (bash), we need the Overpass query string and provide it as an argument of wget command. In “Export”, simply copy the link you find in “raw data directly from Overpass API”, then (remembering to enclose link in double quotes)


$ wget -O mylist.csv "http://overpass-api.de/api/interpreter?data=%5Bout%3Acsvblablablabla"

at this point mylist.csv contains something like:


@id,@type,name,website
194581793,node,Sirene Blu,http://www.sireneblu.it/   
228109189,node,Ecoscaligera,http://www.ecoscaligera.com/   
[ETC, ETC]   

Now we need to scan each line of mylist.csv and wait for an http reply (ie: 200 OK, 300 moved, etc). It’s done running the following code:


#! /bin/bash
while IFS="," read -r OSMid OSMtype OSMname url
do
  REPLY=`curl --silent --head $url | awk '/^HTTP/{print $url}'`
  echo "https://www.openstreetmap.org/"$OSMtype/$OSMid","$REPLY
done < <(tail -n +2 mylist.csv)

Let’s call the above script replies.sh. The output could be something like:


$ ./replies.sh 
https://www.openstreetmap.org/node/287058106,HTTP/1.1 301 Moved Permanently
https://www.openstreetmap.org/node/424738144,HTTP/1.1 301 Moved Permanently
https://www.openstreetmap.org/node/534834927,HTTP/2 301 
https://www.openstreetmap.org/node/766863973,HTTP/1.1 200 OK
[ETC, ETC]

Redirecting to a file, such output can be easily filtered with grep in order to obtain a list of OSM objects whole website tag needs to be updated (to null):


$ ./replies.sh | grep  " 403 " > shops-to-update

tags: linux, bash, URL

Posted by Zando on 14 June 2023 in Italian (Italiano).

Sto cercando una soluzione

a questo problema

Come vedete, i vai sono taggati waterway:steam o waterway:ditch anche se lì dentro acqua non ne scorre mai. Il loro inserimento e denominazione deriva dalla copiatura da un noto libro di itinerari alpinistici. Ma non si tagga per il rendering.

Sto pensando di ritaggare tutto con valley, che al momento è quello che si avvicina di più alla morfologia. Il problema non è di facile soluzione perchè si tratta di vallette molto strette e ripide. Che fare?

Ogni suggerimento sull’argomento è benvenuto

Location: Vallarsa, Comunità della Vallagarina, Provincia di Trento, Trentino-Alto Adige, 38060, Italia

L’antico toponimo chiamato “Sa Pedra de Vanda” nei pressi delle localita’ “Sa Scandula” “Baccu Eranu” “Baccu Eraneddu” “Monti Arbu” “Pedra Bianca” Baccu S’Acua Callenti” ecc. ecc. NB il suo vero nome è: “Sa Pedra de Vanda”. Attualmente viene conosciuta con il nome ( La Sfinge - La Mitra - o Su Cappeddu de su Papa). Ma tra noi che conosciamo questi luoghi da piu’ 60 anni continuiamo a chiamarla con l’antico toponimo “ SA PEDRA DE VANDA”. C’è da dire che anche noi ogni tanto usiamo questi toponimi per evitare di fare sbagliare l’itinerario alle nuove generazioni, e visitatori che frequentano questi luoghi. Dimostrazione pratica come la toponomastica è in continua evoluzione.

Location: Sinnai, Cagliari, Sardegna, 09048, Italia
Posted by AlessandroPro on 3 March 2023 in Italian (Italiano). Last updated on 16 October 2023.

inizio oggi l’aggiunta delle ciclabili del comune di Alba, uso come traccia https://www.comune.alba.cn.it/images/stories/UfficiEservizi/opere-pubbliche/Lavori_pubblici/PUMS/FaseB/Tavola6PisteCiclabili.pdf e alcuni filmati del sopralluogo. EDIT 2023-10-16: conclusa la verifica, molte erano già presenti, alcune le ho corrette leggermente, la rete, se così si può dire, non è molto estesa e connessa.

Location: Alba, Cuneo, Piemonte, Italia

Realizzazione di una mappa delle utility utilizzando Google Sheet + Mapbox GL JS e controllo dati con Qgis che riporta, suddivise per categoria, le attività (utility) presenti nell’area geografica del Comune di Limone P.te:

  • i dati derivano dal database di openstreetmap e sono aggiornati giornalmente con una query overpass che importa i dati in un foglio di google:

  • sul foglio di google, con la funzione =IMPORTDATA( vengono importati i dati con query csv di overpass turbo modificata grazie a questo turorial; di seguito esempio query

http://overpass-api.de/api/interpreter?data=out:csv(::id,::lat,::lon,::timestamp,::type,""name"",""amenity"",""phone"",""contact:phone"",""contact:mobile"",""mobile:phone"", ""website"",""facebook"",""contact:website"",""contact:facebook"",""email"",""contact:email"";true;"","")] [timeout:20];area[admin_level=8][boundary=administrative][""ref:ISTAT""=""004110""]->.boundaryarea; ( node(area.boundaryarea)[amenity=cafe]; way(area.boundaryarea)[amenity=cafe]; node(area.boundaryarea)[amenity=bar]; way(area.boundaryarea)[amenity=bar]; ); out meta center;")

  • su questo foglio, al termine dai campi importati riportanti i tag di openstreetmap, sono presenti i campi “category”,”name_web” e “search” dove con formule dedicate nel campo “category” si da importanza ed univocità ad alcuni tag es.(se amenity=restaurant e tourism=hotel metti hotel), nel campo “name_web” si riporta il tag name e dove non presente la formula restituisce il primo valore non nullo degli altri tag e con il campo “name_web” si attribuisce una categoria dei punti di interesse. (Vedi google sheet per visualizzare le formule complete)

  • i valori contenuti nel campo “category” sono utilizzati per creare le categorie riportate nel campo “search”, che costituisce il parametro della funzione filtro presente nella mappa web

  • con apps script è stata creata una funzione per aggiornare la query overpass turbo, che viene eseguita giornalmente mediante attivatore di funzioni di apps script (n.b.: è possibile creara la funzione anche registrando le operazioni manuali andando su estensioni>macro>registra macro)

function aggiornaImportData() { var foglioQuery = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("query"); var cellaA1 = foglioQuery.getRange("A1"); var formulaOriginale = cellaA1.getFormula(); cellaA1.clearContent(); cellaA1.setFormula(formulaOriginale); }

Controllo dei dati di OpenStreetMap appartenenti alle categorie della mappa di cui sopra con Qgis e google sheet.

Google Sheet:
  • partendo dai dati importanti su google sheet che si aggiornano giornalemente è stato creato uno script per esportare i dati in formato geojson in una cartella presente su google drive:

function convertRangeToGeoJSON() { var filename = "qgis_export.geojson"; // GeoJSON file name var folder = "yoyr folder ID"; // Folder ID var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.setActiveSheet(spreadsheet.getSheetByName('query'), true); var geoJSON = { type: "FeatureCollection", features: [] }; var rangeValues = SpreadsheetApp .getActiveSpreadsheet() .getActiveSheet() .getDataRange() .getValues(); var headers = rangeValues[0]; for (var i = 1; i < rangeValues.length; i++) { var properties = {}; for (var j = 0; j < headers.length; j++) { properties[headers[j]] = rangeValues[i][j]; } var coordinates = [rangeValues[i][2], rangeValues[i][1]]; // Latitudine: terza colonna, Longitudine: seconda colonna var feature = { type: "Feature", geometry: { type: "Point", coordinates: coordinates }, properties: properties }; geoJSON.features.push(feature); } var geoJSONString = JSON.stringify(geoJSON); // Verifica se il file esiste var files = DriveApp.getFolderById(folder).getFilesByName(filename); if (files.hasNext()) { // Il file esiste, sovrascrivilo files.next().setContent(geoJSONString); } else { // Il file non esiste, crealo DriveApp.getFolderById(folder).createFile(filename, geoJSONString, MimeType.JSON); } var url = DriveApp.getFolderById(folder) .getFilesByName(filename) .next() .getDownloadUrl() .replace("?e=download&gd=true", ""); return url; }

  • per l’aggiornamento dei dati un attivatore di funzioni di apps script esegue la funzione ad orari prestabiliti (vedi sopra)
Qgis:
  • è stato creato un progetto qgis contenente i dati aggiornati giornalmente inseriti con questo schema https://drive.google.com/uc?id="your id file"&export?format=geojson che vengono rinominati come “export-daily” e quelli salvati in locale nel giorno del controllo “poi_export_datacontrollo”; eseguendo filtro temporale sui dati “export-daily” è possibile visualizzare solo quelli modificati dal giorno della data del precedente controllo; (dopo il controllo è sufficiente salvare una copia dei dati live “export-daily” sul proprio computer rinoninando con la data del controllo) immagine

  • per il controllo delle modifiche avvenute sui dati, sia grafico che di contenuto, sono stati applicate espressioni, stili, filtri ed etichette (posizionando il cursore sui punti si apre subito un popup informativo…) immagine

  • per un controllo dei dati sono state inserite anche le note con url dinamico utilizzando le api di openstreetmap

  • si riportano di seguito i file .qml per gli stili utilizzati in qgis
    stile per le note
    stile per “poi_export_datacontrollo”
    stile per “export-dayli”

Aggiornamento dei dati

Grazie alla collaborazione con Olivier Bottero dell’ufficio turistico del comune di Limone Piemonte, si è deciso di promuovere la mappattura in openstreetmap per l’aggiornamento dei dati, utilizzata ad oggi proprio dall’ufficio turistico, con successivo controllo da parte del sottoscritto tecnico Geom. Roberto Brazzelli incaricato dal Comune per aggiornamento della mappa.

Nelle informazioni della mappa delle utility si danno prime informazioni a cittadini o esercenti attività per segnalare errori o nuove attività

..credo che la cosa più difficile sia stata studiare e testare una soluzione semplice pensando che possa essere riutilizzata facilmente da altri uffici turistici, atl o consorzi turistici…
Posted by rikmede on 22 November 2022 in Italian (Italiano).

L’impianto idroelettrico è situato a nord di Tolmezzo, non lontano dall’abitato di Ilegio lungo il rio Tramba. La centrale di Tramba è una centrale idroelettrica entrata in funzione nel 1957 che sfrutta un bacino artificiale di 7.550 m3 ricavato mediante uno sbarramento in calcestruzzo. Il salto utile è pari a 96,9 metri. La centrale si sviluppa su un unico piano, con accesso alla Sala Macchine direttamente dal piazzale esterno. Il gruppo turbina generatore, di tipo Francis ad asse orizzontale, produce energia elettrica alla tensione di 0,4 kV che viene trasportata, tramite cavi al trasformatore e da questi alla rete MT a 20 kV.

Impianto di Tramba

Dettagli tecnici: Ubicazione: Via Navarlons, 5 - loc. Tramba, 33028 TOLMEZZO (UD) Anno di costruzione: 1956 Anno di entrata in esercizio: 1957 Acque utilizzate: Rio Tramba Tipo di impianto: Acqua fluente Portata media di concessione: 0,255 m3/s Salto nominale di concessione: 96,9 m

Opera di presa

La diga di Barcis, detta anche del Cellina o Vecchia diga (1095179424) dopo la costruzione della diga di Ponte Antoi, è stata costruita all’inizio del 1900 per opera dell’allora appena costituita Società Promotrice per l’Utilizzazione delle forze Idrauliche del Torrente Cellina. La diga aveva lo scopo principale di funzionare come opera di presa per il canale di derivazione che percorrendo tutta la valle andava ad alimentare la centrale di Malnisio e successivamente quella di Giais e del Partidor. La diga, negli anni ‘50 ha cessato la sua funzione con la creazione dello sbarramento a Ponte Antoi di fronte all’abitato di Barcis.

Canale aduttore

Il canale aduttore, lungo circa 7 km, aveva la funzione di trasportare una parte delle acque del torrente Cellina verso la prima centrale idroelettrica di Malnisio. Il canale costruito all’interno della forra e parallelo alla Vecchia Strada del Cellina, si sviluppa in sponda destra a valle della diga fino alla località Monciaduda. Da qui il canale percorre una galleria prima di arrivare al bacino di calma dove è presente un imponente sfioratore a gradoni. Il canale termina nei pressi della centrale di Malnisio, dove dal bacino di carico partono quattro condotte forzate.

[continua..]

Asta idroelettrica Malnisio - Giais - Partidor

Di ritorno dalla nostra escursione in cui abbiamo fatto tante belle foto, mappiamo gli elementi visti sul percorso e vorremmo collegare le foto fatte a quegli elementi. Di siti online che permettono di caricare fotografie ce ne sono a bizzeffe, ma noi vogliamo restare “in famiglia” e caricare le nostre foto su Wikimedia Commons. Anzi, ancora meglio: vogliamo collegare un elemento su Wikidata al nostro elemento nella mappa.

Creare account Wikimedia

La prima cosa che consiglio è, se on ne avete uno, di creare un account, che è necessario per caricare le immagini su Wikimedia Commons. Per fare questo, andiamo su Wikimedia Commons e in alto a destra clicchiamo su “Create account”.

Pulsante Crea account

Scegliamo un nome utente (non dev’essere uguale a quello di OSM), una password, indichiamo la mail, completiamo il CAPTCHA e clicchiamo su “Create your account”. Una volta creato, dovremmo trovarci nuovamente nella pagina principale. La cosa che consiglio ora è di cercare in alto a destra, vicino al nostro username, la scritta “English” preceduta dall’immagine di un ideogramma e la lettera A. Cliccando, possiamo modificare la lingua dell’interfaccia e scegliere “Italiano”. Questo, cambierà l’interfaccia di tutti i siti Wikimedia e ci renderà la vita più semplice anche dopo.

Caricare la foto

Ora possiamo caricare le nostre foto. Nella colonna di sinistra clicchiamo su “Carica” e seguiamo le indicazioni dell’Upload Wizard.

Pulsante Carica

Cercare l’elemento su Wikidata

Una volta che il caricamento della foto è terminato, andiamo su wikidata.org e nella casella di ricerca in alto a destra cerchiamo il nome dell’elemento

Ricerca elemento

Inserire dettagli su OSM

Una volta trovato l’elemento, vedremo che in alto a sinistra, a fianco del nome, c’è il numero identificativo Wikidata dell’elemento (in generale, un numero preceduto dalla lettera Q; nel nostro esempio è Q114034754). Recuperato questo identificativo, possiamo associare l’elemento Wikidata al nostro elemento su OSM inserendo l’identificativo Wikidata usando la key “wikidata=”.

Key Wikidata su iD

Se l’elemento Wikidata ha indicata la corretta categoria su Wikimedia Commons questo è sufficiente e per associare le nostre foto all’elemento ci basterà caricarle su Commons e inserire la categoria corretta. Per chi volesse essere più zelante, si può associare la categoria di Commons all’elemto OSM utilizzando la key “wikimedia_commons=” e indicando Category:XYZ (nel nostro esempio, “wikimedia_commons=Category:Grotta della Faja”).

Key wikimedia_commons su iD

Creare un elemento su Wikidata

Può però capitare che su Wikidata non ci sia un elemento da collegare al nostro POI di OSM. Possiamo crearlo noi, ma bisogna tenere a mente che Wikidata, pur essendo un database (anzi una «base di conoscenza online collaborativa») richiede che per la creazione di un elemento esso sia rilevante, abbia la cosiddetta notability (maggiori informazioni a riguardo le trovate qui, ma, volendo fare un esempio facile facile, una panchina qualsiasi non è rilevante, ma un monumento ai caduti sì).

Quindi, tenendo a mente questo, per creare un elemento su Wikidata basta andare su wikidata.org e nella colonna di sinistra cliccare su “Crea un nuovo elemento”.

Pulsante Crea nuovo elemento

Nel campo “Etichetta” indichiamo il nome dell’elemento e in “Descrizione” una breve descrizione (con iniziale minuscola e senza punto finale, convenzioni interne). Nel campo “Aliases, pipe-separated:” possiamo inserire nomi alternativi, ricordandoci di separare ogni nome con il simbolo pipe “|” (ad esempio, se abbiamo una chiesa con diversi nomi, indicheremo “Nome 1|Nome 2|Nome 3”). Fatto questo, clicchiamo su “Crea”. Si aprirà una nuova finestra in cui sarà presente uno specchietto con indicato il nome e la descrizione (ed eventuali alias) che abbiamo appena indicato.

Schermata Crea nuovo elemento di Wikidata

Da qui, dobbiamo parlare dell’interfaccia di Wikidata. La pagina di un elemento si divide sostanzialmente in due parti: proprietà e collegamenti. Nelle proprietà dovremo inserire tutte le informazioni base del nostro POI: che cos’è, in quale stato si trova e le coordinate. Ci sarebbero molte altre proprietà, ma fermiamoci a quelle base. Per inserire le proprietà, è sufficiente cliccare su “+aggiungi dichiarazione” e selezionare la proprietà adatta (ad esempio “istanza di”) e poi compilare il campo che si presenta a destra.

Nuova dichiarazione

Collegare la categoria di Commons all’elemento Wikidata

Fatto questo, se esiste già la categoria su Commons cerchiamo la proprietà “categoria su Commons” e indichiamo la categoria (omettendo il prefisso “Category”, quindi se abbiamo su Commons “Category:Chiesa XYZ” indicheremo semplicemente “Chiesa XYZ”).

Categoria su Commons

Dopodiché, nella sezione collegamenti cerchiamo “Multilingual sites”, clicchiamo sulla matitina e nel campo “wiki” scriviamo “Commons” (ci verrà presentato un suggerimento e ci clicchiamo sopra) e poi indichiamo la categoria di Commons (questa volta completa di prefisso, quindi “Category:ChiesaXYZ”).

Link a commons

Creare una categoria su Commons

Se la categoria Commons ancora non esiste, andiamo su Wikimedia Commons e cerchiamo la fotografia che abbiamo caricato all’inizio. In basso, troviamo le categorie e ci sarà un “(+)”. Cliccandoci sopra, si apre una finestra di compilazione e indicheremo la categoria che vogliamo creare. Ignoriamo la X (che indica solamente che la categoria non esiste) e diamo OK.

Posizione categorie

Inserimento categoria inesistente

La pagina del file si ricarica automaticamente e, scorrendo in fondo, troveremo la nostra categoria in rosso. Cliccandoci sopra, si apre direttamente la finestra di modifica. Nel box inseriamo {{Wikidata infobox}}, indichiamo nell’oggetto “Add Wikidata infobox” e salviamo. Sulla destra comparirà una tabella con scritto “NESSUN ID DI WIKIDATA TROVATO!”.

Infobox Wikidata vuoto

Ignoriamo l’avviso e torniamo su Wikidata, colleghiamo l’elemento Wikidata alla categoria Commons e abbiamo terminati: la tabella su Commons dovrebbe essersi riempita automaticamente (se non succede, è un problema di cache del server, basta attendere qualche minuto).

E se il mio elemento non rientra nei criteri di notability?

Se l’elemento che avete fotografato non rientra nei criteri di notability, caricate comunque la foto su Commons e inseritelo nella categoria più specifica che riuscite a trovare. Dopodiché, nella key “wikimedia_commons” di OSM inserite il nome del file, completo di prefisso “File” ed estensione (per esempio “File:Test.png”).