Commit c90b85fa authored by JeaRRo's avatar JeaRRo

Export csv pour mapcontrib ok

parent c1cc0220
......@@ -23,6 +23,8 @@
Faire un export des tags OSM dans un fichier csv pour mapcontrib
'''
import csv
import ini
import param
def write_head(filename):
......@@ -34,10 +36,10 @@ def write_head(filename):
# 'mhs:inscription_date', 'source:heritage', 'wikipedia'])
mhswriter.writerow([
'latitude', 'longitude', 'historic', 'start_date', 'ref:mhs', 'wikidata', 'name', 'heritage',
'mhs:inscription_date', 'wikipedia'])
'mhs:inscription_date', 'wikipedia', 'left', 'right', 'top', 'bottom'])
def exporter(filename, geoloc, infos):
def exporter(filename, geoloc, infos, l, r, t, b):
# print(geoloc)
if "%7C" in infos[0]:
historic = infos[0].split('%7C')[0].split('=')[1]
......@@ -97,24 +99,37 @@ def exporter(filename, geoloc, infos):
# ])
mhswriter.writerow([
float(geoloc.split(',')[0]), float(geoloc.split(',')[1]), historic, start_date, refmhs, wikidata, name, heritage,
mhs_incription_date, wikipedia
mhs_incription_date, wikipedia, str(l), str(r), str(t), str(b)
])
if __name__ == "__main__":
def get_export_filename(dep_code):
if dep_code < '51' or dep_code == '2A' or dep_code == '2B':
return ini.exportfile[0]
else:
return ini.exportfile[1]
filename = "export.csv"
write_head(filename)
geoloc = '45.90372322, 5.18000876'
infos = [
'historic=citywalls%7Cstart_date=15C', 'ref:mhs=PA00116527', 'wikidata=Q3424623', 'name=Rempart attenant à un immeuble', 'heritage:operator=mhs', 'heritage=2',
'mhs:inscription_date=1921-11-24 ', 'source:heritage=data.gouv.fr, Ministère de la Culture - 2016', 'wikipedia=fr:Remparts de Pérouges']
exporter(filename, geoloc, infos)
# 45.90274191, 5.17916641
# ['historic=citywalls', 'ref:mhs=PA00116524', 'wikidata=Q3424623', 'name=Rempart attenant à un immeuble', 'heritage:operator=mhs', 'heritage=2', 'mhs:inscription_date=1921-11-24 ', 'source:heritage=data.gouv.fr, Ministère de la Culture - 2016', 'wikipedia=fr:Remparts de Pérouges']
geoloc = '45.90274191, 5.17916641'
infos = [
'historic=citywalls', 'ref:mhs=PA00116524', 'wikidata=Q3424623', 'name=Rempart attenant à un immeuble', 'heritage:operator=mhs', 'heritage=2',
'mhs:inscription_date=1921-11-24 ', 'source:heritage=data.gouv.fr, Ministère de la Culture - 2016', 'wikipedia=fr:Remparts de Pérouges']
exporter(filename, geoloc, infos)
if __name__ == "__main__":
#
# filename = "export.csv"
# write_head(filename)
#
# geoloc = '45.90372322, 5.18000876'
# infos = [
# 'historic=citywalls%7Cstart_date=15C', 'ref:mhs=PA00116527', 'wikidata=Q3424623', 'name=Rempart attenant à un immeuble', 'heritage:operator=mhs', 'heritage=2',
# 'mhs:inscription_date=1921-11-24 ', 'source:heritage=data.gouv.fr, Ministère de la Culture - 2016', 'wikipedia=fr:Remparts de Pérouges']
# exporter(filename, geoloc, infos)
# # 45.90274191, 5.17916641
# # ['historic=citywalls', 'ref:mhs=PA00116524', 'wikidata=Q3424623', 'name=Rempart attenant à un immeuble', 'heritage:operator=mhs', 'heritage=2', 'mhs:inscription_date=1921-11-24 ', 'source:heritage=data.gouv.fr, Ministère de la Culture - 2016', 'wikipedia=fr:Remparts de Pérouges']
# geoloc = '45.90274191, 5.17916641'
# infos = [
# 'historic=citywalls', 'ref:mhs=PA00116524', 'wikidata=Q3424623', 'name=Rempart attenant à un immeuble', 'heritage:operator=mhs', 'heritage=2',
# 'mhs:inscription_date=1921-11-24 ', 'source:heritage=data.gouv.fr, Ministère de la Culture - 2016', 'wikipedia=fr:Remparts de Pérouges']
# exporter(filename, geoloc, infos)
# Test fonction get_export_filename(dep_code)
for dep in param.dic_dep:
code = param.dic_dep[dep]['code']
f = get_export_filename(code)
print(code, ' : ', f)
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -349,18 +349,20 @@ def main(departement: 'Analyse d\'un seul département'='all', monument: 'Analys
st.fname = './stats.json'
''' Créer l'entête du fichier d'export csv des monuments non présents dans OSM'''
exportfile = "export.csv"
export.write_head(exportfile)
# exportfile = "export.csv"
# export.write_head(exportfile)
for fichier in ini.exportfile:
export.write_head(fichier)
# le contenu de ce fichier est créer dans mohist.py par la fonction gen_infos_osm()
listdepA = [
'01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19',
'2A', '2B', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39',
'40', '41', '42', '43', '44', '45', '46', '47']
listdepB = [
'48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67',
'68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87',
'88', '89', '90', '91', '92', '93', '94', '95']
# listdepA = [
# '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19',
# '2A', '2B', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39',
# '40', '41', '42', '43', '44', '45', '46', '47']
# listdepB = [
# '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67',
# '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87',
# '88', '89', '90', '91', '92', '93', '94', '95']
'''Créer la liste des départements à mettre à jour'''
if departement == 'all':
......@@ -370,11 +372,14 @@ def main(departement: 'Analyse d\'un seul département'='all', monument: 'Analys
else:
listDep = [departement]
# listDep = ['88','25','48', '52']
listDep = listdepA
# listDep = listdepB
# print (listDep)
# print(len(listDep))
'''Mettre à jour les pages des départements de la liste'''
for dep in listDep:
''' Trouver le nom du fichier d'export '''
exportFile = export.get_export_filename(param.dic_dep[dep]['code'])
print('exportFile : ', exportFile)
print('------' + dep + '------')
logging.info('log : ------ {} ------'.format(dep))
''' Acquérir les datas'''
......@@ -398,7 +403,7 @@ def main(departement: 'Analyse d\'un seul département'='all', monument: 'Analys
# pour les salles mer et merwip générer les infos à faire apparaitre dans la popup
# Infos à ajouter dans OSM
for x in [1, 5]:
museum.gen_infos_osm(x)
museum.gen_infos_osm(x, exportFile)
museum.maj_stats()
pagesToCreate = museum.get_nb_pageToCreate()
......
_**Monument pouvant être ajouté à OSM**_
## __{name}__
[Fiche_Mérimée](http://www.culture.gouv.fr/public/mistral/mersri_fr?ACTION=CHERCHER&FIELD_1=REF&VALUE_1={ref:mhs}) = {ref:mhs}
[wikidata](https://www.wikidata.org/wiki/{wikidata}) = {wikidata}
[wikipedia](https://fr.wikipedia.org/wiki/{wikipedia}) = {wikipedia}
---
__**Tags à copier :**__
name = {name}
historic = {historic}
start_date = {start_date}
heritage:operator = mhs
heritage = {heritage}
mhs:inscription_date = {mhs:inscription_date}
ref:mhs = {ref:mhs}
wikipedia = {wikipedia}
wikidata = {wikidata}
source:heritage = data.gouv.fr, Ministère de la Culture - 2016
----
__**Edition JOSM**__
Selectionner et copier tous les tags ci-dessus (ctrl-c), cliquer sur le lien ci dessous, puis dans JOSM, rechercher et sélectionner le bâtiment correspondant,
coller les tags (Ctrl-shift-v)
[Charger la zone dans JOSM](http://localhost:8111/load_and_zoom?left={left}&right={right}&top={top}&bottom={bottom}&zoom_mode=download)
......@@ -31,6 +31,9 @@ url_prod = "/home/jearro/osm"
# fichier statique : style.css
# cssFile ="style.css"
# Fichiers d'export pour mapcontrib
exportfile = ['export_a.csv', 'export_b.csv']
# les textes qui ne doivent pas apparaitre comme name= pour OSM
no_name = ['Immeuble', 'Maison', 'Maisons', 'Eglise', 'Église', 'Château', 'Ecurie', 'Ecuries', 'Écurie', 'Écuries', 'Presbytère', 'Beffroi', 'Cimetière', 'Prieuré', 'Remparts', 'Hôtel']
......
......@@ -181,10 +181,11 @@ class Musee:
ot += "<li>start_date=C{}</li>".format(s[s.index('er siècle') - 1:s.index('er siècle')])
return ot
def gen_infos_osm(self, n):
def gen_infos_osm(self, n, exportFileName):
'''
Produire des infos d'aide (les tags) pour la création du MH dans OSM
n est le rang de la salle dans la liste des salles (voir plus haut)
exportFileName est le nom du fichier d'export csv pour mapcontrib
'''
# print("Génération complémentaire pour : {}".format(self.salles[n].salle['nom']))
if len(self.salles[n].s_collection) > 0:
......@@ -279,23 +280,26 @@ class Musee:
lat = self.collection[mh].description[mh]['wip']['geoloc'].split(', ')[0]
lon = self.collection[mh].description[mh]['wip']['geoloc'].split(', ')[1]
# print("Position estimée : http://www.openstreetmap.org/?mlat={}&mlon={}#map=19/{}/{}".format(lat,lon,lat,lon))
infos += '<li><b><a href="http://www.openstreetmap.org/?mlat={}&mlon={}#map=19/{}/{}" title="Géocodage fourni par Wikipédia : à vérifier" target="__blank"'.format(lat, lon, lat, lon)
infos += '<li><b><a href="http://www.openstreetmap.org/?mlat={}&mlon={}#map=19/{}/{}" title="Géocodage fourni par Wikipédia : \
à vérifier" target="__blank"'.format(lat, lon, lat, lon)
infos += '>Position estimée</a></b></li>'
infos += "<p>"
infos_tags = [tag_P, tag_A, tag_Q, tag_B, tag_C, tag_D, tag_E, tag_F, tag_G]
tags = [t for t in infos_tags if t != ""]
infos += '<li><b><a href="http://localhost:8111/add_node?lon={}&lat={}&addtags={}" title="Création d\'un node dans JOSM (remoteControl) : Vérifier la position et les tags ! ATTENTION : un calque doit déjà être ouvert dans JOSM." target="hide" '.format(lon, lat, '%7C'.join(tags))
infos += '<li><b><a href="http://localhost:8111/add_node?lon={}&lat={}&addtags={}" title="Création d\'un node dans JOSM (remoteControl) : \
Vérifier la position et les tags ! ATTENTION : un calque doit déjà être ouvert dans JOSM." target="hide" '.format(lon, lat, '%7C'.join(tags))
infos += '>Créer un point dans JOSM</a></b></li>'
# télécharger la zone du mh dans JOSM
# http://127.0.0.1:8111/load_and_zoom?left=8.19&right=8.20&top=48.605&bottom=48.590
left, right, top, bottom = bbox.getBB(float(lat), float(lon))
infos += '<li><b><a href="http://localhost:8111/load_and_zoom?left={}&right={}&top={}&bottom={}&zoom_mode=download" \
title="Selectionner et copier tous les tags ci-dessus (ctrl-C) puis dans Josm, sélectionner le bâtiment correspondant puis coller les tags (Ctrl-shift-V)? ATTENTION : ne marche pas si \'Classements multiples\'"\
title="Selectionner et copier tous les tags ci-dessus (ctrl-C) puis dans Josm, sélectionner le bâtiment correspondant \
puis coller les tags (Ctrl-shift-V)? "\
target="hide" '.format(left, right, top, bottom)
infos += '>Charger la zone dans JOSM</a></b></li>'
# print(self.collection[mh].description[mh]['wip']['geoloc'])
# print (infos_tags)
export.exporter('export.csv', self.collection[mh].description[mh]['wip']['geoloc'], infos_tags)
export.exporter(exportFileName, self.collection[mh].description[mh]['wip']['geoloc'], infos_tags, left, right, top, bottom)
self.collection[mh].description[mh]['infos_osm'] = infos
# print()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment