Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Primo test analisi geometrie #12

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

aborruso
Copy link

@aborruso aborruso commented Dec 8, 2019

Caro @jenkin ,
ho creato uno script sh, basato su sqlite e spatialite, che a partire (al momento) da uno solo dei tuoi file di output, fa il check sulla presenza di geometrie con errori, e nel caso le "pulisce".

Per il momento è tutto nel branch "analisiGeoemtrie".

In output si ottiene:

Potresti provare se la parte python che al momento ti va in errore con alcune conversioni, non va in errore con l'output di questo processo.

Se sì, poi mettiamo tutto in un pipeline in loop.

@aborruso
Copy link
Author

aborruso commented Dec 8, 2019

@jenkin come vedi ci sono anche file che non ci dovrebbero essere.
L'ho fatto di corsa e non mi ero accorto del cambiamento del line ending da LF a CRLF.

Non dovrebbero darti alcun problema. Nel caso "bocciami" e rifaccio per bene

@jenkin
Copy link
Contributor

jenkin commented Dec 11, 2019

Il primo problema che vedo è che lo shapefile pulito ha i nomi di colonna diversi da quello originale istat, sono tutti in minuscolo e c'è un pkuid nuovo. Sarebbe meglio se la struttura dati e i nomi dei cambi non cambiassero.

@jenkin
Copy link
Contributor

jenkin commented Dec 11, 2019

La conversione in topojson dello shapefile aggiustato funziona, la puglia è recuperata! :)

@jenkin
Copy link
Contributor

jenkin commented Dec 11, 2019

La conversione in geobuf fallisce in ogni caso.

@jenkin
Copy link
Contributor

jenkin commented Dec 11, 2019

Domanda: si riesce a tradurre questo scrit bash che si appoggia a sqlite e ogr2ogr in python con solo dipendenze interne (quindi moduli python installabili via pip)?

Altrimenti l'unica soluzione che mi viene in mente è dockerizzare quello script e lanciare il container da python per avere tutto in un unico comando.

@aborruso
Copy link
Author

Caro @jenkin, quindi correggere le geometrie è cosa buona.

La conversione dei nomi di campo in minuscolo, è una normalizzazione che viene fatta in import e che credo si possa disabilitare. Il pkuid viene sempre inserito by default e si può "scartare".
Per il momento volevo soltanto sapere se la correzione fosse utile.

Sul pythonizzare questo tipo di correzione, non credo ci sia una modalità così "pronta".
Guardo un po' in giro

@aborruso
Copy link
Author

Mi appunto ogr in modalità Python https://gis.stackexchange.com/questions/227396/python-ogr-sql-finding-invalid-geometry

Ma dubito che basti un pip.

@jenkin
Copy link
Contributor

jenkin commented Dec 13, 2019

Caro @jenkin, quindi correggere le geometrie è cosa buona.

Assolutamente sì!

La conversione dei nomi di campo in minuscolo, è una normalizzazione che viene fatta in import e che credo si possa disabilitare. Il pkuid viene sempre inserito by default e si può "scartare".

Ok, credo sia meglio rimanere coerenti con il nome ufficiale istat dei campi, quindi disabilitiamola. Ok per il pkuid, lo scartiamo in output.

Per il momento volevo soltanto sapere se la correzione fosse utile.

Utilissima! :)

@jenkin
Copy link
Contributor

jenkin commented Dec 13, 2019

Ma dubito che basti un pip.

No, infatti, mi pare ci siano wrapper in python, ma le librerie di sistema devono essere installate. Prende quota l'ipotesi docker se vogliamo che tutta la pipeline sia portabile.

@jenkin
Copy link
Contributor

jenkin commented Dec 18, 2019

@aborruso ho provato a buttar tutto dentro docker in #13, ma temo che la tua installazione di spatialite abbia qualche particolarità per supportare la funzione MakeValid.

@aborruso
Copy link
Author

caro @jenkin ecco come renderlo compliant a MakeValid

sudo apt-get install sqlite3

sudo apt-get install -y python3-dev build-essential wget libxml2-dev libproj-dev libgeos-dev libsqlite3-dev zlib1g-dev pkg-config && sudo apt clean

sudo apt-get install automake
sudo apt-get install autoconf
sudo apt-get install autotools-dev
git clone https://git.osgeo.org/gitea/rttopo/librttopo.git
cd librttopo
./autogen.sh
./configure
make
make check
sudo make install

wget "https://www.gaia-gis.it/gaia-sins/freexl-1.0.5.tar.gz" && tar zxf freexl-1.0.5.tar.gz \
    && cd freexl-1.0.5 && ./configure && make 
sudo make install

cd ..
wget http://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-5.0.0-beta0.tar.gz
tar zxf libspatialite-5.0.0-beta0.tar.gz
cd libspatialite-5.0.0-beta0
./configure --enable-rttopo=yes --enable-gcp=yes
make -j8
sudo make install-strip

sudo /sbin/ldconfig -v

jenkin pushed a commit that referenced this pull request Dec 19, 2019
- comment [567143522](#12 (comment))
@jenkin
Copy link
Contributor

jenkin commented Dec 19, 2019

@aborruso ok, ho provato a metter dentro la compilazione delle librerie come indicato, ma l'errore rimane lo stesso... possibile che continui a usare la libreria di sistema (dal repo dei pacchetti) invece che quella compilata?

@aborruso
Copy link
Author

@aborruso ok, ho provato a metter dentro la compilazione delle librerie come indicato, ma l'errore rimane lo stesso... possibile che continui a usare la libreria di sistema (dal repo dei pacchetti) invece che quella compilata?

questo comando viene lanciato alla fine sudo /sbin/ldconfig -v??

Si occupa di fare pulizia sui puntamenti alle librerie

@aborruso
Copy link
Author

questo comando viene lanciato alla fine sudo /sbin/ldconfig -v??

Si occupa di fare pulizia sui puntamenti alle librerie

Scusami, ho visto che già è così :(

Mumble ....

@jenkin
Copy link
Contributor

jenkin commented Dec 19, 2019

Ti posso allegare il log della build del container: build.log.

@aborruso
Copy link
Author

@jenkin ho visto il log e non vedo nulla di strano.

Ti chiederei di fare due cose:

  • prova a installare sulla tua macchina (non via docker) il modulo spatialite e provare il MakeValid;
  • rimuovi l'installazione del modulo, che tanto poi viene eseguita dopo con la versione 5 dello stesso.

Grazie

@jenkin
Copy link
Contributor

jenkin commented Dec 20, 2019

@aborruso ho risolto con un link esplicito alla libreria.

Ora non resta che sostituire lo script bash con istruzioni all'interno di main.py e poi ci siamo.

@aborruso
Copy link
Author

Mitico Ale!!!

@jenkin jenkin deleted the analisiGeometrie branch April 19, 2021 08:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants