def test_getcurrentlocale(self, mock_get_locale, mock_default_locale): mock_get_locale.return_value = 'a_lang' mock_default_locale.return_value = [None, 'an_enc'] test_string = create_test_string(utils.getcurrentlocale()) reference_string = '[a_lang, an_enc]' assert test_string == reference_string
def test_create_db_se(self, mock_locale, mock_iface): mock_locale.return_value.answer = u'ok' mock_locale.return_value.value = u'sv_SE' self.midvatten.new_db() test_string = utils_for_tests.create_test_string(utils.sql_load_fr_db(u'select * from zz_strat')) reference_string = ur"""(True, [(berg, berg), (b, berg), (rock, berg), (ro, berg), (grovgrus, grovgrus), (grg, grovgrus), (coarse gravel, grovgrus), (cgr, grovgrus), (grus, grus), (gr, grus), (gravel, grus), (mellangrus, mellangrus), (grm, mellangrus), (medium gravel, mellangrus), (mgr, mellangrus), (fingrus, fingrus), (grf, fingrus), (fine gravel, fingrus), (fgr, fingrus), (grovsand, grovsand), (sag, grovsand), (coarse sand, grovsand), (csa, grovsand), (sand, sand), (sa, sand), (mellansand, mellansand), (sam, mellansand), (medium sand, mellansand), (msa, mellansand), (finsand, finsand), (saf, finsand), (fine sand, finsand), (fsa, finsand), (silt, silt), (si, silt), (lera, lera), (ler, lera), (le, lera), (clay, lera), (cl, lera), (morän, morän), (moran, morän), (mn, morän), (till, morän), (ti, morän), (torv, torv), (t, torv), (peat, torv), (pt, torv), (fyll, fyll), (fyllning, fyll), (f, fyll), (made ground, fyll), (mg, fyll), (land fill, fyll)])""" assert test_string == reference_string current_locale = utils.getcurrentlocale()[0] assert current_locale == u'sv_SE'
def PlotHatchDict(): """ This dictionary is used by sectionplot (matplotlib) for relating the geoshort names with hatches in plots The user may update these fields in the zz_strat table to use other hatches Fallback method use dictionary defined in the code below """ success, Dict = utils.create_dict_from_db_2_cols( ('strata', 'hatch_mplot', 'zz_stratigraphy_plots')) if not success: utils.MessagebarAndLog.info(bar_msg=QCoreApplication.translate( 'PlotHatchDict', 'Getting strata and hatch_mplot from zz_stratigraphy_plots failed, fallback method with PlotHatchDict from code' )) # hatch patterns : ('-', '+', 'x', '\\', '*', 'o', 'O', '.','/') if utils.getcurrentlocale( ) == 'sv_SE': #swedish forms are loaded only if locale settings indicate sweden Dict = { "Okänt": "", "Berg": "x", "Grovgrus": "O", "Grus": "O", "Mellangrus": "o", "Fingrus": "o", "Grovsand": "*", "Sand": "*", "Mellansand": ".", "Finsand": ".", "Silt": "\\", "Lera": "-", "Morän": "/", "Torv": "+", "Fyll": "+" } else: Dict = { "Unknown": "", "Rock": "x", "Coarse gravel": "O", "Gravel": "O", "Medium gravel": "o", "Fine gravel": "o", "Coarse sand": "*", "Sand": "*", "Medium sand": ".", "Fine sand": ".", "Silt": "\\", "Clay": "-", "Till": "/", "Peat": "+", "Fill": "+" } Dict = {k.lower(): v for k, v in Dict.items()} return Dict
def PlotColorDict(): """ This dictionary is used by sectionplot (matplotlib) for relating the geoshort names with color codes The user may update these fields in the zz_strat table to use other colors Fallback method use dictionary defined in the code below """ success, Dict = utils.create_dict_from_db_2_cols( ('strata', 'color_mplot', 'zz_stratigraphy_plots')) if not success: utils.MessagebarAndLog.info(log_msg=QCoreApplication.translate( 'PlotColorDict', 'Getting strata and color_mplot form zz_stratigraphy_plots failed, fallback method with PlotColorDict from code' )) if utils.getcurrentlocale( ) == 'sv_SE': #swedish forms are loaded only if locale settings indicate sweden Dict = { "Okänt": "white", "Berg": "red", "Grovgrus": "DarkGreen", "Grus": "DarkGreen", "Mellangrus": "DarkGreen", "Fingrus": "DarkGreen", "Grovsand": "green", "Sand": "green", "Mellansand": "green", "Finsand": "DarkOrange", "Silt": "yellow", "Lera": "yellow", "Morän": "cyan", "Torv": "DarkGray", "Fyll": "white" } else: Dict = { "Unknown": "white", "Rock": "red", "Coarse gravel": "DarkGreen", "Gravel": "DarkGreen", "Medium gravel": "DarkGreen", "Fine gravel": "DarkGreen", "Coarse sand": "green", "Sand": "green", "Medium sand": "green", "Fine sand": "DarkOrange", "Silt": "yellow", "Clay": "yellow", "Till": "cyan", "Peat": "DarkGray", "Fill": "white" } #print Dict#debug! Dict = {k.lower(): v for k, v in Dict.items()} return Dict
def PlotHatchDict(): """ This dictionary is used by sectionplot (matplotlib) for relating the geoshort names with hatches in plots The user may update these fields in the zz_strat table to use other hatches Fallback method use dictionary defined in the code below """ success, Dict = utils.create_dict_from_db_2_cols(('strata','hatch_mplot','zz_stratigraphy_plots')) if not success: utils.MessagebarAndLog.info(bar_msg=QCoreApplication.translate('PlotHatchDict', 'Getting strata and hatch_mplot from zz_stratigraphy_plots failed, fallback method with PlotHatchDict from code')) # hatch patterns : ('-', '+', 'x', '\\', '*', 'o', 'O', '.','/') if utils.getcurrentlocale() == 'sv_SE': #swedish forms are loaded only if locale settings indicate sweden Dict = {"Okänt" : "", "Berg" : "x", "Grovgrus" : "O", "Grus" : "O", "Mellangrus" : "o", "Fingrus" : "o", "Grovsand" : "*", "Sand" : "*", "Mellansand" : ".", "Finsand" : ".", "Silt" : "\\", "Lera" : "-", "Morän" : "/", "Torv" : "+", "Fyll":"+"} else: Dict = {"Unknown" : "", "Rock" : "x", "Coarse gravel" : "O", "Gravel" : "O", "Medium gravel" : "o", "Fine gravel" : "o", "Coarse sand" : "*", "Sand" : "*", "Medium sand" : ".", "Fine sand" : ".", "Silt" : "\\", "Clay" : "-", "Till" : "/", "Peat" : "+", "Fill":"+"} Dict = {k.lower(): v for k, v in Dict.items()} return Dict
def PlotColorDict(): """ This dictionary is used by sectionplot (matplotlib) for relating the geoshort names with color codes The user may update these fields in the zz_strat table to use other colors Fallback method use dictionary defined in the code below """ success, Dict = utils.create_dict_from_db_2_cols(('strata','color_mplot','zz_stratigraphy_plots')) if not success: utils.MessagebarAndLog.info(log_msg=QCoreApplication.translate('PlotColorDict', 'Getting strata and color_mplot form zz_stratigraphy_plots failed, fallback method with PlotColorDict from code')) if utils.getcurrentlocale() == 'sv_SE': #swedish forms are loaded only if locale settings indicate sweden Dict = {"Okänt" : "white", "Berg" : "red", "Grovgrus" : "DarkGreen", "Grus" : "DarkGreen", "Mellangrus" : "DarkGreen", "Fingrus" : "DarkGreen", "Grovsand" : "green", "Sand" : "green", "Mellansand" : "green", "Finsand" : "DarkOrange", "Silt" : "yellow", "Lera" : "yellow", "Morän" : "cyan", "Torv" : "DarkGray", "Fyll":"white"} else: Dict = {"Unknown" : "white", "Rock" : "red", "Coarse gravel" : "DarkGreen", "Gravel" : "DarkGreen", "Medium gravel" : "DarkGreen", "Fine gravel" : "DarkGreen", "Coarse sand" : "green", "Sand" : "green", "Medium sand" : "green", "Fine sand" : "DarkOrange", "Silt" : "yellow", "Clay" : "yellow", "Till" : "cyan", "Peat" : "DarkGray", "Fill":"white"} #print Dict#debug! Dict = {k.lower(): v for k, v in Dict.items()} return Dict
def __init__(self, obsid='', settingsdict = {}): #open connection to report file reportfolder = os.path.join(QDir.tempPath(), 'midvatten_reports') if not os.path.exists(reportfolder): os.makedirs(reportfolder) reportpath = os.path.join(reportfolder, "drill_report.html") logopath = os.path.join(os.sep,os.path.dirname(__file__),"..","about","midvatten_logga.png") imgpath = os.path.join(os.sep,os.path.dirname(__file__),"..","reports") f = codecs.open(reportpath, "wb", "utf-8") #write some initiating html, header and also rpt = r"""<meta http-equiv="content-type" content="text/html; charset=utf-8" />""" rpt += r"""<head><title>%s General report from Midvatten plugin for QGIS</title></head>"""%obsid rpt += r"""<html><TABLE WIDTH=100% BORDER=0 CELLPADDING=1 CELLSPACING=1><TR VALIGN=TOP><TD WIDTH=15%><h3 style="font-family:'arial';font-size:18pt; font-weight:600">""" rpt += obsid if utils.getcurrentlocale() == 'sv_SE': rpt += ''.join([r'''</h3><img src="''', os.path.join(imgpath, 'for_general_report_sv.png'), r'''" /><br><img src=''', r"""'"""]) #rpt += r"""</h3><img src="for_general_report_sv.png" /><br><img src='""" else: rpt += ''.join([r'''</h3><img src="''', os.path.join(imgpath, 'for_general_report.png'), r'''" /><br><img src=''', r"""'"""]) #rpt += r"""</h3><img src="for_general_report.png" /><br><img src='""" rpt += logopath rpt +="""' /></TD><TD WIDTH=85%><TABLE WIDTH=100% BORDER=1 CELLPADDING=4 CELLSPACING=3><TR VALIGN=TOP><TD WIDTH=50%><P><U><B>""" if utils.getcurrentlocale() == 'sv_SE': rpt += u'Allmän information' else: rpt += u'General information' rpt += r"""</B></U></P><TABLE style="font-family:'arial'; font-size:10pt; font-weight:400; font-style:normal;" WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=1><COL WIDTH=43*><COL WIDTH=43*>""" f.write(rpt) # GENERAL DATA UPPER LEFT QUADRANT ConnectionOK, GeneralData = self.GetData(obsid, 'obs_points', 'n')#MacOSX fix1 #utils.pop_up_info(str(ConnectionOK))#debug if ConnectionOK==True: result2 = (utils.sql_load_fr_db(r"""SELECT srid FROM geometry_columns where f_table_name = 'obs_points'""")[1])[0][0] CRS = utils.returnunicode(result2) #1st we need crs result3 = (utils.sql_load_fr_db(r"""SELECT ref_sys_name FROM spatial_ref_sys where srid =""" + CRS)[1])[0][0] CRSname = utils.returnunicode(result3) # and crs name if utils.getcurrentlocale() == 'sv_SE': reportdata_1 = self.rpt_upper_left_sv(GeneralData, CRS, CRSname) else: reportdata_1 = self.rpt_upper_left(GeneralData, CRS, CRSname) f.write(reportdata_1) rpt = r"""</TABLE></TD><TD WIDTH=50%><P><U><B>""" if utils.getcurrentlocale() == 'sv_SE': rpt += u'Lagerföljd' else: rpt += u'Stratigraphy' rpt += r"""</B></U></P><TABLE style="font-family:'arial'; font-size:10pt; font-weight:400; font-style:normal;" WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=1><COL WIDTH=43*><COL WIDTH=43*><COL WIDTH=43*><COL WIDTH=43*><COL WIDTH=43*><COL WIDTH=43*>""" f.write(rpt) # STRATIGRAPHY DATA UPPER RIGHT QUADRANT StratData = self.GetData(obsid, 'stratigraphy', 'n')[1] #MacOSX fix1 if utils.getcurrentlocale() == 'sv_SE': reportdata_2 = self.rpt_upper_right_sv(StratData) else: reportdata_2 = self.rpt_upper_right(StratData) f.write(reportdata_2) rpt = r"""</TABLE></TD></TR><TR VALIGN=TOP><TD WIDTH=50%><P><U><B>""" if utils.getcurrentlocale() == 'sv_SE': rpt += u'Kommentarer' else: rpt += u'Comments' rpt += r"""</B></U></P>""" f.write(rpt) # COMMENTS LOWER LEFT QUADRANT reportdata_3 = self.rpt_lower_left(GeneralData) f.write(reportdata_3) rpt = r"""</TD><TD WIDTH=50%><P><U><B>""" if utils.getcurrentlocale() == 'sv_SE': rpt += u'Vattennivåer' else: rpt += u'Water levels' rpt += r"""</B></U></P>""" f.write(rpt) # WATER LEVEL STATISTICS LOWER RIGHT QUADRANT meas_or_level_masl, statistics = GetStatistics(obsid)#MacOSX fix1 if utils.getcurrentlocale() == 'sv_SE': reportdata_4 = self.rpt_lower_right_sv(statistics,meas_or_level_masl) else: reportdata_4 = self.rpt_lower_right(statistics,meas_or_level_masl) f.write(reportdata_4) f.write(r"""</TD></TR></TABLE></TD></TR></TABLE>""") f.write("\n</p></body></html>") f.close() #print reportpath#debug QDesktopServices.openUrl(QUrl.fromLocalFile(reportpath))
def export_fieldlogger_defaults(): current_locale = utils.getcurrentlocale( print_error_message_in_bar=False)[0] if current_locale != 'sv_SE': input_field_browser = [[ 0, (("input_field_list", [ "Accvol.m3;numberDecimal|numberSigned; ", "DO.mg/L;numberDecimal|numberSigned; ", "Momflow.l/s;numberDecimal|numberSigned; ", "Momflow.m3/h;numberDecimal|numberSigned; ", "comment;text;Obsid related comment", "cond.µS/cm;numberDecimal|numberSigned; ", "f.comment;text;Measurement related comment", "l.comment;text;Measurement related comment", "meas.m;numberDecimal|numberSigned;depth to water", "pH;numberDecimal|numberSigned; ", "q.comment;text;Measurement related comment", "redox.mV;numberDecimal|numberSigned; ", "s.comment;text;Measurement related comment", "temp.°C;numberDecimal|numberSigned; ", "turb.FNU;numberDecimal|numberSigned; " ]), ) ]] input_fields_groups = [ [ 0, (("input_field_group_list", [ "meas.m;numberDecimal|numberSigned;depth to water", "l.comment;text;Measurement related comment" ]), ("sublocation_suffix", "level")) ], [ 1, (("input_field_group_list", ["comment;text;Obsid related comment"]), ("sublocation_suffix", "comment")) ], [ 2, (("input_field_group_list", [ "cond.µS/cm;numberDecimal|numberSigned; ", "DO.mg/L;numberDecimal|numberSigned; ", "pH;numberDecimal|numberSigned; ", "redox.mV;numberDecimal|numberSigned; ", "temp.°C;numberDecimal|numberSigned; ", "turb.FNU;numberDecimal|numberSigned; ", "q.comment;text;Measurement related comment" ]), ("sublocation_suffix", "quality")) ], [ 3, (("input_field_group_list", [ "temp.°C;numberDecimal|numberSigned; ", "turb.FNU;numberDecimal|numberSigned; ", "s.comment;text;Measurement related comment" ]), ("sublocation_suffix", "sample")) ], [ 4, (("input_field_group_list", [ "Accvol.m3;numberDecimal|numberSigned; ", "Momflow.l/s;numberDecimal|numberSigned; ", "Momflow.m3/h;numberDecimal|numberSigned; ", "f.comment;text;Measurement related comment" ]), ("sublocation_suffix", "flow")) ] ] else: input_field_browser = [[ 0, (( "input_field_list", [ "Accvol.m3;numberDecimal|numberSigned; ", "DO.mg/L;numberDecimal|numberSigned; ", "Momflow.l/s;numberDecimal|numberSigned; ", "Momflow.m3/h;numberDecimal|numberSigned; ", "f.kommentar;text;mätrelaterad kommentar", "k.kommentar;text;mätrelaterad kommentar", "kommentar;text;obsidrelaterad kommentar", "kond.µS/cm;numberDecimal|numberSigned; ", "meas.m;numberDecimal|numberSigned;djup till vatten", "n.kommentar;text;mätrelaterad kommentar", "nedmätning.m;numberDecimal|numberSigned;djup till vatten", "p.kommentar;text;mätrelaterad kommentar", "pH;numberDecimal|numberSigned; ", "redox.mV;numberDecimal|numberSigned; ", "temp.°C;numberDecimal|numberSigned; ", "turb.FNU;numberDecimal|numberSigned; " ], ), ) ]] input_fields_groups = [ [ 0, (("input_field_group_list", [ "nedmätning.m;numberDecimal|numberSigned;djup till vatten", "n.kommentar;text;mätrelaterad kommentar" ]), ("sublocation_suffix", "nivå")) ], [ 1, (("input_field_group_list", ["kommentar;text;obsidrelaterad kommentar"]), ("sublocation_suffix", "kommentar")) ], [ 2, (("input_field_group_list", [ "kond.µS/cm;numberDecimal|numberSigned; ", "DO.mg/L;numberDecimal|numberSigned; ", "pH;numberDecimal|numberSigned; ", "redox.mV;numberDecimal|numberSigned; ", "temp.°C;numberDecimal|numberSigned; ", "turb.FNU;numberDecimal|numberSigned; ", "k.kommentar;text;mätrelaterad kommentar" ]), ("sublocation_suffix", "kvalitet")) ], [ 3, (("input_field_group_list", [ "temp.°C;numberDecimal|numberSigned; ", "turb.FNU;numberDecimal|numberSigned; ", "p.kommentar;text;mätrelaterad kommentar" ]), ("sublocation_suffix", "prov")) ], [ 4, (( "input_field_group_list", [ "Accvol.m3;numberDecimal|numberSigned; ", "Momflow.l/s;numberDecimal|numberSigned; ", "Momflow.m3/h;numberDecimal|numberSigned; ", "f.kommentar;text;mätrelaterad kommentar" ], ), ("sublocation_suffix", "flöde")) ] ] input_field_browser = utils.anything_to_string_representation( input_field_browser) input_fields_groups = utils.anything_to_string_representation( input_fields_groups) return input_field_browser, input_fields_groups
def PlotTypesDict(international='no'): """ This dictionary is used by sectionplot (matplotlib) to compare with all possible geoshorts in stratigraphy table (Also used to generate dictionaries for stratigraphy plot (Qt)) Default method is to read the database table zz_strat and generate the dictionary from columns 'strat' and 'geoshorts' The user may update these fields in the zz_strat table to use other stratigraphy units and other abbreviations (in geoshorts) Fallback method use dictionary defined in the code below """ #success, Dict = utils.create_dict_from_db_2_cols(('strata','geoshort','zz_strat')) success, Dict = db_utils.get_sql_result_as_dict( 'select strata, geoshort from zz_strat') succss_strata, strata_order = db_utils.sql_load_fr_db( 'select strata from zz_stratigraphy_plots order by %s' % db_utils.rowid_string()) if not success: utils.MessagebarAndLog.info(log_msg=QCoreApplication.translate( 'PlotTypesDict', 'Getting strata and geoshort from zz_strat failed, fallback method using PlotTypesDict from code' )) if international == 'no' and utils.getcurrentlocale() == 'sv_SE': """ Dict = {"Okänt" : "not in ('berg','b','rock','ro','grovgrus','grg','coarse gravel','cgr','grus','gr','gravel','mellangrus','grm','medium gravel','mgr','fingrus','grf','fine gravel','fgr','grovsand','sag','coarse sand','csa','sand','sa','mellansand','sam','medium sand','msa','finsand','saf','fine sand','fsa','silt','si','lera','ler','le','clay','cl','morän','moran','mn','till','ti','torv','t','peat','pt','fyll','fyllning','f','made ground','mg','land fill')", "Berg" : "in ('berg','b','rock','ro')", "Grovgrus" : "in ('grovgrus','grg','coarse gravel','cgr')", "Grus" : "in ('grus','gr','gravel')", "Mellangrus" : "in ('mellangrus','grm','medium gravel','mgr')", "Fingrus" : "in ('fingrus','grf','fine gravel','fgr')", "Grovsand" : "in ('grovsand','sag','coarse sand','csa')", "Sand" : "in ('sand','sa')", "Mellansand" : "in ('mellansand','sam','medium sand','msa')", "Finsand" : "in ('finsand','saf','fine sand','fsa')", "Silt" : "in ('silt','si')", "Lera" : "in ('lera','ler','le','clay','cl')", "Morän" : "in ('morän','moran','mn','till','ti')", "Torv" : "in ('torv','t','peat','pt')", "Fyll":"in ('fyll','fyllning','f','made ground','mg','land fill')"} """ dictionary = OrderedDict([ ("Okänt", "not in ('berg','b','rock','ro','grovgrus','grg','coarse gravel','cgr','grus','gr','gravel','mellangrus','grm','medium gravel','mgr','fingrus','grf','fine gravel','fgr','grovsand','sag','coarse sand','csa','sand','sa','mellansand','sam','medium sand','msa','finsand','saf','fine sand','fsa','silt','si','lera','ler','le','clay','cl','morän','moran','mn','till','ti','torv','t','peat','pt','fyll','fyllning','f','made ground','mg','land fill')" ), ("Berg", "in ('berg','b','rock','ro')"), ("Grovgrus", "in ('grovgrus','grg','coarse gravel','cgr')"), ("Grus", "in ('grus','gr','gravel')"), ("Mellangrus", "in ('mellangrus','grm','medium gravel','mgr')"), ("Fingrus", "in ('fingrus','grf','fine gravel','fgr')"), ("Grovsand", "in ('grovsand','sag','coarse sand','csa')"), ("Sand", "in ('sand','sa')"), ("Mellansand", "in ('mellansand','sam','medium sand','msa')"), ("Finsand", "in ('finsand','saf','fine sand','fsa')"), ("Silt", "in ('silt','si')"), ("Lera", "in ('lera','ler','le','clay','cl')"), ("Morän", "in ('morän','moran','mn','till','ti')"), ("Torv", "in ('torv','t','peat','pt')"), ("Fyll", "in ('fyll','fyllning','f','made ground','mg','land fill')") ]) else: """ Dict = {"Unknown" : "not in ('berg','b','rock','ro','grovgrus','grg','coarse gravel','cgr','grus','gr','gravel','mellangrus','grm','medium gravel','mgr','fingrus','grf','fine gravel','fgr','grovsand','sag','coarse sand','csa','sand','sa','mellansand','sam','medium sand','msa','finsand','saf','fine sand','fsa','silt','si','lera','ler','le','clay','cl','morän','moran','mn','till','ti','torv','t','peat','pt','fyll','fyllning','f','made ground','mg','land fill')", "Rock" : "in ('berg','b','rock','ro')", "Coarse gravel" : "in ('grovgrus','grg','coarse gravel','cgr')", "Gravel" : "in ('grus','gr','gravel')", "Medium gravel" : "in ('mellangrus','grm','medium gravel','mgr')", "Fine gravel" : "in ('fingrus','grf','fine gravel','fgr')", "Coarse sand" : "in ('grovsand','sag','coarse sand','csa')", "Sand" : "in ('sand','sa')", "Medium sand" : "in ('mellansand','sam','medium sand','msa')", "Fine sand" : "in ('finsand','saf','fine sand','fsa')", "Silt" : "in ('silt','si')", "Clay" : "in ('lera','ler','le','clay','cl')", "Till" : "in ('morän','moran','mn','till','ti')", "Peat" : "in ('torv','t','peat','pt')", "Fill":"in ('fyll','fyllning','f','made ground','mg','land fill')"} """ dictionary = OrderedDict([ ("Unknown", "not in ('berg','b','rock','ro','grovgrus','grg','coarse gravel','cgr','grus','gr','gravel','mellangrus','grm','medium gravel','mgr','fingrus','grf','fine gravel','fgr','grovsand','sag','coarse sand','csa','sand','sa','mellansand','sam','medium sand','msa','finsand','saf','fine sand','fsa','silt','si','lera','ler','le','clay','cl','morän','moran','mn','till','ti','torv','t','peat','pt','fyll','fyllning','f','made ground','mg','land fill')" ), ("Rock", "in ('berg','b','rock','ro')"), ("Coarse gravel", "in ('grovgrus','grg','coarse gravel','cgr')"), ("Gravel", "in ('grus','gr','gravel')"), ("Medium gravel", "in ('mellangrus','grm','medium gravel','mgr')"), ("Fine gravel", "in ('fingrus','grf','fine gravel','fgr')"), ("Coarse sand", "in ('grovsand','sag','coarse sand','csa')"), ("Sand", "in ('sand','sa')"), ("Medium sand", "in ('mellansand','sam','medium sand','msa')"), ("Fine sand", "in ('finsand','saf','fine sand','fsa')"), ("Silt", "in ('silt','si')"), ("Clay", "in ('lera','ler','le','clay','cl')"), ("Till", "in ('morän','moran','mn','till','ti')"), ("Peat", "in ('torv','t','peat','pt')"), ("Fill", "in ('fyll','fyllning','f','made ground','mg','land fill')") ]) else: """manually create dictionary to reuse old code""" dictionary = OrderedDict({}) #all_geoshorts = r"""not in ('""" #for key, value in sorted(Dict.iteritems()): for strata in strata_order: tl = r"""in ('""" if strata[0] in Dict: for geoshort in Dict[strata[0]]: tl += geoshort[0] + r"""', '""" #all_geoshorts+=geoshort[0] + r"""', '""" tl = utils.rstrip(r""", '""", tl) + r""")""" #all_geoshorts = utils.rstrip(r""", '""",all_geoshorts) + r""")""" dictionary[strata[0]] = tl #all_geoshorts+=r"""')""" return dictionary
def bedrock_geoshort(): return 'berg' if utils.getcurrentlocale()[0] == 'sv_SE' else 'rock'
def write_obsid(self, obsid, rpt, imgpath, logopath, f): rpt += r"""<html><TABLE WIDTH=100% BORDER=0 CELLPADDING=1 CELLSPACING=1><TR VALIGN=TOP><TD WIDTH=15%><h3 style="font-family:'arial';font-size:18pt; font-weight:600">""" rpt += obsid if utils.getcurrentlocale()[0] == 'sv_SE': rpt += ''.join([ r'''</h3><img src="''', os.path.join(imgpath, 'for_general_report_sv.png'), r'''" /><br><img src=''', r"""'""" ]) #rpt += r"""</h3><img src="for_general_report_sv.png" /><br><img src='""" else: rpt += ''.join([ r'''</h3><img src="''', os.path.join(imgpath, 'for_general_report.png'), r'''" /><br><img src=''', r"""'""" ]) #rpt += r"""</h3><img src="for_general_report.png" /><br><img src='""" rpt += logopath rpt += """' /></TD><TD WIDTH=85%><TABLE WIDTH=100% BORDER=1 CELLPADDING=4 CELLSPACING=3><TR VALIGN=TOP><TD WIDTH=50%><P><U><B>""" if utils.getcurrentlocale()[0] == 'sv_SE': rpt += u'Allmän information' else: rpt += ru( QCoreApplication.translate(u'Drillreport', u'General information')) rpt += r"""</B></U></P><TABLE style="font-family:'arial'; font-size:10pt; font-weight:400; font-style:normal;" WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=1><COL WIDTH=43*><COL WIDTH=43*>""" f.write(rpt) # GENERAL DATA UPPER LEFT QUADRANT ConnectionOK, GeneralData = self.GetData(obsid, 'obs_points', 'n') #MacOSX fix1 #utils.pop_up_info(str(ConnectionOK))#debug if ConnectionOK == True: result2 = db_utils.sql_load_fr_db( r"""SELECT srid FROM geometry_columns where f_table_name = 'obs_points'""" )[1][0][0] CRS = ru(result2) #1st we need crs result3 = db_utils.get_srid_name(result2) CRSname = ru(result3) # and crs name if utils.getcurrentlocale()[0] == 'sv_SE': reportdata_1 = self.rpt_upper_left_sv(GeneralData, CRS, CRSname) else: reportdata_1 = self.rpt_upper_left(GeneralData, CRS, CRSname) f.write(reportdata_1) rpt = r"""</TABLE></TD><TD WIDTH=50%><P><U><B>""" if utils.getcurrentlocale()[0] == 'sv_SE': rpt += u'Lagerföljd' else: rpt += ru( QCoreApplication.translate(u'Drillreport', u'Stratigraphy')) rpt += r"""</B></U></P><TABLE style="font-family:'arial'; font-size:10pt; font-weight:400; font-style:normal;" WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=1><COL WIDTH=43*><COL WIDTH=43*><COL WIDTH=43*><COL WIDTH=43*><COL WIDTH=43*><COL WIDTH=43*>""" f.write(rpt) # STRATIGRAPHY DATA UPPER RIGHT QUADRANT StratData = self.GetData(obsid, 'stratigraphy', 'n')[1] #MacOSX fix1 if utils.getcurrentlocale()[0] == 'sv_SE': reportdata_2 = self.rpt_upper_right_sv(StratData) else: reportdata_2 = self.rpt_upper_right(StratData) f.write(reportdata_2) rpt = r"""</TABLE></TD></TR><TR VALIGN=TOP><TD WIDTH=50%><P><U><B>""" if utils.getcurrentlocale()[0] == 'sv_SE': rpt += u'Kommentarer' else: rpt += ru( QCoreApplication.translate(u'Drillreport', u'Comments')) rpt += r"""</B></U></P>""" f.write(rpt) # COMMENTS LOWER LEFT QUADRANT reportdata_3 = self.rpt_lower_left(GeneralData) f.write(reportdata_3) rpt = r"""</TD><TD WIDTH=50%><P><U><B>""" if utils.getcurrentlocale()[0] == 'sv_SE': rpt += u'Vattennivåer' else: rpt += ru( QCoreApplication.translate(u'Drillreport', u'Water levels')) rpt += r"""</B></U></P>""" f.write(rpt) # WATER LEVEL STATISTICS LOWER RIGHT QUADRANT meas_or_level_masl, statistics = get_statistics_for_single_obsid( obsid) #MacOSX fix1 if utils.getcurrentlocale()[0] == 'sv_SE': reportdata_4 = self.rpt_lower_right_sv(statistics, meas_or_level_masl) else: reportdata_4 = self.rpt_lower_right(statistics, meas_or_level_masl) f.write(reportdata_4) f.write(r"""</TD></TR></TABLE></TD></TR></TABLE>""")
def write_obsid(self, obsid, rpt, imgpath, logopath, f): rpt += r"""<html><TABLE WIDTH=100% BORDER=0 CELLPADDING=1 CELLSPACING=1><TR VALIGN=TOP><TD WIDTH=15%><h3 style="font-family:'arial';font-size:18pt; font-weight:600">""" rpt += obsid if utils.getcurrentlocale()[0] == 'sv_SE': rpt += ''.join([r'''</h3><img src="''', os.path.join(imgpath, 'for_general_report_sv.png'), r'''" /><br><img src=''', r"""'"""]) #rpt += r"""</h3><img src="for_general_report_sv.png" /><br><img src='""" else: rpt += ''.join([r'''</h3><img src="''', os.path.join(imgpath, 'for_general_report.png'), r'''" /><br><img src=''', r"""'"""]) #rpt += r"""</h3><img src="for_general_report.png" /><br><img src='""" rpt += logopath rpt +="""' /></TD><TD WIDTH=85%><TABLE WIDTH=100% BORDER=1 CELLPADDING=4 CELLSPACING=3><TR VALIGN=TOP><TD WIDTH=50%><P><U><B>""" if utils.getcurrentlocale()[0] == 'sv_SE': rpt += 'Allmän information' else: rpt += ru(QCoreApplication.translate('Drillreport', 'General information')) rpt += r"""</B></U></P><TABLE style="font-family:'arial'; font-size:10pt; font-weight:400; font-style:normal;" WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=1><COL WIDTH=43*><COL WIDTH=43*>""" f.write(rpt) # GENERAL DATA UPPER LEFT QUADRANT ConnectionOK, GeneralData = self.GetData(obsid, 'obs_points', 'n')#MacOSX fix1 #utils.pop_up_info(str(ConnectionOK))#debug if ConnectionOK==True: result2 = db_utils.sql_load_fr_db(r"""SELECT srid FROM geometry_columns where f_table_name = 'obs_points'""")[1][0][0] CRS = ru(result2) #1st we need crs result3 = db_utils.get_srid_name(result2) CRSname = ru(result3) # and crs name if utils.getcurrentlocale()[0] == 'sv_SE': reportdata_1 = self.rpt_upper_left_sv(GeneralData, CRS, CRSname) else: reportdata_1 = self.rpt_upper_left(GeneralData, CRS, CRSname) f.write(reportdata_1) rpt = r"""</TABLE></TD><TD WIDTH=50%><P><U><B>""" if utils.getcurrentlocale()[0] == 'sv_SE': rpt += 'Lagerföljd' else: rpt += ru(QCoreApplication.translate('Drillreport', 'Stratigraphy')) rpt += r"""</B></U></P><TABLE style="font-family:'arial'; font-size:10pt; font-weight:400; font-style:normal;" WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=1><COL WIDTH=43*><COL WIDTH=43*><COL WIDTH=43*><COL WIDTH=43*><COL WIDTH=43*><COL WIDTH=43*>""" f.write(rpt) # STRATIGRAPHY DATA UPPER RIGHT QUADRANT StratData = self.GetData(obsid, 'stratigraphy', 'n')[1] #MacOSX fix1 if utils.getcurrentlocale()[0] == 'sv_SE': reportdata_2 = self.rpt_upper_right_sv(StratData) else: reportdata_2 = self.rpt_upper_right(StratData) f.write(reportdata_2) rpt = r"""</TABLE></TD></TR><TR VALIGN=TOP><TD WIDTH=50%><P><U><B>""" if utils.getcurrentlocale()[0] == 'sv_SE': rpt += 'Kommentarer' else: rpt += ru(QCoreApplication.translate('Drillreport', 'Comments')) rpt += r"""</B></U></P>""" f.write(rpt) # COMMENTS LOWER LEFT QUADRANT reportdata_3 = self.rpt_lower_left(GeneralData) f.write(reportdata_3) rpt = r"""</TD><TD WIDTH=50%><P><U><B>""" if utils.getcurrentlocale()[0] == 'sv_SE': rpt += 'Vattennivåer' else: rpt += ru(QCoreApplication.translate('Drillreport', 'Water levels')) rpt += r"""</B></U></P>""" f.write(rpt) # WATER LEVEL STATISTICS LOWER RIGHT QUADRANT meas_or_level_masl, statistics = get_statistics_for_single_obsid(obsid)#MacOSX fix1 if utils.getcurrentlocale()[0] == 'sv_SE': reportdata_4 = self.rpt_lower_right_sv(statistics,meas_or_level_masl) else: reportdata_4 = self.rpt_lower_right(statistics,meas_or_level_masl) f.write(reportdata_4) f.write(r"""</TD></TR></TABLE></TD></TR></TABLE>""")
def parse(self, filenames): """ Reads the interlab :param filenames: :return: A dict like {<lablittera>: {'metadata': {'metadataheader': value, ...}, <par1_name>: {'dataheader': value, ...}}} """ all_lab_results = {} for filename in filenames: file_settings = self.parse_filesettings(filename) file_error, version, encoding, decimalsign, quotechar = file_settings if file_error: utils.pop_up_info( ru( QCoreApplication.translate( 'Interlab4Import', "Warning: The file information %s could not be read. Skipping file" )) % filename) continue with io.open(filename, 'r', encoding=encoding) as f: if quotechar: unicode_reader = csv.reader(f, dialect=csv.excel, quotechar=str(quotechar), delimiter=';') else: unicode_reader = csv.reader(f, dialect=csv.excel, delimiter=';') lab_results = {} file_error = False read_metadata_header = False parse_metadata_values = False read_data_header = False parse_data_values = False metadata_header = None data_header = None for cols in unicode_reader: if not cols: continue if cols[0].lower().startswith('#s**t'): break #cols = ru(cols, keep_containers=True) if cols[0].lower().startswith('#provadm'): parse_data_values = False parse_metadata_values = False read_data_header = False read_metadata_header = True data_header = None metadata_header = None continue if cols[0].lower().startswith('#provdat'): parse_data_values = False parse_metadata_values = False read_metadata_header = False read_data_header = True continue if read_metadata_header: metadata_header = [x.lower() for x in cols] read_metadata_header = False parse_metadata_values = True continue if parse_metadata_values: metadata = dict([(metadata_header[idx], value.lstrip(' ').rstrip(' ')) for idx, value in enumerate(cols) if value.lstrip(' ').rstrip(' ')]) lab_results.setdefault(metadata['lablittera'], {})['metadata'] = metadata continue if read_data_header: data_header = [x.lower() for x in cols] read_data_header = False parse_data_values = True continue if parse_data_values: data = dict([(data_header[idx], value.lstrip(' ').rstrip(' ')) for idx, value in enumerate(cols) if value.lstrip(' ').rstrip(' ')]) if 'mätvärdetal' in data: data['mätvärdetal'] = data['mätvärdetal'].replace( decimalsign, '.') if not 'parameter' in data: utils.pop_up_info( ru( QCoreApplication.translate( 'Interlab4Import', "WARNING: Parsing error. The parameter is missing on row %s" )) % str(cols)) continue if data['lablittera'] not in lab_results: utils.pop_up_info( ru( QCoreApplication.translate( 'Interlab4Import', "WARNING: Parsing error. Data for %s read before it's metadata." )) % data['lablittera']) file_error = True break # If two parameter with the same name exists in the report, use the highest resolution one, that is, the one with the lowest value. existing_data = lab_results[data['lablittera']].get( data['parameter'], None) if existing_data is not None: primary_data, _duplicate_data = self.compare_duplicate_parameters( data, existing_data) lab_results[data['lablittera']][ data['parameter']] = primary_data dupl_index = 1 duplicate_parname = _duplicate_data['parameter'] while duplicate_parname in lab_results[ data['lablittera']]: duplicate_translation = 'dubblett' if utils.getcurrentlocale( )[0] == 'sv_SE' else 'duplicate' duplicate_parname = '%s (%s %s)' % ( _duplicate_data['parameter'], duplicate_translation, str(dupl_index)) dupl_index += 1 else: _duplicate_data[ 'parameter'] = duplicate_parname lab_results[data['lablittera']][ _duplicate_data[ 'parameter']] = _duplicate_data continue lab_results[data['lablittera']][ data['parameter']] = data if not file_error: all_lab_results.update(lab_results) return all_lab_results
def export_fieldlogger_defaults(): current_locale = utils.getcurrentlocale()[0] if current_locale != 'sv_SE': input_field_browser = [ [0, (("input_field_list",[ "Accvol.m3;numberDecimal|numberSigned; ", "DO.mg/L;numberDecimal|numberSigned; ", "Momflow.l/s;numberDecimal|numberSigned; ", "Momflow.m3/h;numberDecimal|numberSigned; ", "comment;text;Obsid related comment", "cond.µS/cm;numberDecimal|numberSigned; ", "f.comment;text;Measurement related comment", "l.comment;text;Measurement related comment", "meas.m;numberDecimal|numberSigned;depth to water", "pH;numberDecimal|numberSigned; ", "q.comment;text;Measurement related comment", "redox.mV;numberDecimal|numberSigned; ", "s.comment;text;Measurement related comment", "temp.°C;numberDecimal|numberSigned; ", "turb.FNU;numberDecimal|numberSigned; " ]),)]] input_fields_groups = [ [0, (("input_field_group_list", ["meas.m;numberDecimal|numberSigned;depth to water", "l.comment;text;Measurement related comment"]), ("sublocation_suffix", "level"))], [1, (("input_field_group_list", ["comment;text;Obsid related comment"]), ("sublocation_suffix", "comment"))], [2, (("input_field_group_list", ["cond.µS/cm;numberDecimal|numberSigned; ", "DO.mg/L;numberDecimal|numberSigned; ", "pH;numberDecimal|numberSigned; ", "redox.mV;numberDecimal|numberSigned; ", "temp.°C;numberDecimal|numberSigned; ", "turb.FNU;numberDecimal|numberSigned; ", "q.comment;text;Measurement related comment"]), ("sublocation_suffix", "quality"))], [3, (("input_field_group_list", ["temp.°C;numberDecimal|numberSigned; ", "turb.FNU;numberDecimal|numberSigned; ", "s.comment;text;Measurement related comment"]), ("sublocation_suffix", "sample"))], [4, (("input_field_group_list", ["Accvol.m3;numberDecimal|numberSigned; ", "Momflow.l/s;numberDecimal|numberSigned; ", "Momflow.m3/h;numberDecimal|numberSigned; ", "f.comment;text;Measurement related comment"]), ("sublocation_suffix", "flow"))]] else: input_field_browser = [[0, (("input_field_list", [ "Accvol.m3;numberDecimal|numberSigned; ", "DO.mg/L;numberDecimal|numberSigned; ", "Momflow.l/s;numberDecimal|numberSigned; ", "Momflow.m3/h;numberDecimal|numberSigned; ", "f.kommentar;text;mätrelaterad kommentar", "k.kommentar;text;mätrelaterad kommentar", "kommentar;text;obsidrelaterad kommentar", "kond.µS/cm;numberDecimal|numberSigned; ", "meas.m;numberDecimal|numberSigned;djup till vatten", "n.kommentar;text;mätrelaterad kommentar", "nedmätning.m;numberDecimal|numberSigned;djup till vatten", "p.kommentar;text;mätrelaterad kommentar", "pH;numberDecimal|numberSigned; ", "redox.mV;numberDecimal|numberSigned; ", "temp.°C;numberDecimal|numberSigned; ", "turb.FNU;numberDecimal|numberSigned; " ], ), )]] input_fields_groups = [ [0, (("input_field_group_list", ["nedmätning.m;numberDecimal|numberSigned;djup till vatten", "n.kommentar;text;mätrelaterad kommentar"]), ("sublocation_suffix", "nivå"))], [1, (("input_field_group_list", ["kommentar;text;obsidrelaterad kommentar"]), ("sublocation_suffix", "kommentar"))], [2, (("input_field_group_list", ["kond.µS/cm;numberDecimal|numberSigned; ", "DO.mg/L;numberDecimal|numberSigned; ", "pH;numberDecimal|numberSigned; ", "redox.mV;numberDecimal|numberSigned; ", "temp.°C;numberDecimal|numberSigned; ", "turb.FNU;numberDecimal|numberSigned; ", "k.kommentar;text;mätrelaterad kommentar"]), ("sublocation_suffix", "kvalitet"))], [3, (("input_field_group_list", ["temp.°C;numberDecimal|numberSigned; ", "turb.FNU;numberDecimal|numberSigned; ", "p.kommentar;text;mätrelaterad kommentar"]), ("sublocation_suffix", "prov"))], [4, (("input_field_group_list", ["Accvol.m3;numberDecimal|numberSigned; ", "Momflow.l/s;numberDecimal|numberSigned; ", "Momflow.m3/h;numberDecimal|numberSigned; ", "f.kommentar;text;mätrelaterad kommentar"],), ("sublocation_suffix", "flöde"))]] input_field_browser = utils.anything_to_string_representation(input_field_browser) input_fields_groups = utils.anything_to_string_representation(input_fields_groups) return input_field_browser, input_fields_groups
def PlotTypesDict(international='no'): """ This dictionary is used by sectionplot (matplotlib) to compare with all possible geoshorts in stratigraphy table (Also used to generate dictionaries for stratigraphy plot (Qt)) Default method is to read the database table zz_strat and generate the dictionary from columns 'strat' and 'geoshorts' The user may update these fields in the zz_strat table to use other stratigraphy units and other abbreviations (in geoshorts) Fallback method use dictionary defined in the code below """ #success, Dict = utils.create_dict_from_db_2_cols(('strata','geoshort','zz_strat')) success, Dict = db_utils.get_sql_result_as_dict('select strata, geoshort from zz_strat') succss_strata, strata_order = db_utils.sql_load_fr_db('select strata from zz_stratigraphy_plots order by %s'%db_utils.rowid_string()) if not success: utils.MessagebarAndLog.info(log_msg=QCoreApplication.translate('PlotTypesDict', 'Getting strata and geoshort from zz_strat failed, fallback method using PlotTypesDict from code')) if international=='no' and utils.getcurrentlocale() == 'sv_SE': """ Dict = {"Okänt" : "not in ('berg','b','rock','ro','grovgrus','grg','coarse gravel','cgr','grus','gr','gravel','mellangrus','grm','medium gravel','mgr','fingrus','grf','fine gravel','fgr','grovsand','sag','coarse sand','csa','sand','sa','mellansand','sam','medium sand','msa','finsand','saf','fine sand','fsa','silt','si','lera','ler','le','clay','cl','morän','moran','mn','till','ti','torv','t','peat','pt','fyll','fyllning','f','made ground','mg','land fill')", "Berg" : "in ('berg','b','rock','ro')", "Grovgrus" : "in ('grovgrus','grg','coarse gravel','cgr')", "Grus" : "in ('grus','gr','gravel')", "Mellangrus" : "in ('mellangrus','grm','medium gravel','mgr')", "Fingrus" : "in ('fingrus','grf','fine gravel','fgr')", "Grovsand" : "in ('grovsand','sag','coarse sand','csa')", "Sand" : "in ('sand','sa')", "Mellansand" : "in ('mellansand','sam','medium sand','msa')", "Finsand" : "in ('finsand','saf','fine sand','fsa')", "Silt" : "in ('silt','si')", "Lera" : "in ('lera','ler','le','clay','cl')", "Morän" : "in ('morän','moran','mn','till','ti')", "Torv" : "in ('torv','t','peat','pt')", "Fyll":"in ('fyll','fyllning','f','made ground','mg','land fill')"} """ dictionary = OrderedDict([("Okänt" , "not in ('berg','b','rock','ro','grovgrus','grg','coarse gravel','cgr','grus','gr','gravel','mellangrus','grm','medium gravel','mgr','fingrus','grf','fine gravel','fgr','grovsand','sag','coarse sand','csa','sand','sa','mellansand','sam','medium sand','msa','finsand','saf','fine sand','fsa','silt','si','lera','ler','le','clay','cl','morän','moran','mn','till','ti','torv','t','peat','pt','fyll','fyllning','f','made ground','mg','land fill')"), ("Berg" , "in ('berg','b','rock','ro')"), ("Grovgrus" , "in ('grovgrus','grg','coarse gravel','cgr')"), ("Grus" , "in ('grus','gr','gravel')"), ("Mellangrus" , "in ('mellangrus','grm','medium gravel','mgr')"), ("Fingrus" , "in ('fingrus','grf','fine gravel','fgr')"), ("Grovsand" , "in ('grovsand','sag','coarse sand','csa')"), ("Sand" , "in ('sand','sa')"), ("Mellansand" , "in ('mellansand','sam','medium sand','msa')"), ("Finsand" , "in ('finsand','saf','fine sand','fsa')"), ("Silt" , "in ('silt','si')"), ("Lera" , "in ('lera','ler','le','clay','cl')"), ("Morän" , "in ('morän','moran','mn','till','ti')"), ("Torv" , "in ('torv','t','peat','pt')"), ("Fyll","in ('fyll','fyllning','f','made ground','mg','land fill')")]) else: """ Dict = {"Unknown" : "not in ('berg','b','rock','ro','grovgrus','grg','coarse gravel','cgr','grus','gr','gravel','mellangrus','grm','medium gravel','mgr','fingrus','grf','fine gravel','fgr','grovsand','sag','coarse sand','csa','sand','sa','mellansand','sam','medium sand','msa','finsand','saf','fine sand','fsa','silt','si','lera','ler','le','clay','cl','morän','moran','mn','till','ti','torv','t','peat','pt','fyll','fyllning','f','made ground','mg','land fill')", "Rock" : "in ('berg','b','rock','ro')", "Coarse gravel" : "in ('grovgrus','grg','coarse gravel','cgr')", "Gravel" : "in ('grus','gr','gravel')", "Medium gravel" : "in ('mellangrus','grm','medium gravel','mgr')", "Fine gravel" : "in ('fingrus','grf','fine gravel','fgr')", "Coarse sand" : "in ('grovsand','sag','coarse sand','csa')", "Sand" : "in ('sand','sa')", "Medium sand" : "in ('mellansand','sam','medium sand','msa')", "Fine sand" : "in ('finsand','saf','fine sand','fsa')", "Silt" : "in ('silt','si')", "Clay" : "in ('lera','ler','le','clay','cl')", "Till" : "in ('morän','moran','mn','till','ti')", "Peat" : "in ('torv','t','peat','pt')", "Fill":"in ('fyll','fyllning','f','made ground','mg','land fill')"} """ dictionary = OrderedDict([("Unknown" , "not in ('berg','b','rock','ro','grovgrus','grg','coarse gravel','cgr','grus','gr','gravel','mellangrus','grm','medium gravel','mgr','fingrus','grf','fine gravel','fgr','grovsand','sag','coarse sand','csa','sand','sa','mellansand','sam','medium sand','msa','finsand','saf','fine sand','fsa','silt','si','lera','ler','le','clay','cl','morän','moran','mn','till','ti','torv','t','peat','pt','fyll','fyllning','f','made ground','mg','land fill')"), ("Rock" , "in ('berg','b','rock','ro')"), ("Coarse gravel" , "in ('grovgrus','grg','coarse gravel','cgr')"), ("Gravel" , "in ('grus','gr','gravel')"), ("Medium gravel" , "in ('mellangrus','grm','medium gravel','mgr')"), ("Fine gravel" , "in ('fingrus','grf','fine gravel','fgr')"), ("Coarse sand" , "in ('grovsand','sag','coarse sand','csa')"), ("Sand" , "in ('sand','sa')"), ("Medium sand" , "in ('mellansand','sam','medium sand','msa')"), ("Fine sand" , "in ('finsand','saf','fine sand','fsa')"), ("Silt" , "in ('silt','si')"), ("Clay" , "in ('lera','ler','le','clay','cl')"), ("Till" , "in ('morän','moran','mn','till','ti')"), ("Peat" , "in ('torv','t','peat','pt')"), ("Fill","in ('fyll','fyllning','f','made ground','mg','land fill')")]) else: """manually create dictionary to reuse old code""" dictionary = OrderedDict({}) #all_geoshorts = r"""not in ('""" #for key, value in sorted(Dict.iteritems()): for strata in strata_order: tl = r"""in ('""" if strata[0] in Dict: for geoshort in Dict[strata[0]]: tl+=geoshort[0] + r"""', '""" #all_geoshorts+=geoshort[0] + r"""', '""" tl = utils.rstrip(r""", '""",tl) + r""")""" #all_geoshorts = utils.rstrip(r""", '""",all_geoshorts) + r""")""" dictionary[strata[0]]=tl #all_geoshorts+=r"""')""" return dictionary