summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-02-27 20:44:52 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-06-17 13:21:27 +0200
commit0f3229a119e53054d98c5e878a9581403628cd08 (patch)
treee07ad2e91e2544f7b2d61e8f3f653fdda26bfd52 /scripts
parentcfabd636d0a6d84e8377be3e4d041b4e75ddda9a (diff)
downloadIshtar-0f3229a119e53054d98c5e878a9581403628cd08.tar.bz2
Ishtar-0f3229a119e53054d98c5e878a9581403628cd08.zip
Migrate to python 3 - Clean old migrations and some old scripts
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/import_towns_from_osm.py110
-rw-r--r--scripts/pre_import_sra_files.py79
2 files changed, 0 insertions, 189 deletions
diff --git a/scripts/import_towns_from_osm.py b/scripts/import_towns_from_osm.py
deleted file mode 100755
index fb301f09f..000000000
--- a/scripts/import_towns_from_osm.py
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-"""
-Import towns from OpenStreetMap data.
-Take an OSM xml file for argument.
-
-To get an OSM file (with a bounding box adapted to your needs):
-curl --location --globoff "http://www.informationfreeway.org/api/0.6/node[place=village|town|city][bbox=-5.53711,41.90228,8.96484,51.50874]" -o city.osm
-or from a whole xml/pbf export:
-./osmosis --read-pbf ~/france-20110125.osm.pbf --node-key-value keyValueList="place.village,place.town,place.city" --write-xml city.osm
-"""
-
-import sys
-sys.path.append('.')
-
-from django.core.management import setup_environ
-from django.core.exceptions import ObjectDoesNotExist
-from django.contrib.gis.geos import Point
-import settings
-
-setup_environ(settings)
-
-from optparse import OptionParser
-from xml.parsers import expat
-
-from ishtar_base import models
-
-usage = "usage: %prog osm_file.xml"
-parser = OptionParser(usage=usage)
-
-(options, args) = parser.parse_args()
-
-try:
- assert len(args) == 1
-except AssertionError:
- parser.error("You must provide one XML file")
-
-
-ATTRS = [u"lat", u"lon"]
-
-# key : (mandatory, [restraint to keys])
-TAGS = {u"place":(True, [u"village", u"town", u"city"]),
- u"ref:INSEE":(True, []),
- u"population":(False, [])
- }
-
-class TownParser:
-
- def __init__(self):
- self._parser = expat.ParserCreate()
- self._parser.returns_unicode = True
- self._parser.StartElementHandler = self.start
- self._parser.EndElementHandler = self.end
- self._parser.CharacterDataHandler = self.data
- self.town = {}
- self.number = 0
-
- def feed(self, data):
- self._parser.ParseFile(data)
-
- def close(self):
- self._parser.Parse("", 1) # end of data
- del self._parser # get rid of circular references
-
- def start(self, tag, attrs):
- if tag == u"node":
- self.town = {}
- for attr in ATTRS:
- if attr in attrs:
- self.town[attr] = attrs[attr]
- if tag == u"tag":
- if not u"k" in attrs or not u"v" in attrs:
- return
- if attrs[u"k"] in TAGS:
- limit = TAGS[attrs[u"k"]][1]
- if limit and \
- (attrs[u"v"] not in limit or \
- (type(limit) == unicode and limit not in attrs[u"v"])):
- self.town["DEL"] = True
- return
- self.town[attrs[u"k"]] = attrs[u"v"]
-
- def end(self, tag):
- if tag == u"node" and self.town and "DEL" not in self.town:
- for k in TAGS:
- if TAGS[k][0] and k not in self.town:
- return
- self.number += 1
- try:
- town = models.Town.objects.get(numero_insee=self.town["ref:INSEE"])
- except ObjectDoesNotExist:
- return
- town.center = Point(float(self.town['lon']), float(self.town['lat']),
- srid=4326)
- town.save()
- print town, "updated"
-
- def data(self, data):
- pass
-
-p = TownParser()
-
-try:
- p.feed(file(args[0]))
- print u"%d towns updated" % p.number
-except (IOError, expat.ExpatError):
- parser.error("Incorrect XML file")
-
-
diff --git a/scripts/pre_import_sra_files.py b/scripts/pre_import_sra_files.py
deleted file mode 100644
index 07e4db1df..000000000
--- a/scripts/pre_import_sra_files.py
+++ /dev/null
@@ -1,79 +0,0 @@
-import unicodecsv
-import datetime
-
-from django.conf import settings
-
-from ishtar_common.data_importer import Importer
-
-
-def get_year(value):
- try:
- for fmt in ['%d/%m/%Y', '%d/%m/%Y']:
- return datetime.datetime.strptime(value, fmt).year
- except:
- pass
-
-index_list = []
-
-
-def treatment(data):
- internal_ref = data[37].strip()
- creation = data[34].strip()
- reception = data[19].strip()
- yr = get_year(creation)
- if not yr:
- yr = get_year(reception)
-
- idx, year = None, None
- if '-' in internal_ref:
- year, y_idx = internal_ref.split('-')
- if len(year) == 4: # 2007-XXXX
- try:
- year = int(year)
- idx = int(y_idx)
- except ValueError:
- pass
- elif '.' in internal_ref:
- year, y_idx = internal_ref.split('.')
- if len(year) == 4: # 2011.XXXX
- try:
- year = int(year)
- idx = int(y_idx)
- except ValueError:
- pass
- if not idx:
- idx = int(internal_ref)
- if year and year != yr:
- yr = year
- assert yr # we should absolutly have a year!
-
- external_id = "SRA{}-{}".format(yr, idx)
- assert (yr, external_id) not in index_list
- index_list.append((yr, external_id))
- return yr, idx, external_id
-
-
-new_datas = []
-with open('plouf.csv') as csv_file:
- datas = [line for line in unicodecsv.reader(csv_file,
- encoding='utf-8')]
- for idx, data in enumerate(datas):
- if idx < 3:
- # headers
- data.append('annee')
- data.append('identifiant numerique')
- data.append('external_id')
- new_datas.append(data)
- continue
- try:
- year, idx, external_id = treatment(data)
- data.append(year)
- data.append(idx)
- data.append(external_id)
- new_datas.append(data)
- except Exception as e:
- print("Line {}: {}".format(idx + 1, e))
-
-csv = Importer()._get_csv(new_datas, empty=u'')
-with open('plouf2.csv', 'w') as fle:
- fle.write(csv.encode('utf-8'))