コード例 #1
0
    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
コード例 #2
0
    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
コード例 #3
0
 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'
コード例 #4
0
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
コード例 #5
0
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
コード例 #6
0
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
コード例 #7
0
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
コード例 #8
0
    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))
コード例 #9
0
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
コード例 #10
0
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
コード例 #11
0
def bedrock_geoshort():
    return 'berg' if utils.getcurrentlocale()[0] == 'sv_SE' else 'rock'
コード例 #12
0
    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>""")
コード例 #13
0
    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>""")
コード例 #14
0
    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
コード例 #15
0
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
コード例 #16
0
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