Manteniment i generació

Actualització diària del mapa «extra» (.pbf)

A la carpeta mapa-extra cal tenir-hi els fitxers:

  • catala-extra.poly – 745 bytes
  • territori-catala-extra.osm.pbf – 617,5MB
  • osmconvert32[1] – 41,6kB
  • osmupdate32[2] – 226,9kB

Cada dia a les 2:00h s’executa un script al servidor que bàsicament el que fa és:

  1. Actualitza el fitxer .pbf amb el mapa «extra» i l’anomena «nou»
  2. Canvia el nom al fitxer .pbf anterior i li afegeix «antic»
  3. Canvia el nom al fitxer .pbf nou traient-li el «nou»
  4. Registra les mides dels fitxes abans i després de canviar-los el nom, i desa aquestes dades al fitxer estat-actualització-mapa-extra.txt que serà accessible des de la Web com a extra.txt: http://gent.softcatala.org/albert/mapa/registres/extra.txt.

Script de manteniment del mapa «extra»

 1 #!/bin/bash
 2 
 3 USER=nom_usuari
 4 
 5 cd /home/$USER/mapa-extra
 6 date >> estat-actualització-mapa-extra.txt
 7 
 8 # Actualitza el fitxer actual i el desa com a fitxer -nou
 9 mytime="$(time ( ./osmupdate territori-catala-extra.osm.pbf territori-catala-extra-nou.osm.pbf -B=catala-extra.poly ) 2>&1 1>/dev/null )"
10 echo "$mytime" >> estat-actualització-mapa-extra.txt
11 stat -c %n-%s_bytes territori-catala-extra.osm.pbf >> estat-actualització-mapa-extra.txt
12 stat -c %n-%s_bytes territori-catala-extra-nou.osm.pbf >> estat-actualització-mapa-extra.txt
13 echo " ---------------------------------- " >> estat-actualització-mapa-extra.txt
14 
15 # Canvia el nom del fitxer actual a -antic
16 mv territori-catala-extra.osm.pbf territori-catala-extra-antic.osm.pbf
17 
18 # Canvia el nom del fitxer -nou a actual
19 mv  territori-catala-extra-nou.osm.pbf territori-catala-extra.osm.pbf
20 
21 stat -c %n-%s_bytes territori-catala-extra-antic.osm.pbf >> estat-actualització-mapa-extra.txt
22 stat -c %n-%s_bytes territori-catala-extra.osm.pbf >> estat-actualització-mapa-extra.txt
23 echo " ---------------------------------- " >> estat-actualització-mapa-extra.txt
24 echo " " >> estat-actualització-mapa-extra.txt
25 cp estat-actualització-mapa-extra.txt /home/$USER/public_html/extra.txt

Actualització diària del mapa «ajustat» (.pbf)

A la carpeta mapa cal tenir-hi els fitxers:

  • catala.poly – 745 bytes
  • territori-catala.osm.pbf – 617,5MB
  • osmconvert32[3] – 41,6kB
  • osmupdate32[4] – 226,9kB

Cada dia a les 2:30h s’executa un script al servidor que bàsicament el que fa és:

  1. Actualitza el fitxer .pbf amb el mapa «ajustat» i l’anomena «nou»
  2. Canvia el nom al fitxer .pbf anterior i li afegeix «antic»
  3. Canvia el nom al fitxer .pbf nou traient-li el «nou»
  4. Registra les mides dels fitxes abans i després de canviar-los el nom, i desa aquestes dades al fitxer estat-actualització-mapa.txt que serà accessible des de la Web com a mapa.txt: http://gent.softcatala.org/albert/mapa/registres/mapa.txt.

Script de manteniment del mapa «ajustat»

 1 #!/bin/bash
 2 
 3 USER=nom_usuari
 4 
 5 cd /home/$USER/mapa
 6 date >> estat-actualització-mapa.txt
 7 
 8 # Actualitza el fitxer actual i el desa com a fitxer -nou
 9 mytime="$(time ( ./osmupdate territori-catala.osm.pbf territori-catala-nou.osm.pbf -B=catala.poly ) 2>&1 1>/dev/null )"
