[Gfoss] database locale da igm95 online

salve a tutti

volevo condividere qualche scritp che ho costruito magari qualcuno suggerisce qualche cambiamento

in particolare volevo costruirmi una base di dati locale dei punti igm95

http://www.igmi.org/geodetica/

immagino che non sia precisa ma tantè visto che è gratis

penso sia una cosa utile

prerequisiti bash,wget,python

1)prima fase scaricare capisaldi igm95 che ci interessano

su linux si usa direttamente bash su windows bisogna andare in osgeo shell e lanciare bash

poi dare le seguenti riche di codice dando invio

c=1

while [ $c -lt 1000 ]; do wget -E -k -m http://37.207.194.154/ware/schedaigm95.php?id=$c;

let c=c+1;

done

questo codice prelevere i punti da 1 al 1000 completi di immagine se vi interessa altro potete variare gli estremi (1 e 1000) su cui varia la c, le opzioni che ho messo su wget creano una copia locale dei punti completi di immagini se non vi interessano potete toglierle

2) creare un file gis.py (o come vorreste chiamarlo) nella stessa cartella dove sono le schede con il seguente codice

#!/usr/bin/env python

# -*- coding: utf-8 -*-

from BeautifulSoup import BeautifulSoup

import sys

import csv

import argparse

import os

parser = argparse.ArgumentParser(description='legge una scheda igm95 e la converte in csv.')

parser.add_argument('--delimiter', '-d', action='store', default=';',help="Carattere per separare le colonne csv")

parser.add_argument('--quotechar', '-q', action='store', default='"',help="carattere per contenere testi csv")

parser.add_argument('filename',nargs="?",help="SCHEDA HTML IGM95 da cui estrarre i dati")

args = parser.parse_args()

if sys.stdin.isatty() and not args.filename:

   parser.print_help()

   sys.exit(-1)

elif not sys.stdin.isatty():

   args.filename = sys.stdin

else:

   args.filename = open(sys.argv[1],'r')

#print "Opening file"

fin = args.filename.read()

#print "Parsing file"

soup = BeautifulSoup(fin,convertEntities=BeautifulSoup.HTML_ENTITIES)

#print "Preemptively removing unnecessary tags"

[s.extract() for s in soup('script')]

img=soup.findAll('a')

t=soup.findAll("td")

h=[u"n.",u"Nome:",u"Cart S 25:",u"Cart S 25V:",u"Nazione:",u"Regione:",u"Provincia:",u"Comune:",u"Carabinieri:",\

u"ROMA40 φ:".encode('utf-8'),u" R40 λ:".encode('utf-8'),u"F.O. N.:",u" F.O. E.:",u"F.E. N.:",u" F.E. E.:",\

u"ETRF2000 φ:".encode('utf-8'),u"ETRF2000 λ:".encode('utf-8'),u"F.32 N.:",u" F.32 E.:",u"F.33 N.:",u" F.33 E.:",\

u"Q.S.l.m:",u" QEll.:",u"Materializzazione:",u"Accesso:",u"Informazioniausiliare:",u"Categoriadel punto:",u"Quota s.l.m.:",\

u"Produttore:",u"Segnalizzato:",u"Ultima ricognizione:",u"Collegamenti:",u"M img:",u"C img",u"F img1",u"F img2"]

riga=

riga.append((soup.title.text.encode('utf-8')[18:]))

if os.path.isfile('igm95.csv'):

     csvfile=open('igm95.csv',"ab")

     fout = csv.writer(csvfile, delimiter=args.delimiter, quotechar=args.quotechar, quoting=csv.QUOTE_MINIMAL)

else:

     csvfile=open('igm95.csv',"wb")

     fout = csv.writer(csvfile, delimiter=args.delimiter, quotechar=args.quotechar, quoting=csv.QUOTE_MINIMAL)

     fout.writerow(h)

for i in (2,4,8,10,12,14,16, 25,33,41,46,51,56, 28,36,43,48,53,58, 31,39, 61,63,65,67,69,71,73,76,79):

     s=t[i].text.encode('utf-8')

     if i==4 :

         a=s.split(",")

         riga.append(a[0][9:])

         riga.append(a[1][10:])

         continue

     elif i>= 41 and i<=58 :

         s=s[2:]

     elif i==61 : s=s.replace(";",".")

     riga.append(s)

riga.append(img[0]['href'].encode('utf-8'))

riga.append(img[1]['href'].encode('utf-8'))

riga.append(img[2]['href'].encode('utf-8'))

riga.append(img[3]['href'].encode('utf-8'))

fout.writerow(riga)

tra le librerie di python ci deve essere
BeautifulSoup

se non c'è installatela
  
a questo punto dentro la cartella con le schede igm

se siete in osgeoshell di windows potete fare

for %i in (*.html) do python gis.py %i

mentre se siete in bash potete fare

for i in $( ls ); do python gis.py $i; done

scusate se non sono stato chiarissimo ma ci dovrebbe essere tutto

saluti

in particolare volevo costruirmi una base di dati locale dei punti igm95

http://www.igmi.org/geodetica/

immagino che non sia precisa ma tantè visto che è gratis

Cosa intendi con "tant'è visto che è gratis" ?
Ammetto che il CAD (Codice di Amministrazione Digitale) dichiara
all'articolo 52 comma 2
---
I dati e i documenti che le amministrazioni titolari pubblicano, con
qualsiasi modalità, senza l'espressa adozione di una licenza di cui
all'articolo 2, comma 1, lettera h), del decreto legislativo 24
gennaio 2006, n. 36, si intendono rilasciati come dati di tipo aperto
ai sensi all'articolo 68, comma 3, del presente Codice.
---
e quindi vuol dire che sono open data.

La pagina in effetti non ha alcun riferimento sulle modalità di riuso dei dati
Nella pagina di help si trovano le informazioni su come usare l'interfaccia
http://www.igmi.org/geodetica/help.html

mi chiedo quindi se sulla pagina ufficiale dell'IGM c'è qualche riferimento.

PS:
credo di aver visto estratti di quel dataset in alcuni servizi rest di
regioni italiane.

Il 13/03/2017 10:15, Maurizio Napolitano ha scritto:

e quindi vuol dire che sono open data.

ok sono open data e non gratis, gli script dovrebbero funzionare comunque
:slight_smile:

e quindi vuol dire che sono open data.

ok sono open data e non gratis, gli script dovrebbero funzionare comunque
:slight_smile:

Io temo che non siano nemmeno open data.
Chiedevo infatti maggiori informazioni in merito.

On Mon, 13 Mar 2017 00:54:58 +0100
Ely Parker <elyparker1@gmail.com> wrote:

salve a tutti

volevo condividere qualche scritp che ho costruito magari qualcuno
suggerisce qualche cambiamento

in particolare volevo costruirmi una base di dati locale dei punti igm95

http://www.igmi.org/geodetica/

immagino che non sia precisa ma tantè visto che è gratis
penso sia una cosa utile

fai caso alle coordinate espresse nelle monografie.
Quelle proiettate sono arrotondate ai 10 metri, quelle geografiche al secondo sessagesimale, che vuol dire, per la latitudine di circa 43°, 30 metri in Nord e 20 metri in Est.
Quei dati servono solo per trovare qual è il vertice più vicino alla zona di rilievo, per richiedere la monografia completa.

--
Marco Guiducci <marco.guiducci@regione.toscana.it>
Firenze, via di Novoli 26
055 4383194

Guardando qui http://www.igmi.org/download.php, mi pare che in generale l'IGM, per i dati che rende disponibili, utilizzi una specie di CC-BY-NC-ND:

"/La riproduzione dei testi in formato elettronico presenti sul sito è consentita, salvo diversa espressa autorizzazione, esclusivamente per uso personale e non commerciale e purchè ne venga menzionata la fonte e non ne siano in alcun modo alterati forme e/o contenuti/"

con l'ulteriore area grigia di cosa significhi "per uso personale".

Cmq tutt'altro che open data nel senso pieno del termine :slight_smile:

m2c

Ale

On 13/03/2017 11:07, Maurizio Napolitano wrote:

e quindi vuol dire che sono open data.

ok sono open data e non gratis, gli script dovrebbero funzionare comunque
:slight_smile:

Io temo che non siano nemmeno open data.
Chiedevo infatti maggiori informazioni in merito.
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017

--

Alessandro Sarretta

skype/twitter: alesarrett
Web: ilsarrett.wordpress.com <http://ilsarrett.wordpress.com>

Research information:

  * Google scholar profile
    <http://scholar.google.it/citations?user=IsyXargAAAAJ&hl=it&gt;
  * ORCID <http://orcid.org/0000-0002-1475-8686&gt;
  * Research Gate <https://www.researchgate.net/profile/Alessandro_Sarretta&gt;
  * Impactstory <https://impactstory.org/AlessandroSarretta&gt;

Il 13/03/2017 14:34, Marco Guiducci ha scritto:

On Mon, 13 Mar 2017 00:54:58 +0100
Ely Parker <elyparker1@gmail.com> wrote:

salve a tutti

volevo condividere qualche scritp che ho costruito magari qualcuno
suggerisce qualche cambiamento

in particolare volevo costruirmi una base di dati locale dei punti igm95

http://www.igmi.org/geodetica/

immagino che non sia precisa ma tantè visto che è gratis
penso sia una cosa utile

fai caso alle coordinate espresse nelle monografie.
Quelle proiettate sono arrotondate ai 10 metri, quelle geografiche al secondo sessagesimale, che vuol dire, per la latitudine di circa 43°, 30 metri in Nord e 20 metri in Est.
Quei dati servono solo per trovare qual è il vertice più vicino alla zona di rilievo, per richiedere la monografia completa.

si immagino che ci sono versioni più precise e a pagamento , e probabilmente nelle monografie complete ci sono anche i paramtri di helmert

però questo passa il governo...