def handle(self, *args, **options): user = User.objects.get(username=options.get('user')) pk=options.get('proj') if pk: locaties = ProjectLocatie.objects.filter(pk=pk) else: locaties = ProjectLocatie.objects.all() _all = options.get('all') days = None if _all else DAYSBACK for locatie in locaties: cartodb = locatie.cartodb for akvo in locatie.akvoflow_set.all(): api = FlowAPI(instance=akvo.instance, key=akvo.key, secret=akvo.secret) try: logger.info('Meetpuntgegevens ophalen voor {}'.format(locatie)) m1,w1 = importAkvoRegistration(api, akvo, projectlocatie=locatie,user=user,days=days) logger.info('Waarnemingen ophalen voor {}'.format(locatie)) m2,w2=importAkvoMonitoring(api, akvo, days) mp = m1|m2 wn = w1|w2 if mp: logger.info('Grafieken aanpassen') util.updateSeries(mp, user) #logger.info('Cartodb actualiseren') #util.exportCartodb(cartodb, mp) akvo.last_update = timezone.now() akvo.save() except Exception as e: logger.exception('Probleem met verwerken nieuwe EC metingen: %s',e) finally: pass
def handle(self, *args, **options): akvo = AkvoFlow.objects.get(pk=options.get('akvo')) api = FlowAPI(instance=akvo.instance, key=akvo.key, secret=akvo.secret) cartodb = CartoDb.objects.get(pk=options.get('cartodb')) project = ProjectLocatie.objects.get(pk=options.get('proj')) user = User.objects.get(username=options.get('user')) days = None if options.get('all') else 7 try: logger.debug('Meetpuntgegevens ophalen') m1,w1 = importAkvoRegistration(api, akvo, projectlocatie=project,user=user,days=days) logger.debug('Waarnemingen ophalen') m2,w2=importAkvoMonitoring(api, akvo, days) mp = m1|m2 wn = w1|w2 if mp: logger.debug('Grafieken aanpassen') util.updateSeries(mp, user) #logger.debug('Cartodb actualiseren') util.exportCartodb(cartodb, mp, 'allemetingen') akvo.last_update = timezone.now() akvo.save() except Exception as e: logger.exception('Probleem met verwerken nieuwe EC metingen: %s',e) finally: pass
def handle(self, *args, **options): fname = options.get('file', None) if not fname: print 'filenaam ontbreekt' return project = ProjectLocatie.objects.get(pk=1) # Texel user = User.objects.get(pk=1) # admin meetpunten = set() with open(fname) as csvfile: reader = csv.DictReader(csvfile) for row in reader: waarnemer_id = row['wnid'] submitter = row['waarnemer'] sample_id= row['locatie'] lon = float(row['lon']) lat = float(row['lat']) oms = row['omschrijving'] diep = row['boven/onder'] ec = float(row['EC']) if diep == 'b': # boven diep = 'Ondiep' elif diep in ('d', 'o'): # onder of diep diep = 'Diep' date = parser.parse(row['datetime']) location = Point(lon,lat,srid=4326) location.transform(28992) name = 'MP%s.%s' % (waarnemer_id, sample_id) try: waarnemer = Waarnemer.objects.get(pk=waarnemer_id) waarnemer.akvoname = submitter.lower() waarnemer.save() meetpunt = waarnemer.meetpunt_set.get(name=name) meetpunt.identifier = uuid.uuid4() meetpunt.location = location meetpunt.description = oms meetpunt.save() except Waarnemer.DoesNotExist: logging.error('Waarnemer niet gevonden: %d' % waarnemer_id) continue except Meetpunt.DoesNotExist: meetpunt=waarnemer.meetpunt_set.create(name=name,projectlocatie=project,location=location,description=oms) logger.info('Meetpunt {mp} aangemaakt.'.format(mp=meetpunt)) waarnemingen = meetpunt.waarneming_set.filter(naam='EC_'+diep,datum=date) if waarnemingen.exists(): logger.warn('EC waarnemingen worden vervangen voor {locatie}, datum={date}'.format(locatie=meetpunt.name,date=date)) waarnemingen.delete() meetpunt.waarneming_set.create(naam='EC_'+diep if diep else 'EC', waarnemer=waarnemer, datum=date, device='acacia', waarde=ec, opmerking='', eenheid='uS/cm' ) logger.debug('EC_{diep}, {date}, EC={ec}'.format(diep=diep, date=date, ec=ec)) meetpunten.add(meetpunt) updateSeries(meetpunten, user) #cartodb = CartoDb.objects.get(name='Texel Meet') #cartodb.runsql('DELETE FROM waarnemingen') #updateCartodb(cartodb, meetpunten)
def update_cdb_waarnemers(modeladmin, request, queryset): mps = [] for w in queryset: mps.extend(w.meetpunt_set.all()) util.updateSeries(mps, request.user) util.updateCartodb(CartoDb.objects.get(pk=1), mps)
def update_cdb_meetpunten(modeladmin, request, queryset): util.updateSeries(queryset, request.user) util.updateCartodb(CartoDb.objects.get(pk=1), queryset)
def update_series(modeladmin, request, queryset): util.updateSeries(queryset, request.user)