10 echo "$mytime" >> estat-actualització-mapa.txt
11 stat -c %n-%s_bytes territori-catala.osm.pbf >> estat-actualització-mapa.txt
12 stat -c %n-%s_bytes territori-catala-nou.osm.pbf >> estat-actualització-mapa.txt
13 echo " ---------------------------------- " >> estat-actualització-mapa.txt
14 
15 # Canvia el nom del fitxer actual a -antic
16 mv territori-catala.osm.pbf territori-catala-antic.osm.pbf
17 
18 # Canvia el nom del fitxer -nou a actual
19 mv  territori-catala-nou.osm.pbf territori-catala.osm.pbf
20 
21 stat -c %n-%s_bytes territori-catala-antic.osm.pbf >> estat-actualització-mapa.txt
22 stat -c %n-%s_bytes territori-catala.osm.pbf >> estat-actualització-mapa.txt
23 echo " ---------------------------------- " >> estat-actualització-mapa.txt
24 echo " " >> estat-actualització-mapa.txt
25 cp estat-actualització-mapa.txt /home/$USER/public_html/mapa.txt

Catalanització del fitxer .pbf

  • Em preocupa les proporcions que pugui agafar el fitxer .osm
  • He fet la prova de convertir el fitxer «extra»: ha trigat uns 10 minuts i s’ha generat un fitxer de 1,6GB. Caldria veure quan triga a passar l’script per canviar els name per name:ca
  • Però no treballem amb el fitxer «extra» sinó l’«ajustat». El temps de la conversió és de menys de 2 minuts, i passem d’un fitxer de 146,7 MB a un de 390 MB —-> 4 vegades més petit!!! 😉

Pas 4: Conversió del fitxer .osm «ajustat i amb name:ca» a .pbf altra vegada, i eliminació del fitxer .osm

 1 #!/bin/bash
 2 
 3 USER=nom_usuari
 4 
 5 cd /home/$USER/mapa-catala
 6 date >> osm-name_ca-pbf.txt
 7 
 8 # Actualitza el fitxer actual i el desa com a fitxer -nou
 9 mytime="$(time ( ./osmconvert /home/$USER/mapa/territori-catala.osm.pbf > territori-catala-catalanitzat.osm ) 2>&1 1>/dev/null )"
10 echo "$mytime" >> osm-name_ca-pbf.txt
11 cd /home/$USER/mapa
12 stat -c %n-%s_bytes territori-catala.osm.pbf >> /home/$USER/mapa-catala/osm-name_ca-pbf.txt
13 cd /home/$USER/mapa-catala
14 stat -c %n-%s_bytes territori-catala-catalanitzat.osm >> osm-name_ca-pbf.txt
15 echo " ---------------------------------- " >> osm-name_ca-pbf.txt
16 echo " Aquí aniria l'script per catalanitzar el mapa " >> osm-name_ca-pbf.txt
17 echo " ---------------------------------- " >> osm-name_ca-pbf.txt
18 mytime2="$(time ( ./osmconvert territori-catala-catalanitzat.osm --out-pbf > /home/$USER/mapbuild/osmand-pbf/Territori-catala.osm.pbf ) 2>&1 1>/dev/null )"
19 echo "$mytime2" >> osm-name_ca-pbf.txt
20 stat -c %n-%s_bytes territori-catala-catalanitzat.osm >> osm-name_ca-pbf.txt
21 cd /home/$USER/mapbuild/osmand-pbf
22 stat -c %n-%s_bytes Territori-catala.osm.pbf >> /home/$USER/mapa-catala/osm-name_ca-pbf.txt
23 cd /home/$USER/mapa-catala
24 rm territori-catala-catalanitzat.osm
25 echo " ---------------------------------- " >> osm-name_ca-pbf.txt
26 echo " " >> osm-name_ca-pbf.txt
27 cp osm-name_ca-pbf.txt /home/$USER/public_html/pbf-catalanitzat.txt

Generació del fitxer .obf

  • Em preocupa el temps de processament i el consum de recursos.
 1 #!/bin/bash
 2 
 3 USER=nom_usuari
 4 
 5 cd /home/$USER/OsmAndMapCreator-main
 6 
 7 mv /home/$USER/mapa-catala/data-anterior.txt /home/$USER/mapa-catala/data-anterior2.txt
 8 mv /home/$USER/mapa-catala/data-actualitzat.txt /home/$USER/mapa-catala/data-anterior.txt
 9 date +%Y-%m-%d > /home/$USER/mapa-catala/data-actualitzat.txt
