def populate_preprocessed(type): hazardset_id = u'preprocessed' hazardtype = HazardType.get(type) print 'Populating hazardset {}'.format(hazardset_id) hazardset = HazardSet( id=hazardset_id, hazardtype=hazardtype, local=False, data_lastupdated_date=datetime.now(), metadata_lastupdated_date=datetime.now()) DBSession.add(hazardset) layer = Layer( hazardlevel=None, mask=False, return_period=None, data_lastupdated_date=datetime.now(), metadata_lastupdated_date=datetime.now(), geonode_id=new_geonode_id(), download_url='test', calculation_method_quality=5, scientific_quality=1, local=False, downloaded=True ) hazardset.layers.append(layer) hazardset.complete = True DBSession.flush()
def populate_notpreprocessed(type, unit): hazardset_id = u'notpreprocessed' hazardtype = HazardType.get(type) hazardtype_settings = settings['hazard_types'][hazardtype.mnemonic] print 'Populating hazardset {}'.format(hazardset_id) hazardset = HazardSet( id=hazardset_id, hazardtype=hazardtype, local=False, data_lastupdated_date=datetime.now(), metadata_lastupdated_date=datetime.now()) DBSession.add(hazardset) return_periods = hazardtype_settings['return_periods'] for level in (u'HIG', u'MED', u'LOW'): hazardlevel = HazardLevel.get(level) level_return_periods = return_periods[level] if isinstance(level_return_periods, list): return_period = level_return_periods[0] else: return_period = level_return_periods layer = Layer( hazardlevel=hazardlevel, mask=False, return_period=return_period, hazardunit=unit, data_lastupdated_date=datetime.now(), metadata_lastupdated_date=datetime.now(), geonode_id=new_geonode_id(), download_url='test', calculation_method_quality=5, scientific_quality=1, local=False, downloaded=True ) hazardset.layers.append(layer) layer = Layer( hazardlevel=None, mask=True, return_period=hazardtype_settings['mask_return_period'], hazardunit=unit, data_lastupdated_date=datetime.now(), metadata_lastupdated_date=datetime.now(), geonode_id=new_geonode_id(), download_url='test', calculation_method_quality=5, scientific_quality=1, local=False, downloaded=True ) hazardset.layers.append(layer) hazardset.complete = True DBSession.flush()
def test_preprocessed_hig(self, open_mock): '''Test mask layer''' hazardtype = HazardType.get(preprocessed_type) hazardtype_settings = settings['hazard_types'][hazardtype.mnemonic] open_mock.side_effect = [ global_reader(hazardtype_settings['values']['HIG'][0]), ] process(hazardset_id='preprocessed') output = DBSession.query(Output).first() self.assertEqual(output.hazardlevel.mnemonic, u'HIG')
def populate_processing(): print 'populate processing' hazardset_id = u'test' hazardtype = HazardType.get(u'EQ') hazardtype_settings = settings['hazard_types'][hazardtype.mnemonic] print 'Populating hazardset {}'.format(hazardset_id) hazardset = HazardSet() hazardset.id = hazardset_id hazardset.hazardtype = hazardtype hazardset.local = False hazardset.data_lastupdated_date = datetime.now() hazardset.metadata_lastupdated_date = datetime.now() DBSession.add(hazardset) return_periods = hazardtype_settings['global']['return_periods'] unit = hazardtype_settings['thresholds'].keys()[0] for level in (u'HIG', u'MED', u'LOW'): hazardlevel = HazardLevel.get(level) return_period = return_periods[level] layer = Layer() layer.title = "{}-{}".format(id, return_period) layer.hazardlevel = hazardlevel layer.return_period = return_period layer.hazardunit = unit layer.data_lastupdated_date = datetime.now() layer.metadata_lastupdated_date = datetime.now() layer.geonode_id = new_geonode_id() layer.download_url = 'test' layer.calculation_method_quality = 5 layer.scientific_quality = 1 layer.local = False layer.downloaded = True hazardset.layers.append(layer) DBSession.flush() hazardset.complete = True DBSession.flush()
def populate_processing(): hazardtypeEQ = HazardType.get(u'EQ') hazardtypeFL = HazardType.get(u'FL') hazardset_id = u'hazardset1' print 'Populating hazardset {}'.format(hazardset_id) hazardset1 = HazardSet() hazardset1.id = hazardset_id hazardset1.hazardtype = hazardtypeEQ hazardset1.local = False hazardset1.calculation_method_quality = 0 hazardset1.data_lastupdated_date = datetime.now() hazardset1.metadata_lastupdated_date = datetime.now() hazardset1.complete = True hazardset1.layers.extend(make_layers()) DBSession.add(hazardset1) hazardset_id = u'hazardset1b' print 'Populating hazardset {}'.format(hazardset_id) hazardset1b = HazardSet() hazardset1b.id = hazardset_id hazardset1b.hazardtype = hazardtypeFL hazardset1b.local = True hazardset1b.calculation_method_quality = 3 hazardset1b.data_lastupdated_date = datetime.now() hazardset1b.metadata_lastupdated_date = datetime.now() hazardset1b.complete = True hazardset1b.layers.extend(make_layers()) DBSession.add(hazardset1b) # create hazardsets 2, 3 ... 5 hazardset_id = u'hazardset2' # calculation_method_quality = 1 / scientific_quality = 0 print 'Populating hazardset {}'.format(hazardset_id) hazardset2 = HazardSet() hazardset2.id = hazardset_id hazardset2.hazardtype = hazardtypeEQ hazardset2.local = True hazardset2.calculation_method_quality = 1 hazardset2.scientific_quality = 0 hazardset2.data_lastupdated_date = datetime.now() hazardset2.metadata_lastupdated_date = datetime.now() hazardset2.complete = True hazardset2.layers.extend(make_layers()) DBSession.add(hazardset2) hazardset_id = u'hazardset3' # date = 2015-01-01 / global / # calculation_method_quality = 1 / scientific_quality = 2 print 'Populating hazardset {}'.format(hazardset_id) hazardset3 = HazardSet() hazardset3.id = hazardset_id hazardset3.hazardtype = hazardtypeEQ hazardset3.local = False hazardset3.calculation_method_quality = 1 hazardset3.scientific_quality = 2 hazardset3.data_lastupdated_date = datetime(2015, 1, 1, 0, 0) hazardset3.metadata_lastupdated_date = datetime.now() hazardset3.complete = True hazardset3.layers.extend(make_layers()) DBSession.add(hazardset3) hazardset_id = u'hazardset4' # date = 2015-01-01 / local / # calculation_method_quality = 1 / scientific_quality = 2 print 'Populating hazardset {}'.format(hazardset_id) hazardset4 = HazardSet() hazardset4.id = hazardset_id hazardset4.hazardtype = hazardtypeEQ hazardset4.local = True hazardset4.calculation_method_quality = 1 hazardset4.scientific_quality = 2 hazardset4.data_lastupdated_date = datetime(2015, 1, 1, 0, 0) hazardset4.metadata_lastupdated_date = datetime.now() hazardset4.complete = True hazardset4.layers.extend(make_layers()) DBSession.add(hazardset4) hazardset_id = u'hazardset5' # date = now() / local / # calculation_method_quality = 1 / scientific_quality = 2 print 'Populating hazardset {}'.format(hazardset_id) hazardset5 = HazardSet() hazardset5.id = hazardset_id hazardset5.hazardtype = hazardtypeEQ hazardset5.local = True hazardset5.calculation_method_quality = 1 hazardset5.scientific_quality = 2 hazardset5.data_lastupdated_date = datetime.now() hazardset5.metadata_lastupdated_date = datetime.now() hazardset5.complete = True hazardset5.layers.extend(make_layers()) DBSession.add(hazardset5) hazardset_id = u'hazardset6' # date = now() / global / # calculation_method_quality = 1 / scientific_quality = 2 print 'Populating hazardset {}'.format(hazardset_id) hazardset6 = HazardSet() hazardset6.id = hazardset_id hazardset6.hazardtype = hazardtypeEQ hazardset6.local = False hazardset6.calculation_method_quality = 1 hazardset6.scientific_quality = 2 hazardset6.data_lastupdated_date = datetime.now() hazardset6.metadata_lastupdated_date = datetime.now() hazardset6.complete = True hazardset6.layers.extend(make_layers()) DBSession.add(hazardset6) # populate output table # admin div (code 30) has only one hazardset for EQ admin30 = DBSession.query(AdministrativeDivision)\ .filter(AdministrativeDivision.code == 30).one() # => test outcome = hazardset1 output1 = Output() output1.coverage_ratio = 10 output1.hazardset = hazardset1 output1.administrativedivision = admin30 output1.hazardlevel = HazardLevel.get(u'HIG') DBSession.add(output1) # admin div (code 30) also has another hazardset # but this one is for FL # => test outcome = hazardset1b output1b = Output() output1b.coverage_ratio = 11 output1b.hazardset = hazardset1b output1b.administrativedivision = admin30 output1b.hazardlevel = HazardLevel.get(u'NPR') DBSession.add(output1b) # admin div (code 31) has 2 hazardsets, # one with a higher calculation_method_quality # => test outcome = hazardset2 admin31 = DBSession.query(AdministrativeDivision)\ .filter(AdministrativeDivision.code == 31).one() output2 = Output() output2.coverage_ratio = 20 output2.hazardset = hazardset1 # calculation_method_quality = 0 output2.administrativedivision = admin31 output2.hazardlevel = HazardLevel.get(u'MED') DBSession.add(output2) output3 = Output() output3.coverage_ratio = 30 output3.hazardset = hazardset2 # calculation_method_quality = 1 output3.administrativedivision = admin31 output3.hazardlevel = HazardLevel.get(u'LOW') DBSession.add(output3) # admin div (code 32) has 2 hazardsets, # both share the same calculation_method_quality, # one with a higher scientific_quality # => test outcome = hazardset3 admin32 = DBSession.query(AdministrativeDivision)\ .filter(AdministrativeDivision.code == 32).one() output4 = Output() output4.coverage_ratio = 40 output4.hazardset = hazardset2 # calculation_method_quality = 1 / scientific_quality = 0 output4.administrativedivision = admin32 output4.hazardlevel = HazardLevel.get(u'MED') DBSession.add(output4) output5 = Output() output5.coverage_ratio = 50 output5.hazardset = hazardset3 # calculation_method_quality = 1 / scientific_quality = 2 output5.administrativedivision = admin32 output5.hazardlevel = HazardLevel.get(u'LOW') DBSession.add(output5) # admin div (code 33) has 2 hazardsets, # both share the same ratings, one is global, one local # => test outcome = hazardset4 admin33 = DBSession.query(AdministrativeDivision)\ .filter(AdministrativeDivision.code == 33).one() output6 = Output() output6.coverage_ratio = 60 output6.hazardset = hazardset3 # global / calculation_method_quality = 1 / scientific_quality = 2 output6.administrativedivision = admin33 output6.hazardlevel = HazardLevel.get(u'MED') DBSession.add(output6) output7 = Output() output7.coverage_ratio = 70 output7.hazardset = hazardset4 # local / calculation_method_quality = 1 / scientific_quality = 2 output7.administrativedivision = admin33 output7.hazardlevel = HazardLevel.get(u'LOW') DBSession.add(output7) # admin div (code 34) has 2 hazardsets, # both share the same ratings, are local, one is more recent # => test outcome = hazardset5 admin34 = DBSession.query(AdministrativeDivision)\ .filter(AdministrativeDivision.code == 34).one() output8 = Output() output8.coverage_ratio = 80 output8.hazardset = hazardset4 # date = 2015-01-01 / local / # calculation_method_quality = 1 / scientific_quality = 2 output8.administrativedivision = admin34 output8.hazardlevel = HazardLevel.get(u'MED') DBSession.add(output8) output9 = Output() output9.coverage_ratio = 90 output9.hazardset = hazardset5 # date = now() / local / # calculation_method_quality = 1 / scientific_quality = 2 output9.administrativedivision = admin34 output9.hazardlevel = HazardLevel.get(u'LOW') DBSession.add(output9) # admin div (code 35) has 2 hazardsets, # both share the same ratings, are global, one is more recent # => test outcome = hazardset6 admin35 = DBSession.query(AdministrativeDivision)\ .filter(AdministrativeDivision.code == 35).one() output10 = Output() output10.coverage_ratio = 95 output10.hazardset = hazardset3 # date = 2015-01-01 / global / # calculation_method_quality = 1 / scientific_quality = 2 output10.administrativedivision = admin35 output10.hazardlevel = HazardLevel.get(u'MED') DBSession.add(output10) output11 = Output() output11.coverage_ratio = 99 output11.hazardset = hazardset6 # date = now() / global / # calculation_method_quality = 1 / scientific_quality = 2 output11.administrativedivision = admin35 output11.hazardlevel = HazardLevel.get(u'LOW') DBSession.add(output11) DBSession.flush()
def hazardtype_from_geonode(geonode_name): for mnemonic, type_settings in settings['hazard_types'].iteritems(): if type_settings['hazard_type'] == geonode_name: return HazardType.get(unicode(mnemonic)) return None