10 DATE=`cat /home/$USER/mapa-catala/data-actualitzat.txt`
11 DATE2=`cat /home/$USER/mapa-catala/data-anterior.txt`
12 DATE3=`cat /home/$USER/mapa-catala/data-anterior2.txt`
13 
14 mytime="$(time ( java -Djava.util.logging.config.file=logging.properties -Xms64M -Xmx1000M -cp "./OsmAndMapCreator.jar:lib/OsmAnd-core.jar:./lib/*.jar" net.osmand.data.index.IndexBatchCreator batch.xml ) 2>&1 1>/dev/null )"
15 
16 echo "-----------------------------------------------------" >> /home/$USER/mapbuild/reg/Mapa-obf-$DATE-pre.txt
17 echo "|            MAPA OBF GENERAT EL $DATE           |" >> /home/$USER/mapbuild/reg/Mapa-obf-$DATE-pre.txt
18 echo "-----------------------------------------------------" >> /home/$USER/mapbuild/reg/Mapa-obf-$DATE-pre.txt
19 echo " " >> /home/$USER/mapbuild/reg/Mapa-obf-$DATE-pre.txt
20 echo "$mytime" >> /home/$USER/mapbuild/reg/Mapa-obf-$DATE-pre.txt
21 cd /home/$USER/mapbuild/osmand-pbf
22 stat -c %n-%s_bytes Territori-catala.osm.pbf >> /home/$USER/mapbuild/reg/Mapa-obf-$DATE-pre.txt
23 cd /home/$USER/mapbuild/osmand-obf
24 stat -c %n-%s_bytes Territori-catala_2.obf >> /home/$USER/mapbuild/reg/Mapa-obf-$DATE-pre.txt
25 
26 echo " " >> /home/$USER/mapbuild/reg/Mapa-obf-$DATE-pre.txt
27 cat /home/$USER/mapbuild/reg/Mapa-obf-$DATE-pre.txt /home/$USER/mapbuild/osmand-obf/Territori-catala_2.obf.gen.log > /home/$USER/mapbuild/reg/Mapa-obf-$DATE.txt
28 rm /home/$USER/mapbuild/reg/Mapa-obf-$DATE-pre.txt
29 
30 cp /home/$USER/mapbuild/reg/Mapa-obf-$DATE.txt /home/$USER/public_html/darrer-obf.txt
31 
32 mv /home/$USER/mapbuild/osmand-obf/Territori-catala_2.obf /home/$USER/public_html/Territori-catala-$DATE.obf
33 cd /home/$USER/mapbuild/osmand-gen
34 rm *.*
35 cd /home/$USER/mapbuild/osmand-obf
36 rm *.*
37 cd /home/$USER/mapbuild/osmand-pbf
38 rm *.*
39 rm /home/$USER/public_html/Territori-catala-$DATE3.obf
40 
41 #Cal canviar /dev/sda1 per la ubicació
42 DISC="/dev/sda1"
43 GB=`df -h | grep $DISC | cut -c 41-42`
44 echo "L'actualització del fitxer del dia $DATE2 sembla que s'ha realitzat amb èxit el dia $DATE. S'ha esborrat el fitxer amb data $DATE3, i hi ha $GB GB lliures al servidor. Fitxer: http://gent.softcatala.org/albert/Territori-catala-$DATE.obf . Fitxer de seguretat: http://gent.softcatala.org/albert/Territori-catala-$DATE2.obf .Fitxer log:  http://gent.softcatala.org/albert/darrer-obf.txt . " | mail -s "Actualització fitxer OBF-$DATE" usuari@correu.cat

Creació del fitxer .obf

Amb l’OsmAndMapCreator he començat a generar el fitxer .odf i després de 2 hores a petat en el pas final -quan es genera el fitxer .osm- per manca de memòria. Possiblement hauré d’assignar més memòria a l’OsmAndMapCreator editant OsmAndMapCreator.sh:

1 #!/bin/sh
2 
3 # This file will start the Osm Extraction UI with custom memory settings for
4 # the JVM. With the below settings the heap size (Available memory for the application)
5 # will range from 64 megabyte up to 720 megabyte.
6 
7 java -Djava.util.logging.config.file=logging.properties -Xms64M -Xmx720M -cp "./OsmAndMapCreator.jar:./lib/OsmAnd-core.jar:./lib/*.jar" net.osmand.swing.OsmExtractionUI

Caldrà augmentar els valors 64 i 720, tenint en compte que M=Megabytes i G=Gigabytes.