Modules


In [55]:
import pandas as pd
import numpy as np
import unidecode
from difflib import SequenceMatcher
import salem
import matplotlib.pyplot as plt 
import re
import os
import shapely.geometry as shpg
import shapely.ops
import collections
from shapely.geometry import Point, shape
import fiona
import pyproj
import datetime as dt
% matplotlib inline

In [73]:
os.getcwd()


Out[73]:
'C:\\Users\\jlandman\\Documents\\github\\glaciers-cci5\\glaciers_cci5'

File paths


In [93]:
f_path = 'C:\\Users\\jlandman\\Desktop\\database_Fischer_et_al._2015_The_Cryosphere.txt'                 # Fischer database with swiss coordinates 
fll_path = 'C:\\Users\\jlandman\\Desktop\\SGI2010wgs84_shapefiles\\parameters_SGI2010.csv'               # Fischer database with lat/lon
a_path = 'C:\\Users\\jlandman\\Desktop\\DOI-WGMS-FoG-2015-11\\WGMS-FoG-2015-11-A-GENERAL-INFORMATION.csv'# FoG: A GENERAL
b_path = 'C:\\Users\\jlandman\\Desktop\\DOI-WGMS-FoG-2015-11\\WGMS-FoG-2015-11-B-STATE.csv'              # FoG: B STATE
d_path = 'C:\\Users\\jlandman\\Desktop\\DOI-WGMS-FoG-2015-11\\WGMS-FoG-2015-11-D-CHANGE.csv'             # FoG: D CHANGE
gl_path = 'C:\\Users\\jlandman\\Desktop\\glims_db_20160429\\glims_polygons_swiss_alps.txt'               # GLIMS DBF file
# OLD ONE (NOT ACCURATE ENOUGH!!!!)
#ch_adm_path = "C:\\Users\\jlandman\\Desktop\\CHE_adm_shp\\CHE_adm1.shp"                                  # Swiss Kanton borders
ch_adm_path = "C:\\Users\\jlandman\\Desktop\\swissBOUNDARIES3D\\BOUNDARIES_2016\\DATEN\\swissBOUNDARIES3D\\SHAPEFILE_LV03_LN02\\swissBOUNDARIES3D_1_3_TLM_KANTONSGEBIET.shp"
# Swiss Kanton borders
rgi_CE = 'C:\\Users\\jlandman\\Desktop\\rgi50\\11_rgi50_CentralEurope\\11_rgi50_CentralEurope.shp'       # RGI 5.0 Central Europe

Read files


In [57]:
pdf = pd.read_csv(f_path, sep = '\t', encoding='iso-8859-1')
pdfll = pd.read_csv(fll_path, sep= ';', encoding='iso-8859-1')  #, usecols=[2,3,6,14,15]
pda = pd.read_csv(a_path, encoding='iso-8859-1')
pdb = pd.read_csv(b_path, encoding='iso-8859-1')
pdd = pd.read_csv(d_path, encoding='iso-8859-1')
glims = pd.read_csv(gl_path, encoding='iso-8859-1')

Dictionary of Kanton Names


In [58]:
kanton_dict = {
    'Zürich':'ZH',
    'Bern':'BE',
    'Luzern':'LU',
    'Uri':'UR',
    'Schwyz':'SZ',
    'Obwalden':'OW',
    'Nidwalden':'NW',
    'Glarus':'GL',
    'Zug':'ZG',
    'Fribourg':'FR',
    'Solothurn':'SO',
    'Basel-Stadt':'BS',
    'Basel-Landschaft':'BL',
    'Schaffhausen':'SH',
    'Appenzell Ausserrhoden':'AR',
    'Appenzell Innerrhoden':'AI',
    'St. Gallen':'SG',
    'Graubünden':'GR',
    'Aargau':'AG',
    'Thurgau':'TG',
    'Ticino':'TI',
    'Vaud':'VD',
    'Valais':'VS',
    'Neuchâtel':'NE',
    'Genève':'GE',
    'Jura':'JU'
}

Preselect FoG IDs in Switzerland


In [59]:
pda = pda[pda.POLITICAL_UNIT == 'CH']
pdb = pdb[pdb.WGMS_ID.isin(pda.WGMS_ID.values)]
pdd = pdd[pdd.WGMS_ID.isin(pdd.WGMS_ID.values)]

Haversine function


In [60]:
def haversine(lon1, lat1, lon2, lat2):
    """
    Calculate the great circle distance between one point 
    on the earth and an array of points (specified in decimal degrees)
    """
    
    # convert decimal degrees to radians 
    lon1, lat1, lon2, lat2 = map(np.radians, [lon1, lat1, lon2, lat2])

    # haversine formula 
    dlon = lon2 - lon1
    dlat = lat2 - lat1
    a = np.sin(dlat/2)**2 + np.cos(lat1) * np.cos(lat2) * np.sin(dlon/2)**2
    c = 2 * np.arcsin(np.sqrt(a)) 
    r = 6371000 # Radius of earth in meters
    return c * r

Correct missing underscores and column names


In [61]:
pdf = pdf.rename(columns={'uncertainty_dvol_between_t1_and_t2_mio m3': 'uncertainty_dvol_between_t1_and_t2_mio_m3'})
pdfll = pdfll.rename(columns={'uncertainty_dvol_between_t1_and_t2_mio m3': 'uncertainty_dvol_between_t1_and_t2_mio_m3'})

pdfll = pdfll.rename(columns={'Unnamed: 15': 'Glacier_name_SGI2010'})
pdfll = pdfll.rename(columns={'Unnamed: 16': 'year'})

First approach: find matching glaciers based on FoG => compare names, area and location

Dictionary of strings and symbols that should be replaced prior to calculation of similarity score


In [62]:
name_adjust = {'gletscher':'g', 'glacier':'g' , 'vadret':'v', 'ghiacciaio':'g', 'vedretta':'v', 'ferner':'f', 'ä':'ae', 'ö':'oe', 'ü':'ue', 'é':'e', 'à':'a', 'è':'e', 'ô':'o', 'ß':'ss'}

Introduce FoG column with new names


In [63]:
pda['FoG_compname'] = ''

for initname in [n for n in pda.NAME.values]:
    name = initname.lower()
    for key in name_adjust:
        if key in name:
            name = name.replace(key, name_adjust[key])
    #pda.FoG_compname[pda.NAME == initname] = name
    pda.loc[pda.NAME == initname, 'FoG_compname'] = name

Introduce some new columns


In [64]:
pdf.COMPNAME = ''              # simplified name 
pda.MATCH_RATIO = np.nan       # string matching ratio 
pda.MATCH_NAME = ''            # Name of the FoG glacier that matches Mauro's name best
pda.CLOSEST = ''               # closest FoG glacier point
pda.DIST_TO_CLOSEST = np.nan   # distance of Mauro's point to the closest FoG point 
pda.AREA_CLOSEST = np.nan      # column with the area of Mauro's glacier found by string matching 
pda.AREA_MATCH = np.nan        # column with the area of Mauro's glacier found by string matching
pda.AREA = np.nan              # Area that will be grabbed from the PDB file, if present

Adjust also Mauro's names to make them comparable


In [65]:
for idx,cols in pdf.iterrows():
    # simplify name
    compname_mau = cols.Glacier_name_SGI2010.lower()
    for key in name_adjust:
        if key in compname_mau:
            # replace the umlauts etc.
            compname_mau = compname_mau.replace(key, name_adjust[key])
    
    # delete the bracket stuff in order to improve the ratio
    start = compname_mau.find('(')
    if start != -1:
        compname_mau = compname_mau[0:start]
    compname_mau = compname_mau.replace('*', '')
    compname_mau = compname_mau.strip()

    pdf.loc[pdf.Glacier_name_SGI2010 == cols.Glacier_name_SGI2010, 'COMPNAME'] = compname_mau

In [66]:
pdfll.COMPNAME = ''              # simplified name

In [67]:
for idx,cols in pdfll.iterrows():
    # simplify name
    compname_mau = cols.Names.lower()
    for key in name_adjust:
        if key in compname_mau:
            # replace the umlauts etc.
            compname_mau = compname_mau.replace(key, name_adjust[key])
    
    # delete the bracket stuff in order to improve the ratio
    start = compname_mau.find('(')
    if start != -1:
        compname_mau = compname_mau[0:start]
    compname_mau = compname_mau.replace('*', '')
    compname_mau = compname_mau.strip()

    pdfll.loc[pdfll.Names == cols.Names, 'COMPNAME'] = compname_mau

Find matching glaciers for the 159 swiss glaciers in PDA


In [68]:
#if os.path.exists('assigned_automated.csv'):
#    pass

#else:
for fidx,fcols in pda.iterrows():

    # create an AREA column entry (from the PDB ("state") table)
    area_match = np.nan
    try: # take the latest area entry
        area_match = pdb[pdb.WGMS_ID == fcols.WGMS_ID].AREA.values[~np.isnan(pdb[pdb.WGMS_ID == fcols.WGMS_ID].AREA.values)][-1]
    except IndexError:
        area_match = np.nan
    pda.loc[pda.WGMS_ID == fcols.WGMS_ID, 'AREA'] = area_match


    # find biggest ratio of string matching and insert
    ratio = 0.0
    name = ''
    for cname in pdfll['COMPNAME'].values:
        curr_ratio = SequenceMatcher(None, cname, fcols.FoG_compname).ratio()

        if curr_ratio > ratio or ratio==0.0:  #the latter in order to catch the initial case
            ratio = curr_ratio
            name = cname

    pda.loc[pda.NAME == fcols.NAME, 'MATCH_RATIO'] = ratio
    pda.loc[pda.NAME == fcols.NAME, 'MATCH_NAME'] = name

    # insert the area (at t2, because this is the latest) of the glacier found by string matching
    pda.loc[pda.NAME == fcols.NAME, 'AREA_MATCH'] = pdfll[pdfll['COMPNAME'] == name]['area(km2)'].iloc[0]


    #find closest pdf glacier
    dist = np.nan
    close_name = ''
    for pdf_idx, pdf_cols in pdfll.iterrows():
        lat = pdfll[pdfll.Names == pdf_cols.Names]['y WGS84)'].values[0]
        lon = pdfll[pdfll.Names == pdf_cols.Names]['Location(x WGS84)'].values[0]
        curr_dist = haversine(lon, lat, fcols.LONGITUDE, fcols.LATITUDE)

        if curr_dist < dist or pd.isnull(dist): # the second is for the initial loop
            dist = curr_dist
            close_name = pdf_cols.COMPNAME

    pda.loc[pda.NAME == fcols.NAME, 'DIST_TO_CLOSEST'] = dist
    pda.loc[pda.NAME == fcols.NAME, 'CLOSEST'] = close_name

    print(fcols.NAME)
    # insert the area (at t2, because this is the latest) of the glacier ehic is found to be the closest
    pda.loc[pda.NAME == fcols.NAME, 'AREA_CLOSEST'] = pdfll[pdfll['COMPNAME'] == close_name]['area(km2)'].iloc[0]


    pda.to_csv('assigned_automated.csv')


A NEUVE GL. L'
ADLER
ALBIGNA
ALLALIN
ALPETLI(KANDER)
ALTELS
AMMERTEN
AROLLA (BAS)
BALMHORN
BASODINO
BELLA TOLA
BIDER
BIFERTEN
BIRCH
BIS
BLUEMLISALP
BODMER
BOVEYRE
BREITHORN
BRENEY
BRESCIANA
BRUNEGG
BRUNNI
CALDERAS
CAMBRENA
CAVAGNOLI
CHEILLON
CLARIDENFIRN
CORBASSIERE
CORNO
CROSLINA
DAMMA
DOLENT GL. DU
DUNGEL
EIGER
EIGER (WEST)
EN DARREY
FEE NORTH
FERPECLE
FIESCHER
FINDELEN
FIRNALPELI
FLUCHTHORN GL.
FORNO
GAMCHI
GAULI
GELTEN
GIETRO
GLAERNISCH
GORNER
GRAND DESERT
GRAND PLAN NEVE
GRIES
GRIESS(KLAUSEN)
GRIESSEN(OBWA.)
GRIESSERNU
GROSSER ALETSCH
GRUBEN
GUTZ
HANGENDE
HINDRE SCHMADRI
HOHLAUB
HOMATTU
HUEFI
KALTWASSER
KEHLEN
KESSJEN
LAEMMERN (WILDSTRUBEL)
LANG
LAVAZ
LENTA
LIMMERN
LISCHANA
MAIGHELS EAST BRANCH
MAIGHELS WEST BRANCH
MARTINETS
MINSTIGER
MITTELALETSCH
MOIRY
MOMING
MONT DURAND
MONT FORT (ZINAL)
MONT MINE
MONTO MORO GL.
MORTERATSCH
MURTEL
MUTT
MUTTEN
OB.GRINDELWALD
OBERAAR
OBERALETSCH
OFENTAL
OTEMMA
PALUE
PANEYROSSE
PARADIES
PARADISINO (CAMPO)
PIERREDAR
PIZOL
PLAINE MORTE
PLATTALVA
PORCHABELLA
PRAPIO
PUNTEGLIAS
RAETZLI (PLAINE MORTE)
RHONE
RIED
ROSEG
ROSENLAUI
ROSSBODEN
ROTFIRN NORD
ROTTAL
SALEINA
SANKT ANNA
SARDONA
SCALETTA
SCHOENBUEHL GL.
SCHWARZ
SCHWARZBACH
SCHWARZBERG
SEEWJINEN
SESVENNA
SEX ROUGE
SILLERN
SILVRETTA
SIRWOLTE
STEIN
STEINLIMMI
SULZ
SURETTA
TAELLIBODEN
TIATSCHA
TIEFEN
TOURNELON BLANCE
TRIENT
TRIEST GL.
TRIFT (GADMEN)
TSANFLEURON
TSCHIERVA
TSCHINGEL
TSEUDET
TSIDJIORE NOUVE
TURTMANN (WEST)
UNT.GRINDELWALD
UNTERAAR
VAL TORTA
VALLEGGIA
VALSOREY
VERSTANKLA
VORAB
VORDRE SCHMADRI
WALLENBUR
WANNENHORN GL.
WANNENHORN GL. N
WANNENHORN GL. S
WITENWASSEREN
ZENBAECHEN GL.
ZINAL
ZMUTT

In [71]:
currdate = str(dt.date.today())

In [72]:
pda.to_csv('assigned_automated'+currdate+'.csv')

Okay the automated assignment is not always good (high polygon density, too many similar names...) => Check everything manually


In [15]:
i = 'BREITHORN'

In [16]:
ID = pda[pda.NAME == i].WGMS_ID.iloc[0]

In [17]:
pda[pda.NAME == i]#[['LATITUDE', 'LONGITUDE']]


Out[17]:
POLITICAL_UNIT NAME WGMS_ID RIVER_BASIN FREE_POSITION LOCAL_CODE LOCAL_PSFG GEN_LOCATION SPEC_LOCATION LATITUDE ... GEO-REGION_CODE GEO-SUBREGION_CODE FoG_compname AREA MATCH_RATIO MATCH_NAME AREA_MATCH DIST_TO_CLOSEST CLOSEST AREA_CLOSEST
711 CH BREITHORN 2311 4R014 4M 19 NaN NaN NaN 46.48 ... CEU CEU-01 breithorn NaN 0.947368 breithorng 2.71188 143.257626 tschingelhorn-ne 0.01787

1 rows × 28 columns


In [18]:
pdb[pdb.where(~pd.isnull(pdb.AREA)).WGMS_ID == ID].tail(10)#[['NAME', 'LENGTH', 'AREA']]


Out[18]:
POLITICAL_UNIT NAME WGMS_ID YEAR HIGHEST_ELEVATION MEDIAN_ELEVATION LOWEST_ELEVATION ELEVATION_UNC LENGTH LENGTH_UNC AREA AREA_UNC SURVEY_DATE SURVEY_PLATFORM_METHOD PUB_IN_FOG INVESTIGATOR SPONS_AGENCY REFERENCE REMARKS

In [360]:
pdfll[pdfll['Names'].str.contains('mont collon', case=False)]


Out[360]:
ID acquisition date Location(x WGS84) y WGS84) Location(x CH1903 y CH1903) area(km2) min_elevation (masl) max_elevation (masl) median_elevation (masl) average_elevation (masl) length (km) average_slope (degree) aspect Names Glacier_name_SGI2010 year COMPNAME
1081 B73_13 2010 7.50573 45.976799 605183.4 91865.6 0.16359 3420 3615 3572 3561.0 0.373 25.8 NW Mont Collon N-I* B73/13 2010 mont collon n-i
1082 B73_14 2010 7.49025 45.975102 603802.9 91572.5 5.43500 2168 3649 3086 3066.0 5.106 16.2 NW MONT COLLON GLACIER DU (Teilgl. von B73/32n) B73/14 2010 mont collon g du
1092 B73_31n 2010 7.50832 45.982201 605385.7 92357.7 0.02378 3067 3252 3169 3166.0 0.183 42.7 N Mont Collon-N-II* B73/31n 2010 mont collon-n-ii

In [75]:
links = {
    'A NEUVE GL. L\'':(['A NEUVE GLACIER DE L\'-S','A NEUVE GLACIER DE L\'-N'],['a neuve g de l\'-s','a neuve g de l\'-n'],['B85/07','B85/08'],True), # no area in FoG
    'ADLER':('ADLERGLETSCHER (Teilgl. von B56/03)','adlerg','B56/14n', True),  # no area in FoG, but quite obvious
    'ALBIGNA':('ALBIGNA VADREC D\' (Nr. 116)','albigna vadrec d\'', 'C84/16', True),  # ok, error in area in pdb  
    'ALLALIN':('Allalingletscher* (Teilgl. von B52/66n)','allaling', 'B52/29', True), #ok area 9.68/9.17
    'ALPETLI(KANDER)':('KANDERFIRN (Teilgl. von A55B/29n; Nr. 109)','kanderfirn','A55B/13',True),  # ok area 14/12
    'ALTELS':(['Altels-S','Altels-NW','Altels-SE'],['altels-s','altels-nw','altels-se'],['A55C/04','A55C/03','A55C/18n'],True),     # no area in FoG 
    'AMMERTEN':(['Ammerten-W','AMMERTEN-E (Nr.111)'],['ammerteng-w','ammerteng-e'],['A55F/07n','A55F/01'],True),   # ok area 1.89/(0.55+0.22)
    'AROLLA (BAS)':('MONT COLLON GLACIER DU (Teilgl. von B73/32n)','mont collon g du','B73/14',True),  # no equivalent in Mauro's DB (is included in Glacier du Mont Collon B73/14)
    'BALMHORN':('BALMHORNGLETSCHER (Teilgl. von A55B/42n)','balmhorng','A55B/18',True),  # ok (area: 1.7/1.9)
    'BASODINO':('BASODINO GH. DEL (Nr. 104)','basodino gh. del','C14/10',True),  # area bigger in Mauro's DB, even for only BASODINO GH. DEL (Nr. 104) (1.84/1.89). What to do with basodino-N and basodino-NW?
    'BELLA TOLA':('BELLA TOLA GLETSCHER (Nr. 21)','bella tola g','B61/02',True),  # ok even though areas 0.31/0.07
    'BIDER':('BIDERGLETSCHER','biderg','B53/08',True),  # ok (no area in FoG, but unique)
    'BIFERTEN':('BIFERTENFIRN (Nr. 77)','bifertenfirn','A50I/12',True),  # ok (area: 2.86/2.5)
    'BIRCH':('BIRCHGLETSCHER','birchg','B32/06',True),   # ok even though area 0.54/0.22
    'BIS':('BISGLETSCHER (Nr. 107)','bisg','B58/08',True),    # ok even though area 4.79/3.82
    'BLUEMLISALP':('BLÜMLISALPGLETSCHER (Nr. 64)','bluemlisalpg','A55B/02',True), # ok due to lat/lon area 2.22/2.98
    'BODMER':('BODMER','bodmerg','C02/02',True),   # Link should be okay but area 0.64/0.32
    'BOVEYRE':('BOVEIRE GLACIER DE (Nr. 41)','boveire g de','B84/04',True),  # ok (area 1.99/1.62)
    'BREITHORN':('BREITHORNGLETSCHER','breithorng','A54M/19',True),   # Wetterlückengletscher (not in FoG) is added and oberer breithorngletscher becomes separate, no area/length in FoG for BREITHORN
    'BRENEY':('BRENAY GLACIER DU (Nr. 36)','brenay g du','B82/19',True),   # ok areas 9.8/7.1
    'BRESCIANA':('BRESCIANA VADRECC DI (Nr. 103)','bresciana vadrecc di','C44/02',True),  # ok even though area 0.94/0.48
    'BRUNEGG':('BRUNEGGGLETSCHER (Teilgl. von B60/09; Nr. 20)','bruneggg','B60/20n',True),  # ok areas 6.1/5.5
    'BRUNNI':('BRUNNIFIRN (Nr. 72)','brunnifirn','A51D/15',True),  # ok areas 2.99/2.31
    'CALDERAS':('CALDERAS VADRET (Nr. 95)','calderas v','E35/17',True),   # ok even though areas 1.2/0.66
    'CAMBRENA':('Cambrena Vadret dal (Teilgl. von C93/09)','cambrena v dal','C93/11n',True),  # ok area 1.77/1.26; Cambrena-E* (Teilgl. von C93/09) C93/08 excluded due to FoG lat/lon lying upstream 
    'CAVAGNOLI':('CAVAGNÖÖ GH. DEL (Nr. 119)','cavagnoeoe gh. del','C14/17',True), # ok due to lat/lon area 1.32/0.44 (ok as compared with SGI1973)
    'CHEILLON':('CHEILON GLACIER DE (Nr. 29)','cheilon g de','B74/08',True), # okay even though area 4.73/3.6. Spelling?
    'CLARIDENFIRN':(['CLARIDEN FIRN-II','CLARIDEN FIRN-IV*','CLARIDEN FIRN-I','CLARIDEN FIRN-I (Spitzalpelifirn)*','CLARIDEN FIRN-III*'],['clariden firn-ii','clariden firn-iv','clariden firn-i','clariden firn-iii'],['A50I/19','A50I/20','A50I/23n','A50I/24n'],True),  # area in FoG-D:5.12, but consistent over time even though volume changes!?
    'CORBASSIERE':('Corbassière (Teilgl. von B83/03)*','corbassiere','B83/15n',True),  # ok. unclear if also Combin de Corbassière-E (Teilgl. von B83/03)* is meant (area: 0.4km2), but separated by ridge
    'CORNO':('CORNO GH. DEL (Nr. 120)','corno gh. del','C34/01',True),  # ok even though area 0.27/0.1
    'CROSLINA':('CROSLINA GRANDE GH. DI (Nr. 121)','croslina grande gh. di','C32/02',True), # ok even though area 0.47/0.11 (lat/lon!)
    'DAMMA':('DAMMAGLETSCHER (Nr. 70)','dammag','A51F/10',True),  # ok even though area 6.32/4.24
    'DOLENT GL. DU':('DOLENT GLACIER DU','dolent g du','B85/04',True),  # ok even though noe area given in FoG
    'DUNGEL':('TUNGELGLETSCHER (Teilgl. von A56D/09n, Nr. 112)','tungelg','A56D/01',True),  #ok area 1.2/0.93
    'EIGER':('EIGERGLETSCHER (Nr. 59)','eigerg','A54M/03',True),   # ok area 2.27/1.53
    'EIGER (WEST)':('Eiger Südwestgrat*','eiger suedwestgrat','A54M/02',True),  # unclear, possibly  A54M/02
    'EN DARREY':('EN DARREY GLACIER DE L\' (Nr. 30)','en darrey g de l\'','B74/11',True), #ok (areas 1.86/1.28)
    'FEE NORTH':(['FEEGLETSCHER-S-I','FEEGLETSCHER-S-II','Feegletscher-N-I (Alphubel)* (Teilgl. von B53/16n)','Feegletscher-N-I (Täschhorn)* (Teilgl. von B53/16n)','Feegletscher-N-I (Dom)* (Teilgl. von B53/16n)','FEEGLETSCHER-N-II',],['feeg-s-i','feeg-s-ii','feeg-n-i','feeg-n-i','feeg-n-i','feeg-n-ii'],['B53/14n','B53/15n','B53/17n','B53/18n','B53/19n','B53/20n'],True),  # Feechopf-W* B55/17 ???
    'FERPECLE':('FERPÈCLE GLACIER DE (Nr. 25)','ferpecle g de','B72/11',True),  # ok areas 9.79/9.0
    'FIESCHER':('FIESCHERGLETSCHER VS (Teilgl. von B40/14n, Nr. 4)','fiescherg vs','B40/07',True), # ok area 33.06/29.48
    'FINDELEN':('Findelengletscher * (Teilgl. von B56/03)','findeleng','B56/16n',True),  # ok even though area 19/14
    'FIRNALPELI':(['FIRNALPELIGLETSCHER-E (Nr. 75)','FIRNALPELIFIRN'],['firnalpelig-e','firnalpelifirn'],['A51H/13','A51H/23n'],True),  # FoG lat/lon unclear; must be this combination due to elevation extent
    'FORNO':('FORNO VADREC DEL (Nr. 102)','forno vadrec del','C83/12',True), # ok area 8.7/5.3; NICHT Ofenhorn-W* (lat/lon!)
    'GAMCHI':('GAMCHIGLETSCHER (Nr. 61)','gamchig','A55A/04',True),  # ok area (1.73/1.23)
    'GAULI':('GAULIGLETSCHER (Teilgl. von A54I/19n) Nr. 52','gaulig','A54I/05',True),  # ok (area 13.7/11.4)
    'GELTEN':('GELTENGLETSCHER-W','gelteng-w','A56D/05',True),  # ok should receive the length changes from "GELTEN" entry
    'GIETRO':('GIETRO GLACIER DU (Nr. 37)','gietro g du','B82/14',True),  # ok (area 5.54/5.16)
    'GLAERNISCH':('GLÄRNISCHFIRN (Nr. 80)','glaernischfirn','A50K/04',True), # ok (area 2.09/1.41)
    'GORNER':('GRENZGLETSCHER (Teilgl. von B56/07)','grenzg','B56/22n',True),  # problem: gorner not in Mauro's DB => it's named as "Grenz" there
    'GRAND DESERT':('GRAND DESERT (Nendaz*) (Nr. 31)','grand desert','B75/06',True),  # ok area 1.85/1.06
    'GRAND PLAN NEVE':('PLAN NEVE-E (Nr. 45)','plan neve-e','B17/03',True), # is plan neve-e (area 0.12/0.18) due to lat/lon of FoG point, elevation confirms
    'GRIES':('GRIESGLETSCHER (Nr. 3)','griesg','B45/04',True),  # ok (area 4.83/4.78)
    'GRIESS(KLAUSEN)':(['GRIESSFIRN-I (Nr. 74)','Griessfirn-II*'],['griessfirn-i','griessfirn-ii'],['A51C/02','A51C/01'],True),  # probably more:   and  
    'GRIESSEN(OBWA.)':('GRIESSENFIRN','GRIESSENFIRN','A51H/02',True),  # ok (area 1.27/0.86)
    'GRIESSERNU':('GRIESSERNU GLETSCHER','griessernu g','C02/06',True), # ok even though no area in FoG
    'GROSSER ALETSCH':('GROSSER ALETSCH GLETSCHER (Teilgl. von B36/49n) Nr. 5','grosser aletsch g','B36/26',True), # ok (area 81.3/78.3)
    'GRUBEN':(['GRÜEBUGLETSCHER-N-II (Teilgl. von B51/17n)','GRÜEBUGLETSCHER-S (Teilgl. von B51/17n)','GRÜEBUGLETSCHER-N-I  (Teilgl. von B51/17n)'],['grueebug-n-ii','grueebug-s','grueebug-n-i'],['B51/04','B51/05','B51/16n'],True), # ok area (1.32/(0.18+0.94+0.08)), NAME SHOULD  BE CHANGED IN FoG
    'GUTZ':('GUTZGLETSCHER','gutzg','A54L/02',True),  # ok even though no area in FoG
    'HANGENDE':('HANGENDE GLETSCHER','hangende g', 'B52/27',True), # ok due to lat/lon
    'HINDRE SCHMADRI':('HINDRE SCHMADRIGLETSCHER','hindre schmadrig','A54M/16',True),  # ok no area in FoG
    'HOHLAUB':(['Hohlaubgrat-E* (Teilgl. von B52/67n)','Hohlaub Gletscher* (Teilgl. von B52/67n)'],['hohlaubgrat-e','hohlaub g'],['B52/31','B52/32'],True), # both  and 
    'HOMATTU':(['HOMATTUGLETSCHER-II','HOMATTUGLETSCHER-I'],['homattug-ii','homattug-i'],['B47/05','C04/01'],True), # ok no area in FoG  
    'HUEFI':('HÜFIFIRN (Nr. 73)','huefifirn','A51D/10',True),  # ok (area 13.73/12.72)
    'KALTWASSER':('CHALTWASSERGLETSCHER (Nr. 7)','chaltwasserg','B47/04',True),  # ok (areas 18.5/1.49)
    'KEHLEN':('CHELENGLETSCHER (Totalgl.; Nr. 68)','cheleng','A51F/15',True),  # ok even though area 1.73/3.15
    'KESSJEN':('CHESSJENGLETSCHER-E (Nr. 12)','chessjeng-e','B52/33',True), #ok (areas 0.19/0.19) there is now chessjengl.-w!
    'LAEMMERN (WILDSTRUBEL)':('WILDSTRUBELGLETSCHER (Teilgl. von A55C/24n) Nr. 63','wildstrubelg','A55C/13',True), # ok even though area 3.15/2.34
    'LANG':('Langgletscher (Totalgl.; Nr. 18)','langg','B31/19n',True),  # ok areas 10.03/8.26
    'LAVAZ':(['LAVAZ GLATSCHER DA (Nr. 82)','Lavaz-W*'],['lavaz glatscher da','lavaz-w'],['A14F/15','A14F/16'],True),  # ok area 1-76/(0.7+0.09)
    'LENTA':('LÄNTAGLETSCHER (Nr. 84)','laentag','A14D/17',True),  # ok area 1.4/0.81
    'LIMMERN':('LIMMERNFIRN (Nr. 78)','limmernfirn','A50I/06',True), # ok (area 2.41/1.89)
    'LISCHANA':(['TRIAZZA VADRET DA'],['triazza v da'],['E02/05'],True),  # vadret da triazza is one of the two remnants (one is no longer mapped); LEAVE BRACKETS IN ORDER TO ASSIGN PARENT ID CORRECTLY!
    'MAIGHELS EAST BRANCH':('MAIGHELS GLATSCHER DA-E','maighels glatscher da-e','A14I/04',True),  # ok but no area in FoG
    'MAIGHELS WEST BRANCH':('MAIGHELS GLATSCHER DA-W','maighels glatscher da-w','A14I/05',True),  # ok but no area in FoG
    'MARTINETS':('MARTINETS GLACIER DES (Nr. 46)','martinets g des','B17/08',True), # ok area 0.59/0.36
    'MINSTIGER':('MINSTIGERGLETSCHER','minstigerg','B41/07',True),  # ok areas 3.09/2.25
    'MITTELALETSCH':('MITTELALETSCHGLETSCHER (Teilgl. von B36/49n) Nr. 106','mittelaletschg','B36/21',True), # ok area 8.5/6.8
    'MOIRY':('MOIRY GLACIER DE (Nr. 24)','moiry g de','B64/02',True), # ok area 6.11/4.89
    'MOMING':('MOMING GLACIER DE (Nr. 23)','moming g de','B62/10',True),  # ok , maybe also Pointe Nord de Moming-SE* and Blanc de Moming-W*
    'MONT DURAND':('MONT DURAND GLACIER DU (Nr. 35)','mont durand g du','B82/36',True),  # ok area 7.59/6.09
    'MONT FORT (ZINAL)':(['PETIT M. FORT GLACIER DU','M. FORT GLACIER DU','Mont Fort-E*'],['petit m. fort g du','m. fort g du','mont fort-e'],['B75/07','B75/09','B75/16n'],True),  # not clear, probably PETIT M. FORT GLACIER DU (B75/07), but area is still too low
    'MONT MINE':('MONT MINÉ GLACIER DU (Nr. 26)','mont mine g du','B72/15',True), # ok areas 10.3/9.9
    'MONTO MORO GL.':('Monte Moro-W*','monte moro-w','B52/21',True),  # only a remnant obviously
    'MORTERATSCH':('MORTERATSCH VADRET DA (Totalgl.; Nr. 94)','morteratsch v da','E22/03',True), # ok areas 17/15
    'MURTEL':('MURTEL VADRET DAL','murtel v dal', 'E23/16',True),  # ok, NOT E24/04!!! 
    'MUTT':('MUTTGLETSCHER (Nr. 2)','muttg','B44/03',True), # ok, area 0.57/0.36
    'MUTTEN':('Muttengletscher* (Teilgl. von A51E/23)','mutteng','A51E/56n',True), #ok, no areas in FoG
    'OB.GRINDELWALD':('OBERER GRINDELWALDGLETSCHER (Nr. 57)','oberer grindelwaldg','A54L/04',True), # ok areas 10.07/8.41
    'OBERAAR':('OBERAARGLETSCHER (Teilgl. von A54G/35n) Nr. 50','oberaarg','A54G/03',True), # ok areas 5.23/4.10
    'OBERALETSCH':('OBERALETSCH GLETSCHER (Totalgl.; Nr. 6)','oberaletsch g','B36/01',True),  # ok areas 21/17
    'OFENTAL':('OFENTAL GLETSCHER (Nr. 9)','ofental g','B52/17',True),  #ok even though areas 0.4/0.04...possibly one remnant missing in Mauro's DB (see swisstopo)
    'OTEMMA':('Otemma (Teilgl. von B82/27)*','otemma','B82/51n',True),  # ok areas 16.55/12.59
    'PALUE':('Palü Vadret da (Teilgl. von C93/04)','palue v da','C93/10n',True),  # ok areas 6.62/5.26
    'PANEYROSSE':('PANEIROSSE GLACIER DE (Nr. 44)','paneirosse g de','B17/02',True),  # ok areas 0.45/0.3
    'PARADIES':('PARADIESGLETSCHER (Nr. 86)','PARADIESGLETSCHER (Nr. 86)','A13N/06',True),  # ok 4.6/1.8
    'PARADISINO (CAMPO)':('CAMP VEDREIT DA (Nr. 101)','camp vedreit da','C95/01',True),  # ok area 0.55/0.26
    'PIERREDAR':('PIERREDAR GLACIER DE (Nr. 49)','pierredar g de','B16/05',True), # ok areas 0.67/0.3
    'PIZOL':('PIZOLGLETSCHER (Nr. 81)','pizolg','A50D/01',True), # ok areas 0.32/0.08
    'PLAINE MORTE':(['GLACIER DE LA PLAINE MORTE (Nr. 65)','PLAINE MORTE-W GLACIER DE LA','PLAINE MORTE-E GLACIER DE LA'],['g de la plaine morte','plaine morte-w g de la','plaine morte-e g de la'],['A55F/03','B23/09n','B24/04n'],True), # no area in FoG
    'PLATTALVA':('GRIESSFIRN-N (Plattalva, Nr. 114)','griessfirn-n','A50I/07',True),  # ok area 0.71/0.33
    'PORCHABELLA':('PORCHABELLA VADRET DA (Nr. 88)','porchabella v da','A12E/04',True),  # ok area 2.59/1.67
    'PRAPIO':('PRAPIO GLACIER DU (Nr. 48)','prapio g du','B16/03',True),   # ok area 0.36/0.21
    'PUNTEGLIAS':('Bündner Tödi*','buendner toedi','A14M/08',True),  #  sounds strange but ok area 0.93/0.67
    'RHONE':('Rhonegletscher* (Teilgl. von B43/03)','rhoneg','B43/12n',True),  # ok areas 15.8/15.31
    'RIED':('RIEDGLETSCHER (Nr. 17)','riedg','B54/03',True),  # ok areas 8.26/7.31
    'ROSEG':('ROSEG VADRET DA (Nr. 92)','roseg v da','E23/11',True),  # ok areas 8.71/6.81
    'ROSENLAUI':('ROSENLAUIGLETSCHER (Nr. 56)','rosenlauig','A54J/02',True),  # ok areas 5.9/5.4
    'ROSSBODEN':('ROSSBODEGLETSCHER (Nr. 105)','rossbodeng','C02/04',True),  # ok areas 1.89/1.18
    'ROTFIRN NORD':('Schattmigstock* (Rotfirn-N, Nr. 69)','schattmigstock','A51F/13',True),  #  ok area 1.21/0.91
    'ROTTAL':('ROTTALGLETSCHER-NW (Teilgl. von B52/02)','rottalg-nw','B52/37n',True),  #  ok no area in FoG
    'SALEINA':('Saleina* (Teilgl. von B85/16)','saleina','B85/29n',True),  # is , but area is too high (6.54) compared to FoG (5.03)
    'SANKT ANNA':('ST. ANNAFIRN (Nr. 67)','st. annafirn','A51E/12',True),  # ok even though areas 0.41/0.22 (might be debris problem)
    'SARDONA':('Sardonagletscher-II*','sardonag-ii','A15B/06n',True),  # should be Sardonagletscher-II*, but area is too high (0.45, FoG only 0.38)
    'SCALETTA':('SCALETTAGLETSCHER (Nr. 115)','scalettag','A12D/03',True),  # ok even though area 0.66/0.21 (debris?)
    'SCHOENBUEHL GL.':(['SCHÖNBÜHLGLETSCHER-SE','SCHÖNBÜHLGLETSCHER-NW'],['schoenbuehlg-se','schoenbuehlg-nw'],['B36/31','B36/56n'],True),  # FoG-D area (1957):1.43/(0.57+0.43)
    'SCHWARZ':('SCHWARZGLETSCHER (Nr. 62)','schwarzg','A55C/05',True),  #  okay areas 1.6/1.09
    'SCHWARZBACH':('SCHWARZBACHFIRN','schwarzbachfirn','A51E/08',True),  #  okay (not area in FoG)
    'SCHWARZBERG':('Schwarzberggletscher* (Teilgl. von B52/24)','schwarzbergg','B52/63n',True),  #  ok area 5.17/5.33
    'SESVENNA':('Sesvenna Vadret da-E (Teilgl. von E03/04)','sesvenna v da-e','E03/11n',True),  #  ok area 0.67/0.33
    'SEEWJINEN':('SEEWJINEN GLETSCHER','seewjinen g','B52/22',True),  # ok no area in FoG
    'SEX ROUGE':('SEX ROUGE GLACIER DU (Nr. 47)','sex rouge g du','B16/01',True), # ok even though area 0.72/0.27
    'SILLERN':('SILLERE GLETSCHER','sillere g','A55B/11',True),  #  ok (no area in FoG)
    'SILVRETTA':('SILVRETTAGLETSCHER (Nr. 90)','silvrettag','A10G/05',True),  # ok areas 2.74/2.67
    'SIRWOLTE':('Griessernuhorn-N*','griessernuhorn-n','C03/04',True),  #should be Griessernuhorn-N* (c03/04) => NAME CHANGE IN FoG
    'STEIN':('STEINGLETSCHER (Nr. 53)','steing','B47/01',True),  # ok even though area in Mauro's DB (5.68) slightly bigger than in FoG (5.6)
    'STEINLIMMI':('STEINLIMIGLETSCHER (Nr. 54)','steinlimig','A54E/13',True),  # ok areas 2.21/1.59
    'SULZ':('HINTERSULZFIRN (Nr. 79)','hintersulzfirn','A50I/02',True),  #  must be HINTERSULZFIRN (Nr. 79), A50I/02,  (lat/lon), but area is bigger (0.26) than in FoG (0.2)
    'SURETTA':(['SURETTAGLETSCHER-E (Piz Por*)','SURETTAGLETSCHER-W (Hauptgl., Nr. 87)'],['surettag-e','surettag-w'],['A13I/01','A13I/02'],True), # must be ,  and maybe also Suretta Lückli*. FoG point unclear
    'TIATSCHA':('TIATSCHA VADRET (La Cudera, Nr. 96)','tiatscha v','E50/07',True), # okay areas 2.11/1.82
    'TIEFEN':('TIEFENGLETSCHER (Nr. 66)','tiefeng','A51E/37', True), # ok even though area 3.17/1.99
    'TOURNELON BLANCE':(['Tournelon Blanc-SE*','Tournelon Blanc-E*','Tournelon Blanc-NE*','Col du Tournelon Blanc*'],['tournelon blanc-se','tournelon blanc-e','tournelon blanc-ne','col du tournelon blanc'],['B82/42','B82/43','B82/44','B82/53n'],True),  # defined as given polygons as only special event in FoG 
    'TRIENT':('TRIENT GLACIER DU (Nr. 43)','trient g du','B90/02',True),  # ok area 6.58/5.82
    'TRIEST GL.':('DRIESTGLETSCHER','driestg','B36/17',True),  # ok no area in FoG
    'TRIFT (GADMEN)':('TRIFTGLETSCHER (Nr. 55)','triftg','A54E/24',True),  # ok area 15.33/14.9
    'TSANFLEURON':('TSANFLEURON GLACIER DE (Nr. 33)','tsanfleuron g de','B22/01',True),  # ok area 3.78/2.64
    'TSCHIERVA':(['TSCHIERVA VADRETTIN DA','TSCHIERVA VADRET DA (Nr. 93)'],['tschierva vtin da','tschierva v da'],['E23/04','E23/06'],True),  # area is 6.83/(0.4+5.81); FoG lat/lon suggests to include also the vadrettin
    'TSCHINGEL':(['TSCHINGELFIRN (Nr. 60)','Tschingelspitz-S*','Tschingelgrat-S*'],['tschingelfirn','tschingelspitz-s','tschingelgrat-s'],['A54M/21','A54M/51n','A54M/52n'],True),  # area 6.18/(5.22+0.01+0.006)
    'TSEUDET':('TSEUDET GLACIER DE (Nr. 40)','tseudet g de','B84/17',True),  # ok area 1.76/1.43
    'TSIDJIORE NOUVE':('TSIJIORE NOUVE GLACIER DE (Nr. 28)','tsijiore nouve g de','B73/16',True), # ok even though area 3.12/2.72
    'TURTMANN (WEST)':('TURTMANNGLETSCHER (Teilgl. von B60/09)','turtmanng','B60/21n',True),  # chaos in FoG: sometimes brunegggletscher is included in turtmanngletscher (see state table). TURTMANNGLETSCHER (Teilgl. von B60/09) is only about half (5.5) of turtmann-w in FoG (11km2)
    'UNT.GRINDELWALD':(['OBERS ISCHMEER (Teilgl. von A54L/19)','FIESCHERGLETSCHER BE (Teilgl. von A54L/19)'],['obers ischmeer','fiescherg be'],['A54L/31n','A54L/36n'],True),  # leave Unt. Grindelw. and make it parent
    'UNTERAAR':('UNTERAARGLETSCHER (Teilgl.von A54G/50n) Nr. 51','unteraarg','A54G/11',True), # ok area 22.7/22.5
    'VAL TORTA':('VALTORTA VADRET','valtorta v','E46/06',True),  # ok area 0.17/0.06
    'VALLEGGIA':('VALLEGGIA GH. DI (Nr. 117)','valleggia gh. di','C33/08',True),  # ok area 0.59/0.30
    'VALSOREY':('Valsorey (Teilgl. von B84/15)*','valsorey','B84/27n',True),  #  ok area 2.34/1.9
    'VERSTANKLA':('Verstanclagletscher (Teilgl. von A10G/08)','verstanclag','A10G/24n',True), #ok area 1.06/0.71
    'VORAB':('VORAB GLATSCHER DIL (Nr. 85)','vorab glatscher dil','A14P/01',True), # ok area 2.51/1.22, could also be Vorabsattel-W* (but drain ins other valley)
    'VORDRE SCHMADRI':('VORDRE SCHMADRIGLETSCHER','vordre schmadrig','A54M/15',True),  # ok no area in FoG
    'WALLENBUR':('WALLENBURFIRN (Nr. 71)','wallenburf','A51F/24',True), # ok area 1.7/1.41
    'WANNENHORN GL. N':('WANNENHORNGLETSCHER-NW (Teilgl. von B36/57n)','wannenhorng-nw','B36/32',True), # must be this one due to FoG lat/lon
    'WANNENHORN GL. S':('WANNENHORNGLETSCHER-SE (Teilgl. von B36/57n)','wannenhorng-se','B36/33',True), # must be this one due to FoG lat/lon
    'WITENWASSEREN':('WITENWASSERENGLETSCHER','witenwassereng','A51E/20',True), # no FoG area given....(could also include Witenwasseren-W*, but drains in another valley)
    'ZENBAECHEN GL.':('ZENBAECHENGLETSCHER','zenbaecheng','B36/18',True), # no FoG area given
    'ZINAL':('ZINAL GLACIER DE (Nr. 22)','zinal g de','B63/05',True),  # ok area 16/13.3 
    'ZMUTT':('ZMUTTGLETSCHER (Nr. 15)','zmuttg','B57/05',True),  # ok area 17.4/13.7    
}

# removed:
# 'WANNENHORN GL.':('','','',False),  # is only parent glacier, parent IDs for S/N already present, so can be deleted from dict
# 'TAELLIBODEN':('','','',False),  # no longer digitized in Mauro's inventory => seems to be totally disappeared on orthophoto
# 'RAETZLI (PLAINE MORTE)':('GLACIER DE LA PLAINE MORTE (Nr. 65)','g de la plaine morte','A55F/03',True),  # more or less the same as PLAINE MORTE, min_elevation in PDB except for confusing entry by Huss 2011
# 'FLUCHTHORN GL.':('','','', False), # should be Fluchthorn-NE* B52/26 and maybe also Fluchthorn-E* B52/25 (area 0.37/(0.26+0.01)); problem is hangender ferner inbetween; is taken out due to Michi's suggestion to keep old glacier (unknown which it is and include a duplicate)

Begin to establish new dataset containing the columns from the CHANGE file

1) Determine which glaciers glaciers are already in FoG, which are problematic and which need a new ID


In [77]:
take_over_id = {}                                    # those glaciers that can take over a FoG ID
problems = {}                                        # those glaciers where it is unclear whether they can take over an ID 
new_id = pdfll.Glacier_name_SGI2010.values.tolist()  # those glaciers from Mauro's DB that need a new ID (all - (take_over_id + problems))

print(len(new_id))
print('A54E/24' in new_id)
for key,value in links.items():
    # assign take over/problems
    if value[-1] == True:
        take_over_id[key] = value
    else:
        problems[key] = value
        
    # check which still need a new ID
    if value[-1] == True: 
        if isinstance(value[-2], str):
            new_id.remove(value[-2])
        elif isinstance(value[-2], list):
            pass
            for element in value[-2]:
                new_id.remove(element)
        else:
            raise ValueError('%s neither list nor string' % value[-2])
        
        
print(sum([len(problems[key][-2]) for key,value in problems.items()])) # sum of all SGI2010 short names => should be zero for problems
print(sum([len(take_over_id[key][-2]) if isinstance(take_over_id[key][-2],list) else 1 for key,value in take_over_id.items()])) # # sum of all SGI2010 short names
print(len(new_id)) # sum of all SGI2010 short names that need a new ID in FoG


1419
True
0
187
1232

ATTENTION: As long as not all problems are solved, we generate too many new IDs!!

Make some new raw DataFrames and adjust columns


In [78]:
new_pda = pd.DataFrame(columns=pda.columns.values)
new_pdb = pd.DataFrame(columns=pdb.columns.values)
new_pdd = pd.DataFrame(columns=pdd.columns.values)

In [79]:
new_pda = new_pda[['POLITICAL_UNIT', 'NAME', 'WGMS_ID', 'RIVER_BASIN', 'FREE_POSITION',
                                   'LOCAL_CODE', 'LOCAL_PSFG', 'GEN_LOCATION', 'SPEC_LOCATION', 'LATITUDE', 'LONGITUDE', 
                                   'PRIM_CLASSIFIC', 'FORM', 'FRONTAL_CHARS', 'EXPOS_ACC_AREA', 'EXPOS_ABL_AREA', 
                                   'PARENT_GLACIER', 'REMARKS']]#, 'GEO-REGION_CODE', 'GEO-SUBREGION_CODE', 'AREA']]

new_pdb = new_pdb[['POLITICAL_UNIT', 'NAME', 'WGMS_ID', 'YEAR', 'HIGHEST_ELEVATION','MEDIAN_ELEVATION', 
                                   'LOWEST_ELEVATION', 'ELEVATION_UNC', 'LENGTH', 'LENGTH_UNC', 'AREA', 'AREA_UNC', 
                                   'SURVEY_DATE', 'SURVEY_PLATFORM_METHOD', 'INVESTIGATOR', 'SPONS_AGENCY', 
                                   'REFERENCE', 'REMARKS']]

new_pdd = new_pdd[['POLITICAL_UNIT', 'NAME', 'WGMS_ID', 'YEAR', 'LOWER_BOUND','UPPER_BOUND', 
                                   'AREA_SURVEY_YEAR', 'AREA_CHANGE', 'AREA_CHANGE_UNC', 'THICKNESS_CHG', 
                                   'THICKNESS_CHG_UNC', 'VOLUME_CHANGE', 'VOLUME_CHANGE_UNC', 'SURVEY_DATE', 
                                   'SD_PLATFORM_METHOD', 'REFERENCE_DATE', 'RD_PLATFORM_METHOD', 
                                   'INVESTIGATOR', 'SPONS_AGENCY', 'REFERENCE', 'REMARKS']]

Create some new arbitrary IDs, beginning at given number


In [80]:
begin_new_id = 4585  # where to start with assigning new WGMS IDs
new_id_range = list(range(begin_new_id, begin_new_id+len(pdf)+1,1))

Some correction rules to transform Mauro's names to FoG names


In [105]:
name_adjust_FoG = {'gletscher':'', 'ferner':'','gh.':'ghiacciaio', 'gl.':'','teilgl. von':'part of', 'teil ':'part ', ' von ':' of ', '*':'', 'nr.':'no.', 'haupt':'main', 'zus\'gesetzt':'combined', 'nur fläche':'only area', 'nur':'only', 'flaeche':'area', 'sammler':'group of glacierets', 'ost':'e','nord':'n','sud':'s','ä':'ae', 'ö':'oe', 'ü':'ue', 'é':'e', 'à':'a', 'è':'e', 'ô':'o', 'ß':'ss'} # 'firn':'',
hot_list = ['glacier', 'vadret', 'ghiacciaio', 'vedretta', 'glatscher', 'vadret', 'vadrec.'] # vadrec. is important as also 'vadrecc' appears (regex search) 
special_names ={'GLACIER DE LA PLAINE MORTE (Nr. 65)':'PLAINE MORTE, GLACIER DE LA',
             'PLAINE MORTE-W GLACIER DE LA':'PLAINE MORTE GLACIER DE LA-W',
             'PLAINE MORTE-E GLACIER DE LA':'PLAINE MORTE GLACIER DE LA-E'}

Function to convert Mauro's name to FoG format


In [82]:
def name_to_FoG(name, replace_dict, hot_list, special_names):
    
    # check if it is a very special name
    if name in special_names.keys():
        return special_names[name]
    
    # to make it easier comparable
    name = name.lower()
    
    # replace some predefined stuff
    for key in replace_dict.keys():
        #key_regex = re.compile(key)
        #if 'teil' in name:
        #    print(name)
        if key in name:
        #if re.match(key_regex, name):
            name = name.replace(key, replace_dict[key])
        #print(name)
    
    # replace the bracket stuff
    #start = name.find('(')
    #if start != -1:
    #    name = name[0:start]
    #name = name.replace('*', '')
    #name = name.strip()
    
    # if the name is already sorted in the desired way (e.g. 'lai blau glatscher dil'), insert a comma as specified by Michi
    
    
    # reorder the words
    splitname = name.split(' ')
    if len(splitname) >= 3:
        for hotname in hot_list:
            hotname_regex = re.compile(hotname)  # regex search due to "vadrecc" problem
            if re.match(hotname_regex, name) and len(splitname)>1:
                print(name, hotname,splitname)
                try:
                    resort_ix = splitname.index(hotname)
                except:
                    resort_ix = splitname.index(hotname_regex)
                if resort_ix == 0: # e.g. "glacier de BLA"
                    name = splitname[-1]+', '+' '.join(splitname[:-2])
                    print(name)
                elif resort_ix == 1: # e.g. "BLA glacier de"
                    name = splitname[0]+', '+' '.join(splitname[1:])
                else:
                    pass
    
    # strip name (there might be spaces from string rebuilding)
    name = name.strip()
    return name.upper()

Constants that can be inserted glacier-independent


In [83]:
# some constants
POL_UNIT = 'CH'
RGI_REGION = 'Central Europe'
RGI_SUBREGION = 'Alps'
MISS_VAL = 9999
SD_PLATFORM_METHOD = 'aC'
RD_PLATFORM_METHOD = 'aC'
SD_METHOD = 'PL'
RD_METHOD = 'M'
REFERENCE = 'Fischer et al. (2014); Arctic, Antarctic and Alpine Research, 46(4), pp.933-945'
AGENCY = 'Department of Geosciences, University of Fribourg, 1700 Fribourg, Switzerland'
INVESTIGATOR = 'Fischer et al.'
PUB_DATE = int(2016)
LENGTH_UNC_FACTOR = 0.05   # actually 2-5%, but specification says "maximum" error
# ELEV_UNC = 3.0   # vertical accuracy 1-3m for swissimage (see Fischer et al. 2014); not used as also digitizing error and terrain steepness plays a role

Function to determine the area uncertainty (unused)


In [84]:
def area_unc(area):
    AREA_UNC_FACTOR_S = 0.076  # for Small glaciers (<1km2)
    AREA_UNC_FACTOR_M = 0.047  # for Medium glaciers (1-5km2)
    AREA_UNC_FACTOR_L = 0.076  # for Large glaciers (>5km2)
    
    if area <1.:
        area_uncert = area * AREA_UNC_FACTOR_S
    elif 1. <= area <= 5.:
        area_uncert = area * AREA_UNC_FACTOR_M
    elif area > 5.:
        area_uncert = area * AREA_UNC_FACTOR_L
    return area_uncert

Function to create new entries with ID already in FoG


In [85]:
def create_entries_id_present(pda, pdd, pdfll, pdf, new_pda, new_pdb, new_pdd, take_over_dict, new_ids):

    for key,val in take_over_id.items():

        # two new DFs for the different FoG files
        glacier_pdd = pd.DataFrame(columns=new_pdd.columns.values)
        glacier_pda = pd.DataFrame(columns=new_pda.columns.values)
        glacier_pdb = pd.DataFrame(columns=new_pdb.columns.values)

        # present WGMS ID
        gid = pda[pda.NAME == key].WGMS_ID.values[0]

        # Mauros glaciers entry: 
        if isinstance(val[-2], str): # if there is only one equivalent: fill only PDB and PDD and leave PDA as it is
            mg = pdf[pdf.Code_SGI2010 == val[-2]]
            mg_ll = pdfll[pdfll.Glacier_name_SGI2010 == val[-2]]
            
            # set the REMARKS (added at the end)
            REMARKS_pdd = ''
            REMARKS_pdb = ''

            if not mg.empty:
                glacier_pdd.loc[gid, 'POLITICAL_UNIT'] = POL_UNIT
                glacier_pdd.loc[gid, 'NAME'] = pda[pda.WGMS_ID == gid].NAME.iloc[0]
                glacier_pdd.loc[gid, 'WGMS_ID'] = gid
                glacier_pdd.loc[gid, 'YEAR'] = mg.t2_year.iloc[0]
                glacier_pdd.loc[gid, 'LOWER_BOUND'] = MISS_VAL
                glacier_pdd.loc[gid, 'UPPER_BOUND'] = MISS_VAL
                glacier_pdd.loc[gid, 'AREA_SURVEY_YEAR'] = round(mg.area_t2_km2.iloc[0],3)
                glacier_pdd.loc[gid, 'AREA_CHANGE'] = round(mg.area_t2_km2.iloc[0] - mg.area_t1_km2.iloc[0]) * 1000  # *1000: unit difference (1000m2 and km2)
                #glacier_pdd.loc[gid, 'AREA_CHANGE_UNC'] = round((area_unc(mg.area_t1_km2.iloc[0]) + area_unc(mg.area_t2_km2.iloc[0]))* 1000, 2)  # error is addition of both errors for t1 and t2 in worst case; *1000 for unit
                glacier_pdd.loc[gid, 'THICKNESS_CHG'] = round(((mg.dvol_mio_m3_between_t1_and_t2.iloc[0] * 10**6) / ((mg.area_t2_km2.iloc[0] + mg.area_t1_km2.iloc[0]) * 0.5 * 10**6)) * 1000, -1) # *1000 for conversion from m thickness change to mm change
                #glacier_pdd.loc[gid, 'THICKNESS_CHG_UNC'] = np.nan  # berechnen? AREA_UNC fehlt und der Fehler durch Mittelung
                glacier_pdd.loc[gid, 'VOLUME_CHANGE'] = round(mg.dvol_mio_m3_between_t1_and_t2.iloc[0] *1000)   # *1000: unit difference (1000m3 / 1000000m3)
                glacier_pdd.loc[gid, 'VOLUME_CHANGE_UNC'] = round(mg.uncertainty_dvol_between_t1_and_t2_mio_m3.iloc[0]) # *1000:unit difference (1000m3 / 1000000m3)
                glacier_pdd.loc[gid, 'SURVEY_DATE'] = int(mg.t2_year *10000 + 9999)  # in order to fulfill the requirements (month/day unknown)
                glacier_pdd.loc[gid, 'SD_PLATFORM_METHOD'] = SD_PLATFORM_METHOD # must be determined
                REMARKS_pdd = REMARKS_pdd + ' Survey date method: %s.' % SD_METHOD
                glacier_pdd.loc[gid, 'REFERENCE_DATE'] = int(mg.t1_year *10000 + 9999)  # in order to fulfill the requirements (month/day unknown)
                glacier_pdd.loc[gid, 'RD_PLATFORM_METHOD'] = RD_PLATFORM_METHOD   # must be determined
                REMARKS_pdd = REMARKS_pdd + ' Reference date method: %s.' % RD_METHOD
                #glacier_pdd.PUB_IN_FOG = PUB_DATE      # not needed in data submission form
                glacier_pdd.loc[gid, 'INVESTIGATOR'] = INVESTIGATOR
                glacier_pdd.loc[gid, 'SPONS_AGENCY'] = AGENCY
                glacier_pdd.loc[gid, 'REFERENCE'] = REFERENCE
                REMARKS_pdd = REMARKS_pdd + ' ID SGI 1973: %s.' % mg.ID_SGI1973.iloc[0]
                REMARKS_pdd = REMARKS_pdd + ' ID SGI 2010: %s.' % mg.Code_SGI2010.iloc[0]
                # at the very end 
                glacier_pdd.loc[gid, 'REMARKS'] = REMARKS_pdd
                
                new_pdd = pd.concat([new_pdd, glacier_pdd], ignore_index=True)

                
                # fill PDB                                           
                glacier_pdb.loc[gid, 'POLITICAL_UNIT'] = POL_UNIT
                glacier_pdb.loc[gid, 'NAME'] = pda[pda.WGMS_ID == gid].NAME.iloc[0]
                glacier_pdb.loc[gid, 'WGMS_ID'] = gid
                glacier_pdb.loc[gid, 'YEAR'] = mg.t2_year.iloc[0]
                glacier_pdb.loc[gid, 'HIGHEST_ELEVATION'] = mg_ll['max_elevation (masl)'].iloc[0]
                glacier_pdb.loc[gid, 'MEDIAN_ELEVATION'] = mg_ll['median_elevation (masl)'].iloc[0]
                glacier_pdb.loc[gid, 'LOWEST_ELEVATION'] = mg_ll['min_elevation (masl)'].iloc[0]
                #glacier_pdb.loc[gid, 'ELEVATION_UNC'] = np.nan
                glacier_pdb.loc[gid, 'LENGTH'] = round(mg_ll['length (km)'].iloc[0],2)
                #glacier_pdb.loc[gid, 'LENGTH_UNC'] = round(mg_ll['length (km)'].iloc[0] * LENGTH_UNC_FACTOR, -1)  # round to next ten meters
                glacier_pdb.loc[gid, 'AREA'] = round(mg_ll['area(km2)'].iloc[0],3)
                #glacier_pdb.loc[gid, 'AREA_UNC'] = round(area_unc(mg.area_t1_km2.iloc[0]), 2)  # round to 0.01km2
                glacier_pdb.loc[gid, 'SURVEY_DATE'] = mg_ll.year.iloc[0]
                glacier_pdb.loc[gid, 'SURVEY_PLATFORM_METHOD'] = SD_PLATFORM_METHOD
                REMARKS_pdb = REMARKS_pdb + ' Survey date method: %s.' % SD_METHOD
                glacier_pdb.loc[gid, 'INVESTIGATOR'] = INVESTIGATOR
                glacier_pdb.loc[gid, 'SPONS_AGENCY'] = AGENCY
                glacier_pdb.loc[gid, 'REFERENCE'] = REFERENCE
                glacier_pdb.loc[gid, 'REMARKS'] = REMARKS_pdb
                                                           
                new_pdb = pd.concat([new_pdb, glacier_pdb], ignore_index=True)

                                                           
        elif isinstance(val[-2], list):  ## multiple polygons with PARENT_GLACIER

            for sgiid in val[-2]:

                # Mauro's glacier
                mg = pdf[pdf.Code_SGI2010 == sgiid]
                mg_ll = pdfll[pdfll.Glacier_name_SGI2010 == sgiid]

                # Parent glacier ID
                pg_id = gid
                # new ID for the entries themselves and pop the index so that it is not used twice
                new_id = new_ids[0]
                new_ids.pop(0)


                # set the REMARKS (added at the end)
                REMARKS_pdd = ''
                REMARKS_pda = ''
                REMARKS_pdb = ''

                if not mg.empty:
                    glacier_pdd.loc[gid, 'POLITICAL_UNIT'] = POL_UNIT
                    glacier_pdd.loc[gid, 'NAME'] = name_to_FoG(mg.Glacier_name_SGI2010.iloc[0], name_adjust_FoG, hot_list, special_names)
                    glacier_pdd.loc[gid, 'WGMS_ID'] = new_id
                    glacier_pdd.loc[gid, 'YEAR'] = mg.t2_year.iloc[0]
                    glacier_pdd.loc[gid, 'LOWER_BOUND'] = MISS_VAL
                    glacier_pdd.loc[gid, 'UPPER_BOUND'] = MISS_VAL
                    glacier_pdd.loc[gid, 'AREA_SURVEY_YEAR'] = round(mg.area_t2_km2.iloc[0],3)
                    glacier_pdd.loc[gid, 'AREA_CHANGE'] = round((mg.area_t2_km2.iloc[0] - mg.area_t1_km2.iloc[0]) * 1000)  # *1000: unit difference (1000m2 and km2)
                    #glacier_pdd.loc[gid, 'AREA_CHANGE_UNC'] = round((area_unc(mg.area_t1_km2.iloc[0]) + area_unc(mg.area_t2_km2.iloc[0]))* 1000, -1)  # error is addition of both errors for t1 and t2 in worst case; *1000 for unit
                    glacier_pdd.loc[gid, 'THICKNESS_CHG'] = round(((mg.dvol_mio_m3_between_t1_and_t2.iloc[0] * 10**6) / ((mg.area_t2_km2.iloc[0] + mg.area_t1_km2.iloc[0]) * 0.5 * 10**6)) * 1000) # *1000 for conversion from m thickness change to mm change
                    #glacier_pdd.loc[gid, 'THICKNESS_CHG_UNC'] = np.nan  # berechnen? AREA_UNC fehlt und der Fehler durch Mittelung
                    glacier_pdd.loc[gid, 'VOLUME_CHANGE'] = round(mg.dvol_mio_m3_between_t1_and_t2.iloc[0] *1000)   # *1000: unit difference (1000m3 / 1000000m3)
                    glacier_pdd.loc[gid, 'VOLUME_CHANGE_UNC'] = round(mg.uncertainty_dvol_between_t1_and_t2_mio_m3.iloc[0]) # *1000:unit difference (1000m3 / 1000000m3)
                    glacier_pdd.loc[gid, 'SURVEY_DATE'] = int(mg.t2_year *10000 + 9999)  # in order to fulfill the requirements (month/day unknown)
                    glacier_pdd.loc[gid, 'SD_PLATFORM_METHOD'] = SD_PLATFORM_METHOD # must be determined
                    REMARKS_pdd = REMARKS_pdd + ' Survey date method: %s.' % SD_METHOD
                    glacier_pdd.loc[gid, 'REFERENCE_DATE'] = int(mg.t1_year.iloc[0] *10000 + 9999)  # in order to fulfill the requirements (month/day unknown)
                    glacier_pdd.loc[gid, 'RD_PLATFORM_METHOD'] = RD_PLATFORM_METHOD   # must be determined
                    REMARKS_pdd = REMARKS_pdd + ' Reference date method: %s.' % RD_METHOD
                    #glacier_pdd.PUB_IN_FOG = PUB_DATE      # not needed in data submission form
                    glacier_pdd.loc[gid, 'INVESTIGATOR'] = INVESTIGATOR
                    glacier_pdd.loc[gid, 'SPONS_AGENCY'] = AGENCY
                    glacier_pdd.loc[gid, 'REFERENCE'] = REFERENCE
                    REMARKS_pdd = REMARKS_pdd + ' ID SGI 1973: %s.' % mg.ID_SGI1973.iloc[0]
                    REMARKS_pdd = REMARKS_pdd + ' ID SGI 2010: %s.' % mg.Code_SGI2010.iloc[0]
                    # at the very end 
                    glacier_pdd.loc[gid, 'REMARKS'] = REMARKS_pdd

                    new_pdd = pd.concat([new_pdd, glacier_pdd], ignore_index=True)
                                                               
                                                               
                    # Fill PDB
                    glacier_pdb.loc[gid, 'POLITICAL_UNIT'] = POL_UNIT
                    glacier_pdb.loc[gid, 'NAME'] = name_to_FoG(mg_ll.Names.iloc[0], name_adjust_FoG, hot_list, special_names)
                    glacier_pdb.loc[gid, 'WGMS_ID'] = new_id
                    glacier_pdb.loc[gid, 'YEAR'] = mg.t2_year.iloc[0]
                    glacier_pdb.loc[gid, 'HIGHEST_ELEVATION'] = mg_ll['max_elevation (masl)'].iloc[0]
                    glacier_pdb.loc[gid, 'MEDIAN_ELEVATION'] = mg_ll['median_elevation (masl)'].iloc[0]
                    glacier_pdb.loc[gid, 'LOWEST_ELEVATION'] = mg_ll['min_elevation (masl)'].iloc[0]
                    #glacier_pdb.loc[gid, 'ELEVATION_UNC'] = np.nan
                    glacier_pdb.loc[gid, 'LENGTH'] = round(mg_ll['length (km)'].iloc[0], 2)
                    #glacier_pdb.loc[gid, 'LENGTH_UNC'] = mg_ll['length (km)'].iloc[0] * LENGTH_UNC_FACTOR
                    glacier_pdb.loc[gid, 'AREA'] = round(mg_ll['area(km2)'].iloc[0],3)
                    #glacier_pdb.loc[gid, 'AREA_UNC'] = round(area_unc(mg.area_t1_km2.iloc[0]), 2)
                    glacier_pdb.loc[gid, 'SURVEY_DATE'] = mg_ll.year.iloc[0]
                    glacier_pdb.loc[gid, 'SURVEY_PLATFORM_METHOD'] = SD_PLATFORM_METHOD
                    REMARKS_pdb = REMARKS_pdb + ' Survey date method: %s.' % SD_METHOD
                    glacier_pdb.loc[gid, 'INVESTIGATOR'] = INVESTIGATOR
                    glacier_pdb.loc[gid, 'SPONS_AGENCY'] = AGENCY
                    glacier_pdb.loc[gid, 'REFERENCE'] = REFERENCE
                    glacier_pdb.loc[gid, 'REMARKS'] = REMARKS_pdb

                    new_pdb = pd.concat([new_pdb, glacier_pdb], ignore_index=True)


                if not mg_ll.empty:
                    glacier_pda.loc[gid, 'POLTITICAL_UNIT'] = POL_UNIT
                    glacier_pda.loc[gid, 'NAME'] = name_to_FoG(mg_ll.Names.iloc[0].upper(),name_adjust_FoG, hot_list, special_names)
                    glacier_pda.loc[gid, 'WGMS_ID'] = new_id 
                    glacier_pda.loc[gid, 'LATITUDE'] = round(mg_ll['y WGS84)'].iloc[0], 6)
                    glacier_pda.loc[gid, 'LONGITUDE'] = round(mg_ll['Location(x WGS84)'].iloc[0], 6)
                    glacier_pda.loc[gid, 'REGION'] = RGI_REGION
                    glacier_pda.loc[gid, 'SUBREGION'] = RGI_SUBREGION
                    glacier_pda.loc[gid, 'PARENT_GLACIER'] = pg_id
                    glacier_pda.loc[gid, 'SGI_2010_ID'] = sgiid

                new_pda = pd.concat([new_pda, glacier_pda], ignore_index=True)

    return new_pda, new_pdb, new_pdd, new_ids

In [86]:
new_pda, new_pdb, new_pdd, new_id_range = create_entries_id_present(pda, pdd, pdfll, pdf, new_pda, new_pdb, new_pdd, take_over_id, new_id_range)


glacier de la plaine morte (no. 65) glacier ['glacier', 'de', 'la', 'plaine', 'morte', '(no.', '65)']
65), glacier de la plaine morte

Function to create entries with ID that has to be introduced into FoG


In [87]:
def create_entries_new_id(pda, pdd, pdfll, pdf, new_pda, new_pdb, new_pdd, new_id_list, new_ids):

    for id_2010 in new_id_list:

        # two new DFs for the different FoG files
        glacier_pdd = pd.DataFrame(columns=new_pdd.columns.values)
        glacier_pda = pd.DataFrame(columns=new_pda.columns.values)
        glacier_pdb = pd.DataFrame(columns=new_pdb.columns.values)

        # Mauro's entry: 
        mg = pdf[pdf.Code_SGI2010 == id_2010]
        mg_ll = pdfll[pdfll.Glacier_name_SGI2010 == id_2010]
        
        # new ID for the entries themselves and pop the index so that it is not used twice
        new_id = new_ids[0]
        new_ids.pop(0)

        # set the REMARKS (added at the end)
        REMARKS_pdd = ''
        REMARKS_pdb = ''

        glacier_pda.loc[new_id, 'POLTITICAL_UNIT'] = POL_UNIT
        glacier_pda.loc[new_id, 'NAME'] = name_to_FoG(mg_ll.Names.iloc[0].upper(),name_adjust_FoG, hot_list, special_names)
        glacier_pda.loc[new_id, 'WGMS_ID'] = int(new_id) 
        glacier_pda.loc[new_id, 'LATITUDE'] = round(mg_ll['y WGS84)'].iloc[0], 6)
        glacier_pda.loc[new_id, 'LONGITUDE'] = round(mg_ll['Location(x WGS84)'].iloc[0], 6)
        glacier_pda.loc[new_id, 'REGION'] = RGI_REGION
        glacier_pda.loc[new_id, 'SUBREGION'] = RGI_SUBREGION
        glacier_pda.loc[new_id, 'SGI_2010_ID'] = id_2010

        new_pda = pd.concat([new_pda, glacier_pda], ignore_index=True)


        if not mg.empty:
            glacier_pdd.loc[new_id, 'POLITICAL_UNIT'] = POL_UNIT
            glacier_pdd.loc[new_id, 'NAME'] = name_to_FoG(mg_ll.Names.iloc[0].upper(),name_adjust_FoG, hot_list, special_names)
            glacier_pdd.loc[new_id, 'WGMS_ID'] = new_id
            glacier_pdd.loc[new_id, 'YEAR'] = mg.t2_year.iloc[0]
            glacier_pdd.loc[new_id, 'LOWER_BOUND'] = MISS_VAL
            glacier_pdd.loc[new_id, 'UPPER_BOUND'] = MISS_VAL
            glacier_pdd.loc[new_id, 'AREA_SURVEY_YEAR'] = round(mg.area_t2_km2.iloc[0],3)
            glacier_pdd.loc[new_id, 'AREA_CHANGE'] = round((mg.area_t2_km2.iloc[0] - mg.area_t1_km2.iloc[0]) * 1000)  # *1000: unit difference (1000m2 and km2)
            #glacier_pdd.loc[new_id, 'AREA_CHANGE_UNC'] = round((area_unc(mg.area_t1_km2.iloc[0]) + area_unc(mg.area_t2_km2.iloc[0]))* 1000, -1)  # error is addition of both errors for t1 and t2 in worst case; *1000 for unit
            glacier_pdd.loc[new_id, 'THICKNESS_CHG'] = round(((mg.dvol_mio_m3_between_t1_and_t2.iloc[0] * 10**6) / ((mg.area_t2_km2.iloc[0] + mg.area_t1_km2.iloc[0]) * 0.5 * 10**6)) * 1000) # *1000 for conversion from m thickness change to mm change
            #glacier_pdd.loc[new_id, 'THICKNESS_CHG_UNC'] = np.nan  # berechnen? AREA_UNC fehlt und der Fehler durch Mittelung
            glacier_pdd.loc[new_id, 'VOLUME_CHANGE'] = round(mg.dvol_mio_m3_between_t1_and_t2.iloc[0] *1000)   # *1000: unit difference (1000m3 / 1000000m3)
            glacier_pdd.loc[new_id, 'VOLUME_CHANGE_UNC'] = round(mg.uncertainty_dvol_between_t1_and_t2_mio_m3.iloc[0]) # *1000:unit difference (1000m3 / 1000000m3)
            glacier_pdd.loc[new_id, 'SURVEY_DATE'] = int(mg.t2_year *10000 + 9999)  # in order to fulfill the requirements (month/day unknown)
            glacier_pdd.loc[new_id, 'SD_PLATFORM_METHOD'] = SD_PLATFORM_METHOD # must be determined
            REMARKS_pdd = REMARKS_pdd + ' Survey date method: %s.' % SD_METHOD
            glacier_pdd.loc[new_id, 'REFERENCE_DATE'] = int(mg.t1_year *10000 + 9999)  # in order to fulfill the requirements (month/day unknown)
            glacier_pdd.loc[new_id, 'RD_PLATFORM_METHOD'] = RD_PLATFORM_METHOD   # must be determined
            REMARKS_pdd = REMARKS_pdd + ' Reference date method: %s.' % RD_METHOD
            #glacier_pdd.PUB_IN_FOG = PUB_DATE      # not needed in data submission form
            glacier_pdd.loc[new_id, 'INVESTIGATOR'] = INVESTIGATOR
            glacier_pdd.loc[new_id, 'SPONS_AGENCY'] = AGENCY
            glacier_pdd.loc[new_id, 'REFERENCE'] = REFERENCE
            REMARKS_pdd = REMARKS_pdd + ' ID SGI 1973: %s.' % mg.ID_SGI1973.iloc[0]
            REMARKS_pdd = REMARKS_pdd + ' ID SGI 2010: %s.' % mg.Code_SGI2010.iloc[0]
            # at the very end 
            glacier_pdd.loc[new_id, 'REMARKS'] = REMARKS_pdd

            new_pdd = pd.concat([new_pdd, glacier_pdd], ignore_index=True)
                                                          
                                                          
            # Fill PDB
            glacier_pdb.loc[new_id, 'POLITICAL_UNIT'] = POL_UNIT
            glacier_pdb.loc[new_id, 'NAME'] = name_to_FoG(mg_ll.Names.iloc[0].upper(),name_adjust_FoG, hot_list, special_names)
            glacier_pdb.loc[new_id, 'WGMS_ID'] = new_id
            glacier_pdb.loc[new_id, 'YEAR'] = mg.t2_year.iloc[0]
            glacier_pdb.loc[new_id, 'HIGHEST_ELEVATION'] = mg_ll['max_elevation (masl)'].iloc[0]
            glacier_pdb.loc[new_id, 'MEDIAN_ELEVATION'] = mg_ll['median_elevation (masl)'].iloc[0]
            glacier_pdb.loc[new_id, 'LOWEST_ELEVATION'] = mg_ll['min_elevation (masl)'].iloc[0]
            #glacier_pdb.loc[new_id, 'ELEVATION_UNC'] = np.nan
            glacier_pdb.loc[new_id, 'LENGTH'] = round(mg_ll['length (km)'].iloc[0], 2)
            #glacier_pdb.loc[new_id, 'LENGTH_UNC'] = mg_ll['length (km)'].iloc[0] * LENGTH_UNC_FACTOR
            glacier_pdb.loc[new_id, 'AREA'] = round(mg_ll['area(km2)'].iloc[0], 3)
            #glacier_pdb.loc[new_id, 'AREA_UNC'] = round(area_unc(mg.area_t1_km2.iloc[0]), 2)
            glacier_pdb.loc[new_id, 'SURVEY_DATE'] = mg_ll.year.iloc[0]
            glacier_pdb.loc[new_id, 'SURVEY_PLATFORM_METHOD'] = SD_PLATFORM_METHOD
            REMARKS_pdb = REMARKS_pdb + ' Survey date method: %s.' % SD_METHOD
            glacier_pdb.loc[new_id, 'INVESTIGATOR'] = INVESTIGATOR
            glacier_pdb.loc[new_id, 'SPONS_AGENCY'] = AGENCY
            glacier_pdb.loc[new_id, 'REFERENCE'] = REFERENCE
            glacier_pdb.loc[new_id, 'REMARKS'] = REMARKS_pdb

            new_pdb = pd.concat([new_pdb, glacier_pdb], ignore_index=True)
                                                          
    return new_pda, new_pdb, new_pdd, new_ids

In [88]:
(new_pda, new_pdb, new_pdd, new_id_range) = create_entries_new_id(pda, pdd, pdfll, pdf, new_pda, new_pdb, new_pdd, new_id, new_id_range)

Find the GLIMS IDs in PDA

We have already put the same DF into both functions taking over IDs and creating new ones, so we don't need to concat them again


In [89]:
new_pda['GLIMS_ID'] = np.nan

ct=0
for sgi_2010_id in new_pda.SGI_2010_ID.values:
    try:
        new_pda.loc[new_pda[new_pda.SGI_2010_ID == sgi_2010_id].index, 'GLIMS_ID'] = glims[glims.local_id == sgi_2010_id].glac_id.iloc[0]
    except IndexError:
        #print('Not in GLIMS:',new_pda[new_pda.SGI_2010_ID == sgi_2010_id].NAME.iloc[0], sgi_2010_id)
        ct += 1
        continue

# Some glaciers don't have a GLIMS entry due to their size (~0.2km2)
print('%s glaciers are not in GLIMS' % ct)


142 glaciers are non im GLIMS

There are still name duplicates: Try and get the Kanton abbreviations to make them separable more easily (doesn't always work, but at least sometimes...)


In [94]:
# read Kanton borders
fc = fiona.open(ch_adm_path)

In [95]:
namedupl_pda = [item for item, count in collections.Counter(new_pda.NAME.values).items() if count > 1]

for name in namedupl_pda:
    id_list = new_pda[new_pda.NAME == name].WGMS_ID.values
    
    for wgms_id in id_list:
        lon = new_pda[new_pda.WGMS_ID == wgms_id].LONGITUDE.iloc[0]
        lat = new_pda[new_pda.WGMS_ID == wgms_id].LATITUDE.iloc[0]
        point = Point(lon,lat)
        
        for feature in fc:
            if shape(feature['geometry']).contains(point):            
                kanton_name = kanton_dict[feature['properties']['NAME']]
                new_pda.loc[new_pda[new_pda.WGMS_ID == wgms_id].index,'NAME'] = name + ' ' + kanton_name


5072
8.18946 46.628399
5357
8.16933 46.491798
4828
8.82182 46.7934
4841
8.68558 46.7365
4886
8.48363 46.714199
4833
8.76307 46.7482
4909
8.54097 46.7677
5173
7.75777 46.497299
5500
7.70739 46.056599
5527
7.73003 46.181599
5435
8.0015 46.1338
5499
7.68799 46.0513
4807
8.87164 46.844101
4809
8.86792 46.8522
4821
8.75285 46.812199
4951
8.48833 46.821201
5097
8.0757 46.6147
5109
8.08866 46.607399
5328
8.07696 46.5004
5343
8.07304 46.4995
4672
9.35953 46.515701
5851
9.94344 46.739201
4921
8.43209 46.685001
5335
7.99942 46.4352
5556
7.57823 46.073002
5608
7.35982 46.058701
4699
9.05343 46.522202
5405
8.22173 46.332199
5105
8.07511 46.565201
5114
8.12078 46.5667
5211
7.59332 46.3843
5225
7.19716 46.3157
5308
7.9484 46.405701
5309
7.93554 46.421101
5326
7.96617 46.494701
5327
8.00801 46.5098
5563
7.56 46.012798

In [96]:
namedupl_pdb = [item for item, count in collections.Counter(new_pdb.NAME.values).items() if count > 1]

for name in namedupl_pdb:
    id_list = new_pdb[new_pdb.NAME == name].WGMS_ID.values
    
    for wgms_id in id_list:
        try:
            lon = new_pda[new_pda.WGMS_ID == wgms_id].LONGITUDE.iloc[0]
            lat = new_pda[new_pda.WGMS_ID == wgms_id].LATITUDE.iloc[0]
            point = Point(lon,lat)
        except IndexError: # FoG entry already present
            print(name,wgms_id)
            continue
        
        for feature in fc:
            if shape(feature['geometry']).contains(point):
                new_pdb.loc[new_pdb[new_pdb.WGMS_ID == wgms_id].index,'NAME'] = name + ' ' + feature['properties']['HASC_1'].split('.')[1]


5072
8.18946 46.628399
5357
8.16933 46.491798
4828
8.82182 46.7934
4841
8.68558 46.7365
4886
8.48363 46.714199
4833
8.76307 46.7482
4909
8.54097 46.7677
5173
7.75777 46.497299
5500
7.70739 46.056599
5527
7.73003 46.181599
5435
8.0015 46.1338
5499
7.68799 46.0513
4807
8.87164 46.844101
4809
8.86792 46.8522
4821
8.75285 46.812199
4951
8.48833 46.821201
5097
8.0757 46.6147
5109
8.08866 46.607399
419
SULZ 419
5391
8.30907 46.433201
3424
HANGENDE 3424
5273
7.80389 46.3811
5328
8.07696 46.5004
5343
8.07304 46.4995
4672
9.35953 46.515701
5851
9.94344 46.739201
4921
8.43209 46.685001
5335
7.99942 46.4352
5556
7.57823 46.073002
5608
7.35982 46.058701
4699
9.05343 46.522202
5405
8.22173 46.332199
5105
8.07511 46.565201
5114
8.12078 46.5667
5211
7.59332 46.3843
5225
7.19716 46.3157
5308
7.9484 46.405701
5309
7.93554 46.421101
5326
7.96617 46.494701
5327
8.00801 46.5098
5563
7.56 46.012798

In [97]:
namedupl_pdd = [item for item, count in collections.Counter(new_pdd.NAME.values).items() if count > 1]

for name in namedupl_pdd:
    id_list = new_pdd[new_pdd.NAME == name].WGMS_ID.values
    
    for wgms_id in id_list:
        try:
            lon = new_pda[new_pda.WGMS_ID == wgms_id].LONGITUDE.iloc[0]
            lat = new_pda[new_pda.WGMS_ID == wgms_id].LATITUDE.iloc[0]
            point = Point(lon,lat)
        except IndexError: # FoG entry already present
            print(name,wgms_id)
            continue
        
        for feature in fc:
            if shape(feature['geometry']).contains(point):
                new_pdd.loc[new_pdd[new_pdd.WGMS_ID == wgms_id].index,'NAME'] = name + ' ' + feature['properties']['HASC_1'].split('.')[1]


SULZ 419
HANGENDE 3424

Sort the columns in order to be able to insert this easily into the data submission form


In [98]:
new_pda = new_pda[['POLTITICAL_UNIT', 'NAME', 'WGMS_ID', 'RIVER_BASIN', 'FREE_POSITION', 'LOCAL_CODE', 'LOCAL_PSFG', 'GEN_LOCATION', 'SPEC_LOCATION', 'LATITUDE', 'LONGITUDE', 'PRIM_CLASSIFIC', 'FORM', 'FRONTAL_CHARS', 'EXPOS_ACC_AREA', 'EXPOS_ABL_AREA', 'PARENT_GLACIER', 'REMARKS', 'REGION', 'SUBREGION', 'GLIMS_ID']]
new_pdb = new_pdb[['POLITICAL_UNIT', 'NAME', 'WGMS_ID', 'YEAR', 'HIGHEST_ELEVATION', 'MEDIAN_ELEVATION', 'LOWEST_ELEVATION', 'ELEVATION_UNC', 'LENGTH', 'LENGTH_UNC', 'AREA', 'AREA_UNC', 'SURVEY_DATE', 'SURVEY_PLATFORM_METHOD', 'INVESTIGATOR', 'SPONS_AGENCY', 'REFERENCE', 'REMARKS']]
new_pdd = new_pdd[['POLITICAL_UNIT', 'NAME', 'WGMS_ID', 'YEAR', 'LOWER_BOUND', 'UPPER_BOUND', 'AREA_SURVEY_YEAR', 'AREA_CHANGE', 'AREA_CHANGE_UNC', 'THICKNESS_CHG', 'THICKNESS_CHG_UNC', 'VOLUME_CHANGE', 'VOLUME_CHANGE_UNC', 'SURVEY_DATE', 'SD_PLATFORM_METHOD', 'REFERENCE_DATE', 'RD_PLATFORM_METHOD', 'INVESTIGATOR', 'SPONS_AGENCY', 'REFERENCE', 'REMARKS']]

Convert to Excel format


In [99]:
new_pda.to_excel('c:\\users\\jlandman\\Desktop\\PDA_submission'+currdate+'.xlsx', index=False)

In [100]:
new_pdb.to_excel('c:\\users\\jlandman\\Desktop\\PDB_submission'+currdate+'.xlsx', index=False)

In [101]:
new_pdd.to_excel('c:\\users\\jlandman\\Desktop\\PDD_submission'+currdate+'.xlsx', index=False)

In [102]:
len(list(set(links.keys())-set(new_pda.NAME.values)))


Out[102]:
153

In [103]:
len(list(set(new_pda.NAME.values)-set([name_to_FoG(i,name_adjust_FoG, hot_list, special_names) for i in listlist])))


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-103-552a9b995015> in <module>()
----> 1 len(list(set(new_pda.NAME.values)-set([name_to_FoG(i,name_adjust_FoG, hot_list, special_names) for i in listlist])))

NameError: name 'listlist' is not defined

Links to RGI

Check is point is within an RGI polygon


In [104]:
rgi = fiona.open(rgi_CE)
rgi_links = new_pda.copy()
rgi_links_present = pda.copy()
rgi_links['RGI_ID'] = np.nan
rgi_links_present['RGI_ID'] = np.nan

for fog_id in rgi_links.WGMS_ID.values:
    ix = rgi_links.index[rgi_links.WGMS_ID == fog_id]
    print(fog_id)
    lon = rgi_links[rgi_links.WGMS_ID == fog_id].LONGITUDE.iloc[0]
    lat = rgi_links[rgi_links.WGMS_ID == fog_id].LATITUDE.iloc[0]
    print(lon, lat)
    point = Point(lon,lat)

    for feature in rgi:
        if shape(feature['geometry']).contains(point):
            print(feature['properties']['RGIId'], ix)
            rgi_links.loc[ix, 'RGI_ID'] = feature['properties']['RGIId']

            
rgi_links.to_csv('sgi2010_rgi_links'+currdate+'.csv')


4585
7.98894 46.1716
RGI50-11.02463 Int64Index([0], dtype='int64')
4586
7.99537 46.167099
RGI50-11.02464 Int64Index([1], dtype='int64')
4587
7.98899 46.176102
4588
8.89793 46.846401
RGI50-11.00843 Int64Index([3], dtype='int64')
4589
8.91915 46.855099
4590
8.8871 46.834
RGI50-11.00878 Int64Index([5], dtype='int64')
4591
8.91128 46.855202
RGI50-11.00817 Int64Index([6], dtype='int64')
4592
7.32254 45.966
RGI50-11.02869 Int64Index([7], dtype='int64')
4593
7.32382 45.970501
RGI50-11.02860 Int64Index([8], dtype='int64')
4594
7.32511 45.974098
RGI50-11.02843 Int64Index([9], dtype='int64')
4595
7.31739 45.962398
RGI50-11.02889 Int64Index([10], dtype='int64')
4596
9.89709 46.411701
RGI50-11.02011 Int64Index([11], dtype='int64')
4597
9.8732 46.401402
RGI50-11.02051 Int64Index([12], dtype='int64')
4598
7.92056 46.0532
4599
7.90374 46.050598
RGI50-11.02690 Int64Index([14], dtype='int64')
4600
10.352 46.765499
RGI50-11.01058 Int64Index([15], dtype='int64')
4601
7.05444 45.9357
RGI50-11.02921 Int64Index([16], dtype='int64')
4602
7.05308 45.946499
RGI50-11.02897 Int64Index([17], dtype='int64')
4603
7.52706 46.404999
RGI50-11.02000 Int64Index([18], dtype='int64')
4604
7.54659 46.415798
RGI50-11.01943 Int64Index([19], dtype='int64')
4605
9.38415 46.5116
4606
9.36721 46.511902
RGI50-11.01628 Int64Index([21], dtype='int64')
4607
7.51662 46.379799
RGI50-11.02072 Int64Index([22], dtype='int64')
4608
7.48023 46.382599
RGI50-11.02131 Int64Index([23], dtype='int64')
4609
7.54523 46.3843
4610
8.10377 46.562302
RGI50-11.01346 Int64Index([25], dtype='int64')
4611
8.025621 46.5718
RGI50-11.01346 Int64Index([26], dtype='int64')
4612
8.81762 46.8339
RGI50-11.00884 Int64Index([27], dtype='int64')
4613
8.83885 46.843601
4614
8.93378 46.6264
RGI50-11.01283 Int64Index([29], dtype='int64')
4615
8.92085 46.6311
4616
7.32876 46.080299
RGI50-11.02631 Int64Index([31], dtype='int64')
4617
7.32228 46.087502
RGI50-11.02610 Int64Index([32], dtype='int64')
4618
7.3223 46.079399
4619
8.0804 46.241299
RGI50-11.02389 Int64Index([34], dtype='int64')
4620
8.07647 46.237701
RGI50-11.02389 Int64Index([35], dtype='int64')
4621
7.9168 46.0658
RGI50-11.02635 Int64Index([36], dtype='int64')
4622
7.8909 46.059601
RGI50-11.02635 Int64Index([37], dtype='int64')
4623
7.87155 46.064201
RGI50-11.02607 Int64Index([38], dtype='int64')
4624
7.87294 46.075901
RGI50-11.02607 Int64Index([39], dtype='int64')
4625
7.86785 46.0867
RGI50-11.02607 Int64Index([40], dtype='int64')
4626
7.87832 46.102798
RGI50-11.02594 Int64Index([41], dtype='int64')
4627
7.83847 46.487999
RGI50-11.01622 Int64Index([42], dtype='int64')
4628
7.84121 46.506901
RGI50-11.01638 Int64Index([43], dtype='int64')
4629
7.84904 46.507801
4630
7.6754 46.426399
RGI50-11.01936 Int64Index([45], dtype='int64')
4631
7.67412 46.430901
4632
7.68191 46.4273
RGI50-11.01937 Int64Index([47], dtype='int64')
4633
8.44935 46.769402
RGI50-11.01046 Int64Index([48], dtype='int64')
4634
8.46511 46.771999
RGI50-11.01054 Int64Index([49], dtype='int64')
4635
8.08986 46.490398
RGI50-11.01710 Int64Index([50], dtype='int64')
4636
8.08212 46.4968
RGI50-11.01690 Int64Index([51], dtype='int64')
4637
9.99469 46.881199
4638
10.0202 46.8932
RGI50-11.00734 Int64Index([53], dtype='int64')
4639
10.0795 46.843201
RGI50-11.00850 Int64Index([54], dtype='int64')
4640
10.0424 46.836899
RGI50-11.00869 Int64Index([55], dtype='int64')
4641
10.0031 46.836899
4642
10.0633 46.834598
RGI50-11.00870 Int64Index([57], dtype='int64')
4643
10.0572 46.8167
4644
10.0413 46.8144
4645
9.96964 46.767399
RGI50-11.01063 Int64Index([60], dtype='int64')
4646
9.94573 46.816502
4647
9.90709 46.688702
RGI50-11.01194 Int64Index([62], dtype='int64')
4648
9.89509 46.683498
4649
9.83079 46.6786
RGI50-11.01211 Int64Index([64], dtype='int64')
4650
9.86735 46.619301
4651
9.84172 46.601002
RGI50-11.01350 Int64Index([66], dtype='int64')
4652
9.83512 46.5993
4653
9.82733 46.600399
4654
9.71506 46.600899
RGI50-11.01354 Int64Index([69], dtype='int64')
4655
9.70884 46.6082
4656
9.69968 46.545399
RGI50-11.01503 Int64Index([71], dtype='int64')
4657
9.69071 46.549198
4658
9.57282 46.470501
4659
9.56153 46.481499
RGI50-11.01787 Int64Index([74], dtype='int64')
4660
9.56561 46.485901
4661
9.47236 46.535301
RGI50-11.01541 Int64Index([76], dtype='int64')
4662
9.5255 46.492901
4663
9.58591 46.4063
RGI50-11.02057 Int64Index([78], dtype='int64')
4664
9.49474 46.369301
4665
9.46533 46.3824
RGI50-11.02160 Int64Index([80], dtype='int64')
4666
9.4696 46.3923
4667
9.47124 46.401199
4668
9.42197 46.476799
4669
9.41302 46.4814
4670
9.36242 46.523701
4671
9.39346 46.516899
4672
9.35953 46.515701
RGI50-11.01610 Int64Index([87], dtype='int64')
4673
9.358 46.509399
4674
9.29269 46.5051
4675
9.27803 46.4954
RGI50-11.01731 Int64Index([90], dtype='int64')
4676
9.26766 46.458698
RGI50-11.01853 Int64Index([91], dtype='int64')
4677
9.13198 46.491402
4678
9.12136 46.485199
RGI50-11.01767 Int64Index([93], dtype='int64')
4679
9.09787 46.483799
RGI50-11.01769 Int64Index([94], dtype='int64')
4680
9.04491 46.499
RGI50-11.01699 Int64Index([95], dtype='int64')
4681
9.10912 46.510601
RGI50-11.01633 Int64Index([96], dtype='int64')
4682
9.15948 46.5369
RGI50-11.01538 Int64Index([97], dtype='int64')
4683
9.13981 46.5336
RGI50-11.01527 Int64Index([98], dtype='int64')
4684
9.13123 46.5508
4685
9.12528 46.5275
RGI50-11.01569 Int64Index([100], dtype='int64')
4686
9.11605 46.523998
4687
9.1107 46.5196
4688
9.09872 46.5117
4689
9.08046 46.511002
RGI50-11.01630 Int64Index([104], dtype='int64')
4690
9.07012 46.513901
4691
9.06257 46.522999
RGI50-11.01557 Int64Index([106], dtype='int64')
4692
9.05053 46.512402
RGI50-11.01639 Int64Index([107], dtype='int64')
4693
9.027 46.509998
RGI50-11.01627 Int64Index([108], dtype='int64')
4694
9.02351 46.524399
4695
9.01981 46.5317
4696
9.02383 46.535198
4697
9.02531 46.5415
4698
9.02842 46.558601
4699
9.05343 46.522202
4700
9.03987 46.592602
4701
9.05653 46.5825
4702
9.02453 46.6036
RGI50-11.01357 Int64Index([117], dtype='int64')
4703
8.97235 46.605202
4704
8.95346 46.629799
4705
8.96257 46.6287
RGI50-11.01284 Int64Index([120], dtype='int64')
4706
8.9796 46.630299
RGI50-11.01281 Int64Index([121], dtype='int64')
4707
8.9745 46.634899
RGI50-11.01263 Int64Index([122], dtype='int64')
4708
8.96014 46.635101
RGI50-11.01266 Int64Index([123], dtype='int64')
4709
8.94841 46.636101
4710
8.91506 46.658199
4711
8.9009 46.617901
RGI50-11.01293 Int64Index([126], dtype='int64')
4712
8.87472 46.615501
RGI50-11.01321 Int64Index([127], dtype='int64')
4713
8.87849 46.610001
RGI50-11.01333 Int64Index([128], dtype='int64')
4714
8.8685 46.577801
RGI50-11.01428 Int64Index([129], dtype='int64')
4715
8.85923 46.572498
RGI50-11.01439 Int64Index([130], dtype='int64')
4716
8.83824 46.568298
RGI50-11.01444 Int64Index([131], dtype='int64')
4717
8.83589 46.578201
RGI50-11.01425 Int64Index([132], dtype='int64')
4718
8.75887 46.576401
RGI50-11.01434 Int64Index([133], dtype='int64')
4719
8.77384 46.601398
4720
8.77262 46.605
RGI50-11.01349 Int64Index([135], dtype='int64')
4721
8.79109 46.6129
4722
8.78994 46.619202
RGI50-11.01304 Int64Index([137], dtype='int64')
4723
8.9142 46.626701
RGI50-11.01280 Int64Index([138], dtype='int64')
4724
8.88784 46.618
RGI50-11.01302 Int64Index([139], dtype='int64')
4725
8.87873 46.619
RGI50-11.01315 Int64Index([140], dtype='int64')
4726
8.83745 46.5881
4727
8.78988 46.616501
4728
8.79141 46.6255
RGI50-11.01297 Int64Index([143], dtype='int64')
4729
8.78207 46.6175
RGI50-11.01308 Int64Index([144], dtype='int64')
4730
8.77012 46.6096
4731
8.77401 46.608601
4732
8.74056 46.574799
4733
8.78742 46.622898
4734
8.764749 46.603298
RGI50-11.01364 Int64Index([149], dtype='int64')
4735
8.73304 46.587502
RGI50-11.01395 Int64Index([150], dtype='int64')
4736
8.725 46.578602
4737
8.71317 46.5751
4738
8.70196 46.597801
4739
8.70156 46.5807
4740
8.69238 46.691399
4741
8.76028 46.741001
4742
8.77068 46.738201
4743
8.69388 46.699501
RGI50-11.01175 Int64Index([158], dtype='int64')
4744
8.70177 46.701199
4745
8.71482 46.700199
4746
8.77319 46.7337
4747
8.777 46.729099
4748
8.77558 46.724701
4749
8.81248 46.735001
RGI50-11.01134 Int64Index([164], dtype='int64')
4750
8.78336 46.721901
4751
8.81773 46.735901
4752
8.8257 46.740299
4753
8.81654 46.740398
4754
8.8223 46.761002
RGI50-11.01089 Int64Index([169], dtype='int64')
4755
8.82499 46.763699
4756
8.83211 46.786098
RGI50-11.01010 Int64Index([171], dtype='int64')
4757
8.84006 46.7896
RGI50-11.00998 Int64Index([172], dtype='int64')
4758
8.8583 46.785702
RGI50-11.01015 Int64Index([173], dtype='int64')
4759
8.85718 46.792999
RGI50-11.00999 Int64Index([174], dtype='int64')
4760
8.85335 46.7966
RGI50-11.00990 Int64Index([175], dtype='int64')
4761
8.86271 46.8037
RGI50-11.00973 Int64Index([176], dtype='int64')
4762
8.87714 46.804401
RGI50-11.00969 Int64Index([177], dtype='int64')
4763
8.90729 46.804901
4764
8.92004 46.792198
RGI50-11.00988 Int64Index([179], dtype='int64')
4765
8.93027 46.783001
4766
8.9314 46.776699
RGI50-11.01050 Int64Index([181], dtype='int64')
4767
8.938 46.7784
RGI50-11.01043 Int64Index([182], dtype='int64')
4768
8.93951 46.785599
4769
8.93578 46.7929
RGI50-11.00995 Int64Index([184], dtype='int64')
4770
8.9359 46.797298
RGI50-11.00987 Int64Index([185], dtype='int64')
4771
8.98662 46.7841
RGI50-11.01028 Int64Index([186], dtype='int64')
4772
8.99054 46.784
4773
8.97753 46.7869
RGI50-11.01011 Int64Index([188], dtype='int64')
4774
8.97111 46.7915
4775
8.96469 46.796101
RGI50-11.00989 Int64Index([190], dtype='int64')
4776
8.97802 46.804001
RGI50-11.00974 Int64Index([191], dtype='int64')
4777
9.04062 46.8382
4778
9.05172 46.858799
RGI50-11.00803 Int64Index([193], dtype='int64')
4779
9.06117 46.8676
4780
9.07445 46.872799
RGI50-11.00777 Int64Index([195], dtype='int64')
4781
8.98588 46.803902
4782
9.14911 46.869
RGI50-11.00794 Int64Index([197], dtype='int64')
4783
9.25019 46.909802
RGI50-11.00695 Int64Index([198], dtype='int64')
4784
9.32989 46.898602
4785
9.34554 46.895599
4786
9.33149 46.9067
4787
9.25855 46.924
RGI50-11.00685 Int64Index([202], dtype='int64')
4788
9.34489 47.247398
4789
9.3437 47.251099
4790
9.14794 46.8736
RGI50-11.00775 Int64Index([205], dtype='int64')
4791
9.07341 46.881802
RGI50-11.00761 Int64Index([206], dtype='int64')
4792
9.07858 46.879101
4793
9.09028 46.918499
4794
9.03433 46.847302
4795
8.98434 46.841702
RGI50-11.00867 Int64Index([210], dtype='int64')
4796
8.92575 46.8092
RGI50-11.00951 Int64Index([211], dtype='int64')
4797
8.92325 46.813702
RGI50-11.00931 Int64Index([212], dtype='int64')
4798
8.93766 46.8135
4799
8.93779 46.818001
RGI50-11.00926 Int64Index([214], dtype='int64')
4800
8.92751 46.825298
RGI50-11.00911 Int64Index([215], dtype='int64')
4801
8.90501 46.817501
RGI50-11.00933 Int64Index([216], dtype='int64')
4802
8.88795 46.816898
RGI50-11.00923 Int64Index([217], dtype='int64')
4803
8.91809 46.864201
RGI50-11.00800 Int64Index([218], dtype='int64')
4804
8.91287 46.817402
RGI50-11.00930 Int64Index([219], dtype='int64')
4805
8.8982 46.8563
RGI50-11.00824 Int64Index([220], dtype='int64')
4806
8.88895 46.853699
RGI50-11.00835 Int64Index([221], dtype='int64')
4807
8.87164 46.844101
RGI50-11.00861 Int64Index([222], dtype='int64')
4808
8.85458 46.843399
RGI50-11.00857 Int64Index([223], dtype='int64')
4809
8.86792 46.8522
RGI50-11.00826 Int64Index([224], dtype='int64')
4810
8.9485 46.966301
RGI50-11.00633 Int64Index([225], dtype='int64')
4811
8.9858 46.983799
RGI50-11.00621 Int64Index([226], dtype='int64')
4812
9.00312 46.991699
RGI50-11.00596 Int64Index([227], dtype='int64')
4813
9.00336 46.999802
RGI50-11.00558 Int64Index([228], dtype='int64')
4814
9.02203 47.008499
RGI50-11.00536 Int64Index([229], dtype='int64')
4815
8.9847 46.991001
4816
8.94075 46.924099
4817
8.80171 46.8269
RGI50-11.00899 Int64Index([232], dtype='int64')
4818
8.7964 46.824299
RGI50-11.00913 Int64Index([233], dtype='int64')
4819
8.79375 46.823002
4820
8.77919 46.817299
4821
8.75285 46.812199
RGI50-11.00949 Int64Index([236], dtype='int64')
4822
8.72904 46.802601
RGI50-11.00972 Int64Index([237], dtype='int64')
4823
8.74351 46.8051
RGI50-11.00954 Int64Index([238], dtype='int64')
4824
8.77097 46.803001
RGI50-11.00963 Int64Index([239], dtype='int64')
4825
8.7882 46.810902
RGI50-11.00924 Int64Index([240], dtype='int64')
4826
8.81077 46.8223
RGI50-11.00906 Int64Index([241], dtype='int64')
4827
8.82647 46.821201
RGI50-11.00907 Int64Index([242], dtype='int64')
4828
8.82182 46.7934
RGI50-11.00997 Int64Index([243], dtype='int64')
4829
8.82545 46.7817
RGI50-11.01020 Int64Index([244], dtype='int64')
4830
8.82249 46.7682
RGI50-11.01068 Int64Index([245], dtype='int64')
4831
8.78137 46.747101
RGI50-11.01113 Int64Index([246], dtype='int64')
4832
8.77232 46.751701
RGI50-11.01104 Int64Index([247], dtype='int64')
4833
8.76307 46.7482
RGI50-11.01114 Int64Index([248], dtype='int64')
4834
8.75777 46.745602
4835
8.75245 46.742001
4836
8.71231 46.7047
RGI50-11.01168 Int64Index([251], dtype='int64')
4837
8.6855 46.732899
RGI50-11.01136 Int64Index([252], dtype='int64')
4838
8.69795 46.705799
RGI50-11.01167 Int64Index([253], dtype='int64')
4839
8.69151 46.7103
4840
8.68946 46.7346
RGI50-11.01135 Int64Index([255], dtype='int64')
4841
8.68558 46.7365
RGI50-11.01133 Int64Index([256], dtype='int64')
4842
8.68313 46.743698
4843
8.68147 46.728401
4844
8.64116 46.681198
4845
8.63992 46.683899
4846
8.6437 46.677601
4847
8.67673 46.579102
4848
8.62971 46.5769
RGI50-11.01430 Int64Index([263], dtype='int64')
4849
8.61807 46.5816
RGI50-11.01394 Int64Index([264], dtype='int64')
4850
8.61305 46.590599
4851
8.6238 46.6049
4852
8.61336 46.605
RGI50-11.01344 Int64Index([267], dtype='int64')
4853
8.61013 46.576199
4854
8.52071 46.5411
RGI50-11.01518 Int64Index([269], dtype='int64')
4855
8.46208 46.543499
RGI50-11.01510 Int64Index([270], dtype='int64')
4856
8.43728 46.541901
RGI50-11.01514 Int64Index([271], dtype='int64')
4857
8.43212 46.544601
RGI50-11.01502 Int64Index([272], dtype='int64')
4858
8.42959 46.549198
RGI50-11.01496 Int64Index([273], dtype='int64')
4859
8.42573 46.551899
RGI50-11.01493 Int64Index([274], dtype='int64')
4860
8.4107 46.586201
4861
8.41207 46.589802
4862
8.41605 46.593399
RGI50-11.01382 Int64Index([277], dtype='int64')
4863
8.42004 46.597801
RGI50-11.01338 Int64Index([278], dtype='int64')
4864
8.43995 46.6157
4865
8.44651 46.617401
4866
8.50144 46.622299
RGI50-11.01301 Int64Index([281], dtype='int64')
4867
8.51071 46.628502
4868
8.67023 46.580101
4869
8.61052 46.5942
4870
8.60908 46.587898
4871
8.59052 46.5746
4872
8.517 46.551102
4873
8.49227 46.620602
4874
8.5252 46.634701
4875
8.50286 46.627701
RGI50-11.01291 Int64Index([290], dtype='int64')
4876
8.4937 46.6269
RGI50-11.01287 Int64Index([291], dtype='int64')
4877
8.47277 46.625301
RGI50-11.01294 Int64Index([292], dtype='int64')
4878
8.42369 46.654499
RGI50-11.01231 Int64Index([293], dtype='int64')
4879
8.41193 46.654598
4880
8.41907 46.687801
RGI50-11.01199 Int64Index([295], dtype='int64')
4881
8.43859 46.683102
RGI50-11.01206 Int64Index([296], dtype='int64')
4882
8.44906 46.683899
RGI50-11.01203 Int64Index([297], dtype='int64')
4883
8.46074 46.679298
RGI50-11.01212 Int64Index([298], dtype='int64')
4884
8.47627 46.671101
RGI50-11.01218 Int64Index([299], dtype='int64')
4885
8.46478 46.6856
RGI50-11.01187 Int64Index([300], dtype='int64')
4886
8.48363 46.714199
RGI50-11.01151 Int64Index([301], dtype='int64')
4887
8.49005 46.707901
4888
8.53008 46.682301
4889
8.52632 46.690399
RGI50-11.01197 Int64Index([304], dtype='int64')
4890
8.51472 46.698601
4891
8.50065 46.715
RGI50-11.01146 Int64Index([306], dtype='int64')
4892
8.48125 46.725899
RGI50-11.01141 Int64Index([307], dtype='int64')
4893
8.47739 46.729599
RGI50-11.01137 Int64Index([308], dtype='int64')
4894
8.48634 46.7187
4895
8.47846 46.716999
RGI50-11.01145 Int64Index([310], dtype='int64')
4896
8.45096 46.715401
RGI50-11.01148 Int64Index([311], dtype='int64')
4897
8.44625 46.743301
4898
8.44638 46.7505
RGI50-11.01108 Int64Index([313], dtype='int64')
4899
8.4518 46.760399
RGI50-11.01085 Int64Index([314], dtype='int64')
4900
8.45967 46.7612
RGI50-11.01085 Int64Index([315], dtype='int64')
4901
8.46632 46.766602
RGI50-11.01070 Int64Index([316], dtype='int64')
4902
8.47278 46.762001
4903
8.47936 46.763699
RGI50-11.01076 Int64Index([318], dtype='int64')
4904
8.48603 46.77
4905
8.4939 46.770802
RGI50-11.01062 Int64Index([320], dtype='int64')
4906
8.51886 46.775101
RGI50-11.01042 Int64Index([321], dtype='int64')
4907
8.53323 46.773102
RGI50-11.01055 Int64Index([322], dtype='int64')
4908
8.53826 46.763199
RGI50-11.01078 Int64Index([323], dtype='int64')
4909
8.54097 46.7677
RGI50-11.01061 Int64Index([324], dtype='int64')
4910
8.54248 46.7775
RGI50-11.01044 Int64Index([325], dtype='int64')
4911
8.56216 46.779098
RGI50-11.01032 Int64Index([326], dtype='int64')
4912
8.57762 46.7673
4913
8.57525 46.778999
4914
8.5423 46.6408
4915
8.52781 46.634602
4916
8.51999 46.635601
4917
8.514749 46.6348
4918
8.50824 46.6357
4919
8.42756 46.651699
RGI50-11.01234 Int64Index([334], dtype='int64')
4920
8.41225 46.6726
RGI50-11.01215 Int64Index([335], dtype='int64')
4921
8.43209 46.685001
RGI50-11.01204 Int64Index([336], dtype='int64')
4922
8.46585 46.673
4923
8.47881 46.6675
RGI50-11.01221 Int64Index([338], dtype='int64')
4924
8.465 46.6973
RGI50-11.01177 Int64Index([339], dtype='int64')
4925
8.49162 46.721298
RGI50-11.01142 Int64Index([340], dtype='int64')
4926
8.44645 46.754101
RGI50-11.01101 Int64Index([341], dtype='int64')
4927
8.48337 46.7682
RGI50-11.01073 Int64Index([342], dtype='int64')
4928
8.49791 46.775299
RGI50-11.01053 Int64Index([343], dtype='int64')
4929
8.50702 46.772499
RGI50-11.01060 Int64Index([344], dtype='int64')
4930
8.50842 46.777
RGI50-11.01039 Int64Index([345], dtype='int64')
4931
8.53579 46.770401
4932
8.54869 46.761299
4933
8.57779 46.775398
4934
8.58994 46.7924
4935
8.5754 46.786202
RGI50-11.01016 Int64Index([350], dtype='int64')
4936
8.57011 46.7836
RGI50-11.01027 Int64Index([351], dtype='int64')
4937
8.56231 46.786301
RGI50-11.01013 Int64Index([352], dtype='int64')
4938
8.54265 46.785599
RGI50-11.00994 Int64Index([353], dtype='int64')
4939
8.55261 46.8242
4940
8.55064 46.855701
RGI50-11.00821 Int64Index([355], dtype='int64')
4941
8.54034 46.8648
RGI50-11.00796 Int64Index([356], dtype='int64')
4942
8.53341 46.846901
RGI50-11.00830 Int64Index([357], dtype='int64')
4943
8.50858 46.8507
RGI50-11.00828 Int64Index([358], dtype='int64')
4944
8.4916 46.8545
RGI50-11.00827 Int64Index([359], dtype='int64')
4945
8.48376 46.855499
4946
8.47332 46.858299
4947
8.58191 46.784302
4948
8.55832 46.783699
RGI50-11.01007 Int64Index([363], dtype='int64')
4949
8.53232 46.7929
RGI50-11.00964 Int64Index([364], dtype='int64')
4950
8.54023 46.859402
RGI50-11.00813 Int64Index([365], dtype='int64')
4951
8.48833 46.821201
4952
8.52604 46.8065
4953
8.52184 46.792999
4954
8.51248 46.783199
RGI50-11.01006 Int64Index([369], dtype='int64')
4955
8.49929 46.778801
RGI50-11.01034 Int64Index([370], dtype='int64')
4956
8.4861 46.773602
RGI50-11.01049 Int64Index([371], dtype='int64')
4957
8.47688 46.771
RGI50-11.01048 Int64Index([372], dtype='int64')
4958
8.44293 46.775799
RGI50-11.01030 Int64Index([373], dtype='int64')
4959
8.43384 46.7803
RGI50-11.01019 Int64Index([374], dtype='int64')
4960
8.40362 46.7743
RGI50-11.01051 Int64Index([375], dtype='int64')
4961
8.39956 46.767101
4962
8.53268 46.810902
4963
8.51777 46.7859
RGI50-11.01006 Int64Index([378], dtype='int64')
4964
8.50718 46.780602
RGI50-11.01006 Int64Index([379], dtype='int64')
4965
8.49273 46.778
RGI50-11.01033 Int64Index([380], dtype='int64')
4966
8.42987 46.777698
RGI50-11.01019 Int64Index([381], dtype='int64')
4967
8.42717 46.773201
RGI50-11.01038 Int64Index([382], dtype='int64')
4968
8.38645 46.7663
RGI50-11.01072 Int64Index([383], dtype='int64')
4969
8.37067 46.762001
4970
8.41532 46.769699
RGI50-11.01057 Int64Index([385], dtype='int64')
4971
8.43875 46.762299
RGI50-11.01067 Int64Index([386], dtype='int64')
4972
8.42675 46.750702
RGI50-11.01107 Int64Index([387], dtype='int64')
4973
8.43326 46.748901
RGI50-11.01112 Int64Index([388], dtype='int64')
4974
8.43981 46.748798
RGI50-11.01109 Int64Index([389], dtype='int64')
4975
8.42838 46.696701
RGI50-11.01144 Int64Index([390], dtype='int64')
4976
8.38937 46.708698
RGI50-11.01159 Int64Index([391], dtype='int64')
4977
8.38811 46.711498
RGI50-11.01152 Int64Index([392], dtype='int64')
4978
8.37898 46.713299
RGI50-11.01150 Int64Index([393], dtype='int64')
4979
8.37117 46.715198
4980
8.39305 46.695202
RGI50-11.01176 Int64Index([395], dtype='int64')
4981
8.38897 46.686298
RGI50-11.01202 Int64Index([396], dtype='int64')
4982
8.38366 46.681801
RGI50-11.01209 Int64Index([397], dtype='int64')
4983
8.39264 46.671799
RGI50-11.01219 Int64Index([398], dtype='int64')
4984
8.40801 46.654598
RGI50-11.01233 Int64Index([399], dtype='int64')
4985
8.31845 46.690399
RGI50-11.01196 Int64Index([400], dtype='int64')
4986
8.31723 46.695801
RGI50-11.01178 Int64Index([401], dtype='int64')
4987
8.42843 46.7705
4988
8.43073 46.753399
RGI50-11.01103 Int64Index([403], dtype='int64')
4989
8.36721 46.713402
4990
8.37241 46.711601
4991
8.38533 46.702499
4992
8.38023 46.709702
RGI50-11.01158 Int64Index([407], dtype='int64')
4993
8.34956 46.6749
4994
8.33649 46.674999
4995
8.33155 46.6921
RGI50-11.01191 Int64Index([410], dtype='int64')
4996
8.32506 46.6949
RGI50-11.01186 Int64Index([411], dtype='int64')
4997
8.30806 46.695
4998
8.30154 46.6959
4999
8.31184 46.686001
5000
8.32332 46.6688
RGI50-11.01220 Int64Index([415], dtype='int64')
5001
8.33753 46.658798
5002
8.33607 46.649799
5003
8.35942 46.639702
RGI50-11.01255 Int64Index([418], dtype='int64')
5004
8.36582 46.6325
RGI50-11.01261 Int64Index([419], dtype='int64')
5005
8.36694 46.6217
5006
8.36545 46.610901
RGI50-11.01313 Int64Index([421], dtype='int64')
5007
8.35753 46.605598
5008
8.35874 46.600102
RGI50-11.01363 Int64Index([423], dtype='int64')
5009
8.35848 46.5849
5010
8.3334 46.646198
5011
8.35819 46.644199
RGI50-11.01250 Int64Index([426], dtype='int64')
5012
8.34399 46.654202
RGI50-11.01229 Int64Index([427], dtype='int64')
5013
8.23631 46.529098
RGI50-11.01552 Int64Index([428], dtype='int64')
5014
8.19481 46.5438
RGI50-11.01500 Int64Index([429], dtype='int64')
5015
8.23405 46.552502
5016
8.22491 46.551701
RGI50-11.01485 Int64Index([431], dtype='int64')
5017
8.20139 46.548199
RGI50-11.01489 Int64Index([432], dtype='int64')
5018
8.19225 46.547401
RGI50-11.01495 Int64Index([433], dtype='int64')
5019
8.17784 46.542099
RGI50-11.01501 Int64Index([434], dtype='int64')
5020
8.13755 46.5522
RGI50-11.01483 Int64Index([435], dtype='int64')
5021
8.13005 46.577499
RGI50-11.01414 Int64Index([436], dtype='int64')
5022
8.13394 46.5756
RGI50-11.01413 Int64Index([437], dtype='int64')
5023
8.13912 46.572899
RGI50-11.01433 Int64Index([438], dtype='int64')
5024
8.1495 46.568401
RGI50-11.01437 Int64Index([439], dtype='int64')
5025
8.15594 46.562
5026
8.15857 46.563801
RGI50-11.01447 Int64Index([441], dtype='int64')
5027
8.15127 46.603401
RGI50-11.01341 Int64Index([442], dtype='int64')
5028
8.15906 46.6007
RGI50-11.01353 Int64Index([443], dtype='int64')
5029
8.19539 46.585201
RGI50-11.01389 Int64Index([444], dtype='int64')
5030
8.28399 46.577301
5031
8.27619 46.579201
5032
8.24763 46.588402
RGI50-11.01378 Int64Index([447], dtype='int64')
5033
8.28999 46.543999
5034
8.27423 46.5369
5035
8.22848 46.528301
5036
8.22065 46.527401
RGI50-11.01560 Int64Index([451], dtype='int64')
5037
8.21283 46.5275
5038
8.21706 46.5499
RGI50-11.01485 Int64Index([453], dtype='int64')
5039
8.19368 46.5564
5040
8.18047 46.5439
RGI50-11.01499 Int64Index([455], dtype='int64')
5041
8.1556 46.5368
RGI50-11.01328 Int64Index([456], dtype='int64')
RGI50-11.01528 Int64Index([456], dtype='int64')
5042
8.13343 46.536098
RGI50-11.01535 Int64Index([457], dtype='int64')
5043
8.15864 46.569199
RGI50-11.01435 Int64Index([458], dtype='int64')
5044
8.16163 46.598
RGI50-11.01369 Int64Index([459], dtype='int64')
5045
8.16942 46.594299
RGI50-11.01375 Int64Index([460], dtype='int64')
5046
8.18884 46.583401
RGI50-11.01399 Int64Index([461], dtype='int64')
5047
8.20323 46.585998
RGI50-11.01388 Int64Index([462], dtype='int64')
5048
8.21104 46.584999
RGI50-11.01392 Int64Index([463], dtype='int64')
5049
8.21887 46.584999
RGI50-11.01393 Int64Index([464], dtype='int64')
5050
8.24101 46.5821
5051
8.24492 46.5821
5052
8.30099 46.579899
5053
8.29444 46.578201
5054
8.27745 46.5765
5055
8.26317 46.5811
RGI50-11.01409 Int64Index([470], dtype='int64')
5056
8.28558 46.595299
5057
8.27644 46.595402
5058
8.27127 46.598099
5059
8.24776 46.597401
RGI50-11.01335 Int64Index([474], dtype='int64')
5060
8.25324 46.614399
RGI50-11.01316 Int64Index([475], dtype='int64')
5061
8.25726 46.621601
RGI50-11.01288 Int64Index([476], dtype='int64')
5062
8.26785 46.630501
RGI50-11.01269 Int64Index([477], dtype='int64')
5063
8.24465 46.651402
5064
8.24796 46.610901
5065
8.25979 46.6162
RGI50-11.01311 Int64Index([480], dtype='int64')
5066
8.26526 46.632301
5067
8.23351 46.604698
5068
8.22939 46.590302
RGI50-11.01362 Int64Index([483], dtype='int64')
5069
8.21243 46.590401
RGI50-11.01358 Int64Index([484], dtype='int64')
5070
8.16945 46.597
5071
8.16991 46.631199
RGI50-11.01271 Int64Index([486], dtype='int64')
5072
8.18946 46.628399
RGI50-11.01279 Int64Index([487], dtype='int64')
5073
8.1713 46.637501
RGI50-11.01259 Int64Index([488], dtype='int64')
5074
8.18953 46.6329
RGI50-11.01272 Int64Index([489], dtype='int64')
5075
8.25336 46.622501
5076
8.24944 46.622601
5077
8.24938 46.618099
RGI50-11.01306 Int64Index([492], dtype='int64')
5078
8.24543 46.616299
5079
8.24276 46.611801
5080
8.24272 46.6091
RGI50-11.01331 Int64Index([495], dtype='int64')
5081
8.18289 46.624802
RGI50-11.01289 Int64Index([496], dtype='int64')
5082
8.188209 46.632
5083
8.16353 46.641998
RGI50-11.01248 Int64Index([498], dtype='int64')
5084
8.16755 46.6492
RGI50-11.01241 Int64Index([499], dtype='int64')
5085
8.16626 46.651001
RGI50-11.01236 Int64Index([500], dtype='int64')
5086
8.18212 46.664398
RGI50-11.01223 Int64Index([501], dtype='int64')
5087
8.18346 46.666199
5088
8.17966 46.675201
5089
8.13087 46.6413
RGI50-11.01237 Int64Index([504], dtype='int64')
5090
8.118 46.6567
RGI50-11.01226 Int64Index([505], dtype='int64')
5091
8.07525 46.6875
5092
8.16764 46.656399
5093
8.12973 46.6548
RGI50-11.01230 Int64Index([508], dtype='int64')
5094
8.11909 46.639599
RGI50-11.01251 Int64Index([509], dtype='int64')
5095
8.11263 46.645
RGI50-11.01247 Int64Index([510], dtype='int64')
5096
8.11114 46.630699
RGI50-11.01262 Int64Index([511], dtype='int64')
5097
8.0757 46.6147
5098
8.08989 46.601101
5099
8.09769 46.5984
RGI50-11.01355 Int64Index([514], dtype='int64')
5100
8.1042 46.597401
RGI50-11.01366 Int64Index([515], dtype='int64')
5101
8.10671 46.589298
RGI50-11.01377 Int64Index([516], dtype='int64')
5102
8.11194 46.590198
RGI50-11.01380 Int64Index([517], dtype='int64')
5103
8.11706 46.5821
RGI50-11.01387 Int64Index([518], dtype='int64')
5104
8.08301 46.571499
RGI50-11.01426 Int64Index([519], dtype='int64')
5105
8.07511 46.565201
RGI50-11.01442 Int64Index([520], dtype='int64')
5106
8.06194 46.5536
RGI50-11.01474 Int64Index([521], dtype='int64')
5107
8.01661 46.5835
5108
8.11723 46.595501
RGI50-11.01360 Int64Index([523], dtype='int64')
5109
8.08866 46.607399
RGI50-11.01318 Int64Index([524], dtype='int64')
5110
8.07825 46.610199
5111
8.07565 46.611099
5112
8.11437 46.575802
RGI50-11.01417 Int64Index([527], dtype='int64')
5113
8.11693 46.5713
RGI50-11.01427 Int64Index([528], dtype='int64')
5114
8.12078 46.5667
5115
8.07776 46.568802
RGI50-11.01419 Int64Index([530], dtype='int64')
5116
8.07767 46.5607
RGI50-11.01346 Int64Index([531], dtype='int64')
5117
8.07109 46.556198
RGI50-11.01471 Int64Index([532], dtype='int64')
5118
8.06322 46.5518
RGI50-11.01480 Int64Index([533], dtype='int64')
5119
8.00608 46.5746
RGI50-11.01422 Int64Index([534], dtype='int64')
5120
8.03097 46.583401
RGI50-11.01379 Int64Index([535], dtype='int64')
5121
8.04141 46.584301
5122
7.97985 46.560299
RGI50-11.01454 Int64Index([537], dtype='int64')
5123
7.96933 46.5513
RGI50-11.01445 Int64Index([538], dtype='int64')
5124
7.96014 46.545101
RGI50-11.01468 Int64Index([539], dtype='int64')
5125
7.94447 46.5425
RGI50-11.01498 Int64Index([540], dtype='int64')
5126
7.94183 46.538898
RGI50-11.01513 Int64Index([541], dtype='int64')
5127
7.93394 46.5317
RGI50-11.01537 Int64Index([542], dtype='int64')
5128
7.96007 46.537899
RGI50-11.01515 Int64Index([543], dtype='int64')
5129
7.96523 46.531601
RGI50-11.01540 Int64Index([544], dtype='int64')
5130
7.95462 46.512699
RGI50-11.01550 Int64Index([545], dtype='int64')
5131
7.9272 46.506599
RGI50-11.01629 Int64Index([546], dtype='int64')
5132
7.93369 46.503799
5133
7.89574 46.4842
RGI50-11.01749 Int64Index([548], dtype='int64')
5134
7.88401 46.482399
RGI50-11.01748 Int64Index([549], dtype='int64')
5135
7.85038 46.513199
RGI50-11.01588 Int64Index([550], dtype='int64')
5136
7.98783 46.5756
RGI50-11.01418 Int64Index([551], dtype='int64')
5137
8.00348 46.5746
RGI50-11.01424 Int64Index([552], dtype='int64')
5138
7.99155 46.556599
5139
7.98495 46.548599
RGI50-11.01486 Int64Index([554], dtype='int64')
5140
7.96025 46.556801
5141
7.9406 46.547001
5142
7.94076 46.564098
5143
7.93947 46.565899
5144
7.94703 46.537102
RGI50-11.01520 Int64Index([559], dtype='int64')
5145
7.95744 46.535198
5146
7.97039 46.526199
RGI50-11.01551 Int64Index([561], dtype='int64')
5147
7.9703 46.5172
RGI50-11.01551 Int64Index([562], dtype='int64')
5148
7.96505 46.513599
RGI50-11.01590 Int64Index([563], dtype='int64')
5149
7.93374 46.509201
RGI50-11.01605 Int64Index([564], dtype='int64')
5150
7.93236 46.501099
RGI50-11.01673 Int64Index([565], dtype='int64')
5151
7.92451 46.4967
5152
7.92324 46.501202
RGI50-11.01648 Int64Index([567], dtype='int64')
5153
7.89843 46.494099
5154
7.84882 46.479
5155
7.84784 46.521301
5156
7.84125 46.512299
5157
7.83604 46.512299
RGI50-11.01596 Int64Index([572], dtype='int64')
5158
7.83741 46.521301
RGI50-11.01571 Int64Index([573], dtype='int64')
5159
7.82954 46.514099
5160
7.82435 46.5168
RGI50-11.01577 Int64Index([575], dtype='int64')
5161
7.82831 46.523998
RGI50-11.01561 Int64Index([576], dtype='int64')
5162
7.81785 46.5196
RGI50-11.01566 Int64Index([577], dtype='int64')
5163
7.8191 46.512402
RGI50-11.01599 Int64Index([578], dtype='int64')
5164
7.78643 46.4963
RGI50-11.01656 Int64Index([579], dtype='int64')
5165
7.77868 46.507999
RGI50-11.01617 Int64Index([580], dtype='int64')
5166
7.77481 46.513401
5167
7.81006 46.523201
RGI50-11.01563 Int64Index([582], dtype='int64')
5168
7.82298 46.5079
5169
7.82034 46.503399
5170
7.80988 46.497101
5171
7.79425 46.4972
RGI50-11.01687 Int64Index([586], dtype='int64')
5172
7.78647 46.502602
5173
7.75777 46.497299
5174
7.76423 46.4883
RGI50-11.01716 Int64Index([589], dtype='int64')
5175
7.75898 46.481098
RGI50-11.01745 Int64Index([590], dtype='int64')
5176
7.75636 46.477501
5177
7.74724 46.476601
RGI50-11.01757 Int64Index([592], dtype='int64')
5178
7.7342 46.4739
RGI50-11.01760 Int64Index([593], dtype='int64')
5179
7.71206 46.473099
5180
7.71856 46.470402
RGI50-11.01804 Int64Index([595], dtype='int64')
5181
7.75764 46.4739
RGI50-11.01793 Int64Index([596], dtype='int64')
5182
7.77962 46.449501
RGI50-11.01866 Int64Index([597], dtype='int64')
5183
7.73395 46.428101
5184
7.70919 46.419102
RGI50-11.01928 Int64Index([599], dtype='int64')
5185
7.69887 46.4371
RGI50-11.01904 Int64Index([600], dtype='int64')
5186
7.72379 46.474899
RGI50-11.01783 Int64Index([601], dtype='int64')
5187
7.72507 46.470402
5188
7.74327 46.466702
RGI50-11.01823 Int64Index([603], dtype='int64')
5189
7.7485 46.470299
RGI50-11.01808 Int64Index([604], dtype='int64')
5190
7.76806 46.474701
5191
7.77462 46.4828
RGI50-11.01742 Int64Index([606], dtype='int64')
5192
7.78898 46.489101
RGI50-11.01724 Int64Index([607], dtype='int64')
5193
7.78355 46.453999
RGI50-11.01848 Int64Index([608], dtype='int64')
5194
7.7796 46.4468
5195
7.77698 46.444099
RGI50-11.01891 Int64Index([610], dtype='int64')
5196
7.77048 46.445099
5197
7.76785 46.440601
RGI50-11.01900 Int64Index([612], dtype='int64')
5198
7.75612 46.4379
5199
7.74439 46.4343
5200
7.74437 46.429798
RGI50-11.01933 Int64Index([615], dtype='int64')
5201
7.74047 46.429798
5202
7.74305 46.427101
5203
7.67805 46.437199
5204
7.67545 46.438099
RGI50-11.01887 Int64Index([619], dtype='int64')
5205
7.64934 46.414799
RGI50-11.01965 Int64Index([620], dtype='int64')
5206
7.59853 46.386101
RGI50-11.02109 Int64Index([621], dtype='int64')
5207
7.56603 46.386101
RGI50-11.02095 Int64Index([622], dtype='int64')
5208
7.5765 46.414902
RGI50-11.01971 Int64Index([623], dtype='int64')
5209
7.59211 46.414799
RGI50-11.01955 Int64Index([624], dtype='int64')
5210
7.65325 46.4165
RGI50-11.01951 Int64Index([625], dtype='int64')
5211
7.59332 46.3843
5212
7.55959 46.413101
RGI50-11.01984 Int64Index([627], dtype='int64')
5213
7.583 46.414902
5214
7.5687 46.416698
5215
7.5557 46.418499
RGI50-11.01949 Int64Index([630], dtype='int64')
5216
7.56089 46.414002
RGI50-11.01976 Int64Index([631], dtype='int64')
5217
7.47503 46.3862
RGI50-11.02099 Int64Index([632], dtype='int64')
5218
7.46983 46.380798
5219
7.36587 46.362801
5220
7.3412 46.351002
RGI50-11.02198 Int64Index([635], dtype='int64')
5221
7.31392 46.352798
RGI50-11.02200 Int64Index([636], dtype='int64')
5222
7.192 46.308498
5223
7.16476 46.304001
5224
7.20365 46.314899
RGI50-11.02263 Int64Index([639], dtype='int64')
5225
7.19716 46.3157
5226
7.17514 46.304901
5227
7.13527 46.240002
RGI50-11.02376 Int64Index([642], dtype='int64')
5228
7.12879 46.238201
5229
7.1959 46.306702
RGI50-11.02261 Int64Index([644], dtype='int64')
5230
7.3581 46.3484
RGI50-11.02211 Int64Index([645], dtype='int64')
5231
7.37757 46.3601
RGI50-11.02187 Int64Index([646], dtype='int64')
5232
7.36718 46.353802
RGI50-11.02197 Int64Index([647], dtype='int64')
5233
7.69227 46.4165
RGI50-11.01958 Int64Index([648], dtype='int64')
5234
7.70267 46.415501
RGI50-11.01977 Int64Index([649], dtype='int64')
5235
7.683 46.3796
RGI50-11.02148 Int64Index([650], dtype='int64')
5236
7.69733 46.387699
RGI50-11.02105 Int64Index([651], dtype='int64')
5237
7.70786 46.4128
RGI50-11.01992 Int64Index([652], dtype='int64')
5238
7.74956 46.428001
RGI50-11.01931 Int64Index([653], dtype='int64')
5239
7.77436 46.440498
RGI50-11.01894 Int64Index([654], dtype='int64')
5240
7.78995 46.437801
5241
7.79004 46.450401
RGI50-11.01857 Int64Index([656], dtype='int64')
5242
7.8044 46.4575
RGI50-11.01791 Int64Index([657], dtype='int64')
5243
7.82397 46.463798
RGI50-11.01791 Int64Index([658], dtype='int64')
5244
7.83834 46.470902
RGI50-11.01791 Int64Index([659], dtype='int64')
5245
7.86051 46.4753
RGI50-11.01786 Int64Index([660], dtype='int64')
5246
7.87616 46.478001
RGI50-11.01788 Int64Index([661], dtype='int64')
5247
7.87481 46.472599
RGI50-11.01807 Int64Index([662], dtype='int64')
5248
7.88529 46.479698
RGI50-11.01777 Int64Index([663], dtype='int64')
5249
7.91393 46.479599
RGI50-11.01772 Int64Index([664], dtype='int64')
5250
7.95558 46.4767
5251
7.96332 46.469502
RGI50-11.01818 Int64Index([666], dtype='int64')
5252
7.9489 46.458801
RGI50-11.01845 Int64Index([667], dtype='int64')
5253
7.93581 46.450699
RGI50-11.01862 Int64Index([668], dtype='int64')
5254
7.92794 46.4445
RGI50-11.01890 Int64Index([669], dtype='int64')
5255
7.92007 46.437302
5256
7.8992 46.431099
RGI50-11.01925 Int64Index([671], dtype='int64')
5257
7.88521 46.470699
RGI50-11.01803 Int64Index([672], dtype='int64')
5258
7.88005 46.4762
5259
7.89439 46.478802
RGI50-11.01770 Int64Index([674], dtype='int64')
5260
7.90612 46.479698
RGI50-11.01750 Int64Index([675], dtype='int64')
5261
7.9478 46.4804
RGI50-11.01775 Int64Index([676], dtype='int64')
5262
7.95283 46.461498
RGI50-11.01842 Int64Index([677], dtype='int64')
5263
7.93708 46.448002
RGI50-11.01882 Int64Index([678], dtype='int64')
5264
7.91745 46.435501
5265
7.90566 46.425701
5266
7.89781 46.4203
RGI50-11.01957 Int64Index([681], dtype='int64')
5267
7.8926 46.4203
RGI50-11.01963 Int64Index([682], dtype='int64')
5268
7.8809 46.421299
RGI50-11.01956 Int64Index([683], dtype='int64')
5269
7.86522 46.412399
5270
7.85868 46.407002
RGI50-11.02028 Int64Index([685], dtype='int64')
5271
7.85216 46.404301
RGI50-11.02027 Int64Index([686], dtype='int64')
5272
7.83907 46.3936
RGI50-11.02073 Int64Index([687], dtype='int64')
5273
7.80389 46.3811
RGI50-11.02153 Int64Index([688], dtype='int64')
5274
7.88346 46.415901
5275
7.87303 46.4123
RGI50-11.01985 Int64Index([690], dtype='int64')
5276
7.8691 46.409599
RGI50-11.02014 Int64Index([691], dtype='int64')
5277
7.86259 46.408798
5278
7.81824 46.389099
5279
7.81431 46.384602
5280
7.80256 46.377499
5281
7.79083 46.372101
5282
7.80383 46.373001
RGI50-11.02165 Int64Index([697], dtype='int64')
5283
7.81558 46.3801
RGI50-11.02146 Int64Index([698], dtype='int64')
5284
7.82602 46.386398
RGI50-11.02121 Int64Index([699], dtype='int64')
5285
7.85462 46.386299
RGI50-11.02133 Int64Index([700], dtype='int64')
5286
7.81811 46.371101
5287
7.83254 46.389099
RGI50-11.02117 Int64Index([702], dtype='int64')
5288
7.84163 46.387199
RGI50-11.02126 Int64Index([703], dtype='int64')
5289
7.84812 46.386299
5290
7.865 46.383598
RGI50-11.02143 Int64Index([705], dtype='int64')
5291
7.8612 46.397098
RGI50-11.02006 Int64Index([706], dtype='int64')
5292
7.89381 46.4086
RGI50-11.01986 Int64Index([707], dtype='int64')
5293
7.86104 46.3755
RGI50-11.02179 Int64Index([708], dtype='int64')
5294
7.85851 46.385399
RGI50-11.02137 Int64Index([709], dtype='int64')
5295
7.90296 46.414002
RGI50-11.01827 Int64Index([710], dtype='int64')
5296
7.90681 46.4086
RGI50-11.02019 Int64Index([711], dtype='int64')
5297
7.91463 46.4104
RGI50-11.02007 Int64Index([712], dtype='int64')
5298
7.92892 46.408501
RGI50-11.02015 Int64Index([713], dtype='int64')
5299
7.93533 46.398602
5300
7.94316 46.4021
RGI50-11.02050 Int64Index([715], dtype='int64')
5301
7.95099 46.4048
RGI50-11.02047 Int64Index([716], dtype='int64')
5302
7.96011 46.406601
RGI50-11.02036 Int64Index([717], dtype='int64')
5303
7.92244 46.411202
5304
7.9328 46.4067
5305
7.93538 46.403999
5306
7.9549 46.405701
RGI50-11.02040 Int64Index([721], dtype='int64')
5307
7.96534 46.409199
RGI50-11.02029 Int64Index([722], dtype='int64')
5308
7.9484 46.405701
5309
7.93554 46.421101
5310
7.91874 46.433701
RGI50-11.01921 Int64Index([725], dtype='int64')
5311
7.92789 46.438202
RGI50-11.01910 Int64Index([726], dtype='int64')
5312
7.93181 46.440899
RGI50-11.01905 Int64Index([727], dtype='int64')
5313
7.95262 46.438999
5314
7.95257 46.434502
RGI50-11.01917 Int64Index([729], dtype='int64')
5315
7.95912 46.4389
RGI50-11.01906 Int64Index([730], dtype='int64')
5316
7.95917 46.444302
RGI50-11.01892 Int64Index([731], dtype='int64')
5317
7.97628 46.4632
RGI50-11.01837 Int64Index([732], dtype='int64')
5318
7.99289 46.432499
RGI50-11.01923 Int64Index([733], dtype='int64')
5319
7.99414 46.428001
5320
8.04107 46.435799
5321
8.03591 46.440399
RGI50-11.01907 Int64Index([736], dtype='int64')
5322
8.04912 46.457401
RGI50-11.01854 Int64Index([737], dtype='int64')
5323
8.04009 46.4655
RGI50-11.01833 Int64Index([738], dtype='int64')
5324
8.04146 46.470902
RGI50-11.01817 Int64Index([739], dtype='int64')
5325
8.0363 46.475498
RGI50-11.01800 Int64Index([740], dtype='int64')
5326
7.96617 46.494701
RGI50-11.01450 Int64Index([741], dtype='int64')
5327
8.00801 46.5098
RGI50-11.01450 Int64Index([742], dtype='int64')
RGI50-11.01619 Int64Index([742], dtype='int64')
5328
8.07696 46.5004
RGI50-11.01684 Int64Index([743], dtype='int64')
5329
7.92637 46.413898
RGI50-11.01827 Int64Index([744], dtype='int64')
5330
7.9305 46.439999
RGI50-11.01905 Int64Index([745], dtype='int64')
5331
7.93443 46.442699
RGI50-11.01898 Int64Index([746], dtype='int64')
5332
7.95907 46.433601
5333
7.94754 46.452499
RGI50-11.01867 Int64Index([748], dtype='int64')
5334
7.96329 46.466801
5335
7.99942 46.4352
5336
7.998 46.4235
5337
7.99455 46.467602
RGI50-11.01828 Int64Index([752], dtype='int64')
5338
8.05818 46.452801
5339
8.06147 46.5131
RGI50-11.01450 Int64Index([754], dtype='int64')
RGI50-11.01602 Int64Index([754], dtype='int64')
5340
8.08109 46.519299
5341
8.08745 46.506699
RGI50-11.01640 Int64Index([756], dtype='int64')
5342
8.07309 46.504002
5343
8.07304 46.4995
5344
8.10004 46.4706
RGI50-11.01825 Int64Index([759], dtype='int64')
5345
8.10657 46.472401
RGI50-11.01809 Int64Index([760], dtype='int64')
5346
8.10536 46.479599
RGI50-11.01784 Int64Index([761], dtype='int64')
5347
8.11186 46.4786
RGI50-11.01782 Int64Index([762], dtype='int64')
5348
8.11067 46.487598
RGI50-11.01719 Int64Index([763], dtype='int64')
5349
8.12552 46.5289
RGI50-11.01545 Int64Index([764], dtype='int64')
5350
8.16418 46.4963
5351
8.10137 46.472401
5352
8.1027 46.475102
5353
8.12507 46.493801
5354
8.14105 46.520698
5355
8.15275 46.518002
RGI50-11.01591 Int64Index([770], dtype='int64')
5356
8.17375 46.529499
5357
8.16933 46.491798
RGI50-11.01733 Int64Index([772], dtype='int64')
5358
8.17202 46.498001
5359
8.18252 46.503399
RGI50-11.01667 Int64Index([774], dtype='int64')
5360
8.19171 46.508701
RGI50-11.01623 Int64Index([775], dtype='int64')
5361
8.16809 46.4963
5362
8.17599 46.502499
5363
8.18639 46.500702
5364
8.36505 46.587502
5365
8.36525 46.599201
RGI50-11.01336 Int64Index([780], dtype='int64')
5366
8.41637 46.611401
RGI50-11.01326 Int64Index([781], dtype='int64')
5367
8.415 46.6078
RGI50-11.01337 Int64Index([782], dtype='int64')
5368
8.40181 46.5998
5369
8.40569 46.598
RGI50-11.01372 Int64Index([784], dtype='int64')
5370
8.40419 46.5872
5371
8.37199 46.611698
RGI50-11.01325 Int64Index([786], dtype='int64')
5372
8.40973 46.605099
5373
8.44113 46.5383
RGI50-11.01532 Int64Index([788], dtype='int64')
5374
8.44233 46.532902
RGI50-11.01542 Int64Index([789], dtype='int64')
5375
8.43575 46.529301
5376
8.46835 46.5299
RGI50-11.01553 Int64Index([791], dtype='int64')
5377
8.46824 46.524502
RGI50-11.01567 Int64Index([792], dtype='int64')
5378
8.45758 46.512001
RGI50-11.01615 Int64Index([793], dtype='int64')
5379
8.44826 46.501301
RGI50-11.01676 Int64Index([794], dtype='int64')
5380
8.43908 46.497799
5381
8.4339 46.499699
5382
8.42213 46.497101
5383
8.38961 46.5
RGI50-11.01696 Int64Index([798], dtype='int64')
5384
8.38313 46.5019
RGI50-11.01680 Int64Index([799], dtype='int64')
5385
8.37663 46.5028
5386
8.38948 46.492802
5387
8.38645 46.468601
5388
8.33805 46.454601
5389
8.32631 46.4529
RGI50-11.01864 Int64Index([804], dtype='int64')
5390
8.31054 46.444
5391
8.30907 46.433201
RGI50-11.01929 Int64Index([806], dtype='int64')
5392
8.38906 46.468498
5393
8.35249 46.4617
5394
8.31712 46.448399
5395
8.29054 46.413601
RGI50-11.02010 Int64Index([810], dtype='int64')
5396
8.29049 46.41
RGI50-11.02031 Int64Index([811], dtype='int64')
5397
8.27625 46.4146
RGI50-11.01999 Int64Index([812], dtype='int64')
5398
8.25941 46.419201
5399
8.26444 46.407398
RGI50-11.02037 Int64Index([814], dtype='int64')
5400
8.28786 46.408199
RGI50-11.02012 Int64Index([815], dtype='int64')
5401
8.28523 46.406399
5402
8.30205 46.400902
RGI50-11.02079 Int64Index([817], dtype='int64')
5403
8.31235 46.394501
RGI50-11.02103 Int64Index([818], dtype='int64')
5404
8.255961 46.362499
5405
8.22173 46.332199
RGI50-11.02251 Int64Index([820], dtype='int64')
5406
8.21771 46.3232
5407
8.19151 46.306301
5408
8.18497 46.3027
RGI50-11.02295 Int64Index([823], dtype='int64')
5409
8.14343 46.303001
RGI50-11.02294 Int64Index([824], dtype='int64')
5410
8.13699 46.306702
RGI50-11.02287 Int64Index([825], dtype='int64')
5411
8.1306 46.3148
5412
8.26709 46.410999
RGI50-11.02016 Int64Index([827], dtype='int64')
5413
8.31093 46.387299
RGI50-11.02136 Int64Index([828], dtype='int64')
5414
8.30829 46.384602
5415
8.24945 46.361698
5416
8.24264 46.341
5417
8.22699 46.336601
RGI50-11.02250 Int64Index([832], dtype='int64')
5418
8.21658 46.3349
5419
8.18641 46.3135
5420
8.18305 46.304699
RGI50-11.02292 Int64Index([835], dtype='int64')
5421
8.15895 46.298401
RGI50-11.02313 Int64Index([836], dtype='int64')
5422
8.15513 46.303799
RGI50-11.02296 Int64Index([837], dtype='int64')
5423
8.14217 46.305698
5424
8.12126 46.294201
RGI50-11.02315 Int64Index([839], dtype='int64')
5425
8.08982 46.2701
5426
8.09767 46.275398
5427
8.08461 46.268299
5428
7.98912 46.189602
RGI50-11.02432 Int64Index([843], dtype='int64')
5429
7.99165 46.1833
RGI50-11.02440 Int64Index([844], dtype='int64')
5430
7.98238 46.162701
RGI50-11.02487 Int64Index([845], dtype='int64')
5431
7.99533 46.163502
RGI50-11.02482 Int64Index([846], dtype='int64')
5432
8.00832 46.167
RGI50-11.02474 Int64Index([847], dtype='int64')
5433
8.0017 46.153599
5434
8.00161 46.1446
RGI50-11.02526 Int64Index([849], dtype='int64')
5435
8.0015 46.1338
RGI50-11.02540 Int64Index([850], dtype='int64')
5436
7.99753 46.125702
RGI50-11.02562 Int64Index([851], dtype='int64')
5437
8.02701 46.099499
RGI50-11.02599 Int64Index([852], dtype='int64')
5438
8.02695 46.094101
5439
8.01646 46.080601
RGI50-11.02639 Int64Index([854], dtype='int64')
5440
8.00356 46.083401
RGI50-11.02647 Int64Index([855], dtype='int64')
5441
8.01341 46.036598
RGI50-11.02751 Int64Index([856], dtype='int64')
5442
8.00312 46.040199
RGI50-11.02732 Int64Index([857], dtype='int64')
5443
7.99794 46.039299
RGI50-11.02727 Int64Index([858], dtype='int64')
5444
7.92546 46.022598
5445
7.91643 46.024399
RGI50-11.02761 Int64Index([860], dtype='int64')
5446
7.93204 46.036999
RGI50-11.02747 Int64Index([861], dtype='int64')
5447
8.01436 46.126499
5448
7.91244 46.010101
RGI50-11.02785 Int64Index([863], dtype='int64')
5449
7.9034 46.010101
RGI50-11.02795 Int64Index([864], dtype='int64')
5450
7.86141 46.090302
5451
7.88094 46.1064
RGI50-11.02586 Int64Index([866], dtype='int64')
5452
7.8758 46.111
RGI50-11.02572 Int64Index([867], dtype='int64')
5453
7.88644 46.1469
RGI50-11.02513 Int64Index([868], dtype='int64')
5454
7.87864 46.141499
RGI50-11.02496 Int64Index([869], dtype='int64')
5455
7.89284 46.137901
5456
7.88512 46.143299
5457
7.86055 46.145199
5458
7.83965 46.120098
5459
7.85247 46.104698
RGI50-11.02576 Int64Index([874], dtype='int64')
5460
7.83825 46.104801
RGI50-11.02583 Int64Index([875], dtype='int64')
5461
7.83948 46.095798
RGI50-11.02597 Int64Index([876], dtype='int64')
5462
7.84331 46.0895
RGI50-11.02618 Int64Index([877], dtype='int64')
5463
7.83551 46.084099
RGI50-11.02638 Int64Index([878], dtype='int64')
5464
7.8522 46.068802
5465
7.85474 46.0625
RGI50-11.02681 Int64Index([880], dtype='int64')
5466
7.86762 46.056999
RGI50-11.02703 Int64Index([881], dtype='int64')
5467
7.86498 46.050701
RGI50-11.02706 Int64Index([882], dtype='int64')
5468
7.87402 46.049801
RGI50-11.02713 Int64Index([883], dtype='int64')
5469
7.87783 46.041698
RGI50-11.02724 Int64Index([884], dtype='int64')
5470
7.8583 46.021099
RGI50-11.02758 Int64Index([885], dtype='int64')
5471
7.81446 46.031101
5472
7.8093 46.032002
5473
7.85881 46.087601
RGI50-11.02633 Int64Index([888], dtype='int64')
5474
7.85231 46.083198
RGI50-11.02642 Int64Index([889], dtype='int64')
5475
7.85227 46.077801
RGI50-11.02654 Int64Index([890], dtype='int64')
5476
7.8587 46.0732
RGI50-11.02663 Int64Index([891], dtype='int64')
5477
7.86507 46.0615
RGI50-11.02677 Int64Index([892], dtype='int64')
5478
7.87772 46.027302
RGI50-11.02724 Int64Index([893], dtype='int64')
5479
7.86607 46.024601
RGI50-11.02758 Int64Index([894], dtype='int64')
5480
7.87248 46.018299
RGI50-11.02778 Int64Index([895], dtype='int64')
5481
7.82579 45.9897
RGI50-11.02826 Int64Index([896], dtype='int64')
5482
7.68111 45.957699
RGI50-11.02906 Int64Index([897], dtype='int64')
5483
7.88025 46.021
5484
7.83842 45.9519
RGI50-11.02848 Int64Index([899], dtype='int64')
RGI50-11.02904 Int64Index([899], dtype='int64')
5485
7.79329 45.952
RGI50-11.02917 Int64Index([900], dtype='int64')
5486
7.78684 45.952
RGI50-11.02916 Int64Index([901], dtype='int64')
5487
7.76102 45.947601
RGI50-11.02848 Int64Index([902], dtype='int64')
5488
7.72871 45.9342
RGI50-11.02848 Int64Index([903], dtype='int64')
5489
7.70303 45.956799
RGI50-11.02845 Int64Index([904], dtype='int64')
5490
7.69018 45.965801
RGI50-11.02845 Int64Index([905], dtype='int64')
5491
7.65799 45.982101
RGI50-11.02828 Int64Index([906], dtype='int64')
5492
7.60909 46.021702
RGI50-11.02764 Int64Index([907], dtype='int64')
5493
7.62075 46.033402
RGI50-11.02746 Int64Index([908], dtype='int64')
5494
7.63233 46.020802
5495
7.64139 46.0271
RGI50-11.02753 Int64Index([910], dtype='int64')
5496
7.6582 46.033298
RGI50-11.02741 Int64Index([911], dtype='int64')
5497
7.67112 46.033298
RGI50-11.02744 Int64Index([912], dtype='int64')
5498
7.67759 46.0378
RGI50-11.02731 Int64Index([913], dtype='int64')
5499
7.68799 46.0513
RGI50-11.02687 Int64Index([914], dtype='int64')
5500
7.70739 46.056599
RGI50-11.02689 Int64Index([915], dtype='int64')
5501
7.65154 45.981201
RGI50-11.02846 Int64Index([916], dtype='int64')
5502
7.63234 46.024399
5503
7.67371 46.035099
RGI50-11.02743 Int64Index([918], dtype='int64')
5504
7.67632 46.041401
RGI50-11.02730 Int64Index([919], dtype='int64')
5505
7.68407 46.042301
RGI50-11.02729 Int64Index([920], dtype='int64')
5506
7.69577 46.057499
5507
7.70357 46.068298
RGI50-11.02656 Int64Index([922], dtype='int64')
5508
7.71661 46.090801
RGI50-11.02605 Int64Index([923], dtype='int64')
5509
7.73345 46.0961
RGI50-11.02608 Int64Index([924], dtype='int64')
5510
7.73862 46.0952
RGI50-11.02602 Int64Index([925], dtype='int64')
5511
7.74509 46.097
RGI50-11.02603 Int64Index([926], dtype='int64')
5512
7.753 46.124
RGI50-11.02559 Int64Index([927], dtype='int64')
5513
7.75564 46.132
5514
7.7427 46.132099
RGI50-11.02534 Int64Index([929], dtype='int64')
5515
7.73629 46.143799
RGI50-11.02518 Int64Index([930], dtype='int64')
5516
7.74285 46.1591
RGI50-11.02483 Int64Index([931], dtype='int64')
5517
7.7442 46.168098
5518
7.74294 46.1744
RGI50-11.02450 Int64Index([933], dtype='int64')
5519
7.73653 46.1861
5520
7.68935 46.067402
RGI50-11.02604 Int64Index([935], dtype='int64')
5521
7.7049 46.0746
RGI50-11.02653 Int64Index([936], dtype='int64')
5522
7.70233 46.079102
RGI50-11.02646 Int64Index([937], dtype='int64')
5523
7.70364 46.082699
RGI50-11.02643 Int64Index([938], dtype='int64')
5524
7.72567 46.092499
RGI50-11.02609 Int64Index([939], dtype='int64')
5525
7.73508 46.158199
5526
7.75736 46.204899
5527
7.73003 46.181599
5528
7.73645 46.1726
RGI50-11.02459 Int64Index([943], dtype='int64')
5529
7.72996 46.169899
5530
7.7325 46.16
RGI50-11.02475 Int64Index([945], dtype='int64')
5531
7.7273 46.155498
5532
7.72853 46.144699
RGI50-11.02520 Int64Index([947], dtype='int64')
5533
7.67286 46.1394
RGI50-11.02533 Int64Index([948], dtype='int64')
5534
7.67288 46.144798
RGI50-11.02504 Int64Index([949], dtype='int64')
5535
7.66515 46.151199
5536
7.73377 46.156399
5537
7.67161 46.1493
RGI50-11.02504 Int64Index([952], dtype='int64')
5538
7.69732 46.1115
RGI50-11.02577 Int64Index([953], dtype='int64')
5539
7.69723 46.093498
RGI50-11.02601 Int64Index([954], dtype='int64')
5540
7.70757 46.093498
RGI50-11.02614 Int64Index([955], dtype='int64')
5541
7.68832 46.1232
RGI50-11.02552 Int64Index([956], dtype='int64')
5542
7.69859 46.106998
RGI50-11.02577 Int64Index([957], dtype='int64')
5543
7.7115 46.102501
5544
7.65451 46.081001
5545
7.65191 46.0756
5546
7.66223 46.070202
RGI50-11.02662 Int64Index([961], dtype='int64')
5547
7.62727 46.0523
RGI50-11.02697 Int64Index([962], dtype='int64')
5548
7.61446 46.086498
5549
7.66611 46.071999
RGI50-11.02661 Int64Index([964], dtype='int64')
5550
7.61564 46.051399
RGI50-11.02710 Int64Index([965], dtype='int64')
5551
7.62471 46.059502
5552
7.62082 46.055901
RGI50-11.02693 Int64Index([967], dtype='int64')
5553
7.60793 46.064899
RGI50-11.02595 Int64Index([968], dtype='int64')
5554
7.6144 46.0676
5555
7.58598 46.073002
RGI50-11.02655 Int64Index([970], dtype='int64')
5556
7.57823 46.073002
5557
7.58339 46.072102
RGI50-11.02660 Int64Index([972], dtype='int64')
5558
7.60661 46.056801
RGI50-11.02684 Int64Index([973], dtype='int64')
5559
7.60401 46.051399
RGI50-11.02691 Int64Index([974], dtype='int64')
5560
7.60268 46.0397
RGI50-11.02717 Int64Index([975], dtype='int64')
5561
7.60652 46.026199
RGI50-11.02745 Int64Index([976], dtype='int64')
5562
7.60134 46.022598
RGI50-11.02750 Int64Index([977], dtype='int64')
5563
7.56 46.012798
5564
7.55743 46.0182
RGI50-11.02769 Int64Index([979], dtype='int64')
5565
7.52515 46.022701
RGI50-11.02752 Int64Index([980], dtype='int64')
5566
7.53035 46.041599
RGI50-11.02720 Int64Index([981], dtype='int64')
5567
7.53424 46.047901
RGI50-11.02712 Int64Index([982], dtype='int64')
5568
7.52908 46.056
5569
7.58466 46.062199
RGI50-11.02679 Int64Index([984], dtype='int64')
5570
7.55871 46.016399
RGI50-11.02777 Int64Index([985], dtype='int64')
5571
7.52905 46.033501
5572
7.52003 46.047901
5573
7.51612 46.026298
5574
7.51482 46.020901
5575
7.51481 46.014599
RGI50-11.02772 Int64Index([990], dtype='int64')
5576
7.52255 46.009201
RGI50-11.02784 Int64Index([991], dtype='int64')
5577
7.53544 45.997501
RGI50-11.02810 Int64Index([992], dtype='int64')
5578
7.53414 45.990299
5579
7.53799 45.9813
5580
7.53798 45.973202
5581
7.5225 45.973202
RGI50-11.02834 Int64Index([996], dtype='int64')
5582
7.50573 45.976799
RGI50-11.02849 Int64Index([997], dtype='int64')
5583
7.46961 45.997601
RGI50-11.02787 Int64Index([998], dtype='int64')
5584
7.43218 46.0425
5585
7.43864 46.047901
5586
7.44122 46.0569
RGI50-11.02686 Int64Index([1001], dtype='int64')
5587
7.43476 46.072201
RGI50-11.02634 Int64Index([1002], dtype='int64')
5588
7.52129 46.0317
5589
7.538 45.984901
RGI50-11.02832 Int64Index([1004], dtype='int64')
5590
7.53411 45.976799
5591
7.50832 45.982201
RGI50-11.02842 Int64Index([1006], dtype='int64')
5592
7.46832 45.988602
RGI50-11.02825 Int64Index([1007], dtype='int64')
5593
7.46187 45.993099
RGI50-11.02812 Int64Index([1008], dtype='int64')
5594
7.44251 46.062302
RGI50-11.02674 Int64Index([1009], dtype='int64')
5595
7.43605 46.066799
RGI50-11.02666 Int64Index([1010], dtype='int64')
5596
7.44639 46.0713
5597
7.427 46.074902
5598
7.42184 46.067699
RGI50-11.02668 Int64Index([1013], dtype='int64')
5599
7.42959 46.060501
5600
7.42572 46.051498
5601
7.43218 46.0102
5602
7.44122 46.002998
5603
7.39733 46.010101
RGI50-11.02776 Int64Index([1018], dtype='int64')
5604
7.37408 46.013699
5605
7.37794 46.028999
RGI50-11.02736 Int64Index([1020], dtype='int64')
5606
7.37018 46.037102
RGI50-11.02722 Int64Index([1021], dtype='int64')
5607
7.365 46.0452
RGI50-11.02702 Int64Index([1022], dtype='int64')
5608
7.35982 46.058701
RGI50-11.02676 Int64Index([1023], dtype='int64')
5609
7.35851 46.0695
RGI50-11.02645 Int64Index([1024], dtype='int64')
5610
7.36234 46.105499
RGI50-11.02580 Int64Index([1025], dtype='int64')
5611
7.35844 46.115398
RGI50-11.02568 Int64Index([1026], dtype='int64')
5612
7.41412 45.992199
RGI50-11.02816 Int64Index([1027], dtype='int64')
5613
7.35457 46.1082
5614
7.35462 46.078499
RGI50-11.02636 Int64Index([1029], dtype='int64')
5615
7.30678 46.084702
RGI50-11.02611 Int64Index([1030], dtype='int64')
5616
7.29642 46.089199
5617
7.30808 46.0793
5618
7.30422 46.074799
RGI50-11.02648 Int64Index([1033], dtype='int64')
5619
7.33784 46.062302
RGI50-11.02672 Int64Index([1034], dtype='int64')
5620
7.35335 46.060501
5621
7.34949 46.0551
RGI50-11.02688 Int64Index([1036], dtype='int64')
5622
7.34949 46.049702
RGI50-11.02704 Int64Index([1037], dtype='int64')
5623
7.34821 46.0452
5624
7.35467 46.0425
5625
7.36373 46.033501
5626
7.36762 46.0173
5627
7.37022 46.010101
RGI50-11.02783 Int64Index([1042], dtype='int64')
5628
7.40381 45.972401
RGI50-11.02853 Int64Index([1043], dtype='int64')
5629
7.40511 45.9463
RGI50-11.02926 Int64Index([1044], dtype='int64')
5630
7.43735 45.960701
RGI50-11.02892 Int64Index([1045], dtype='int64')
5631
7.45154 45.9706
RGI50-11.02868 Int64Index([1046], dtype='int64')
5632
7.44896 45.976898
RGI50-11.02854 Int64Index([1047], dtype='int64')
5633
7.4683 45.9436
RGI50-11.02931 Int64Index([1048], dtype='int64')
5634
7.41931 45.913898
RGI50-11.02998 Int64Index([1049], dtype='int64')
5635
7.41029 45.916599
RGI50-11.02976 Int64Index([1050], dtype='int64')
5636
7.39869 45.912102
5637
7.39612 45.9058
5638
7.38581 45.9076
5639
7.36132 45.909401
RGI50-11.02982 Int64Index([1054], dtype='int64')
5640
7.34843 45.915699
RGI50-11.02991 Int64Index([1055], dtype='int64')
5641
7.33164 45.931801
RGI50-11.02952 Int64Index([1056], dtype='int64')
5642
7.31873 45.939899
RGI50-11.02928 Int64Index([1057], dtype='int64')
5643
7.31356 45.944401
RGI50-11.02918 Int64Index([1058], dtype='int64')
5644
7.33032 45.948002
RGI50-11.02899 Int64Index([1059], dtype='int64')
5645
7.3225 45.984901
RGI50-11.02820 Int64Index([1060], dtype='int64')
5646
7.351 45.9175
5647
7.31603 45.9921
5648
7.28769 45.974998
RGI50-11.02838 Int64Index([1063], dtype='int64')
5649
7.27477 45.979401
RGI50-11.02782 Int64Index([1064], dtype='int64')
5650
7.27476 45.985699
RGI50-11.02806 Int64Index([1065], dtype='int64')
5651
7.27473 45.992901
RGI50-11.02804 Int64Index([1066], dtype='int64')
5652
7.267 45.9884
RGI50-11.02801 Int64Index([1067], dtype='int64')
5653
7.25926 45.9884
5654
7.26186 45.983002
RGI50-11.02831 Int64Index([1069], dtype='int64')
5655
7.27103 45.937199
5656
7.27878 45.932701
5657
7.28912 45.925499
RGI50-11.02949 Int64Index([1072], dtype='int64')
5658
7.2814 45.918301
5659
7.27885 45.911098
5660
7.23633 45.909199
5661
7.23506 45.903801
5662
7.23251 45.895698
5663
7.2454 45.893902
RGI50-11.03032 Int64Index([1078], dtype='int64')
5664
7.11031 45.863899
5665
7.06351 45.930401
5666
7.07237 45.9538
RGI50-11.02886 Int64Index([1081], dtype='int64')
5667
7.06973 45.962799
RGI50-11.02867 Int64Index([1082], dtype='int64')
5668
7.08136 45.960098
RGI50-11.02878 Int64Index([1083], dtype='int64')
5669
7.07354 45.971802
RGI50-11.02852 Int64Index([1084], dtype='int64')
5670
7.03866 45.978901
RGI50-11.02830 Int64Index([1085], dtype='int64')
5671
7.04638 45.981602
5672
7.0502 45.9888
RGI50-11.02807 Int64Index([1087], dtype='int64')
5673
7.06436 45.993301
RGI50-11.02805 Int64Index([1088], dtype='int64')
5674
7.05792 45.992401
5675
7.05143 45.996899
RGI50-11.02793 Int64Index([1090], dtype='int64')
5676
7.05431 45.954601
RGI50-11.02891 Int64Index([1091], dtype='int64')
5677
7.06968 45.970902
RGI50-11.02855 Int64Index([1092], dtype='int64')
5678
7.04748 46.008598
5679
7.06556 46.007702
5680
7.0165 46.007599
RGI50-11.02773 Int64Index([1095], dtype='int64')
5681
6.99973 46.005699
RGI50-11.02770 Int64Index([1096], dtype='int64')
5682
6.99068 46.0084
5683
7.00877 46.005699
RGI50-11.02766 Int64Index([1098], dtype='int64')
5684
6.88962 46.0439
5685
6.89967 46.0727
RGI50-11.02622 Int64Index([1100], dtype='int64')
5686
6.89042 46.093399
RGI50-11.02584 Int64Index([1101], dtype='int64')
5687
6.89294 46.099701
RGI50-11.02575 Int64Index([1102], dtype='int64')
5688
6.898 46.111401
RGI50-11.02561 Int64Index([1103], dtype='int64')
5689
6.91469 46.1241
RGI50-11.02536 Int64Index([1104], dtype='int64')
5690
6.93282 46.121498
5691
6.94209 46.098999
5692
6.88307 46.052898
5693
6.88524 46.0933
5694
6.92634 46.1232
RGI50-11.02543 Int64Index([1109], dtype='int64')
5695
6.9392 46.131401
5696
6.92885 46.131302
RGI50-11.02519 Int64Index([1111], dtype='int64')
5697
6.92487 46.142101
RGI50-11.02497 Int64Index([1112], dtype='int64')
5698
6.94017 46.1674
RGI50-11.02448 Int64Index([1113], dtype='int64')
5699
6.9289 46.1259
5700
6.92879 46.1376
RGI50-11.02510 Int64Index([1115], dtype='int64')
5701
6.95562 46.1773
RGI50-11.02439 Int64Index([1116], dtype='int64')
5702
6.94008 46.176399
5703
6.94142 46.171902
RGI50-11.02445 Int64Index([1118], dtype='int64')
5704
6.91944 46.168201
5705
6.90658 46.1591
5706
6.91713 46.1394
5707
6.92107 46.133099
RGI50-11.02517 Int64Index([1122], dtype='int64')
5708
6.91201 46.133999
RGI50-11.02516 Int64Index([1123], dtype='int64')
5709
6.90818 46.128502
RGI50-11.02525 Int64Index([1124], dtype='int64')
5710
6.88359 46.128399
RGI50-11.02531 Int64Index([1125], dtype='int64')
5711
6.89527 46.124901
RGI50-11.02541 Int64Index([1126], dtype='int64')
5712
6.82274 46.132599
5713
6.90141 46.158199
5714
6.90433 46.124901
5715
6.90045 46.124901
5716
6.88881 46.124802
5717
6.89133 46.131199
5718
6.84342 46.134499
5719
6.83437 46.133598
5720
6.82661 46.133499
5721
6.81627 46.132599
5722
8.04645 46.103901
RGI50-11.02593 Int64Index([1137], dtype='int64')
5723
8.04002 46.106602
RGI50-11.02588 Int64Index([1138], dtype='int64')
5724
8.01821 46.123798
RGI50-11.02566 Int64Index([1139], dtype='int64')
5725
8.0337 46.120098
RGI50-11.02573 Int64Index([1140], dtype='int64')
5726
8.05836 46.127201
RGI50-11.02557 Int64Index([1141], dtype='int64')
5727
8.04155 46.1282
RGI50-11.02555 Int64Index([1142], dtype='int64')
5728
8.0273 46.126499
RGI50-11.02529 Int64Index([1143], dtype='int64')
5729
8.01309 46.1283
RGI50-11.02554 Int64Index([1144], dtype='int64')
5730
8.0145 46.139999
RGI50-11.02512 Int64Index([1145], dtype='int64')
5731
8.01341 46.158901
RGI50-11.02488 Int64Index([1146], dtype='int64')
5732
8.02123 46.164299
RGI50-11.02478 Int64Index([1147], dtype='int64')
5733
8.01889 46.187698
RGI50-11.02444 Int64Index([1148], dtype='int64')
5734
7.99681 46.1815
RGI50-11.02449 Int64Index([1149], dtype='int64')
5735
7.997 46.200401
5736
8.10378 46.244801
RGI50-11.02385 Int64Index([1151], dtype='int64')
5737
8.46635 46.424702
RGI50-11.01952 Int64Index([1152], dtype='int64')
5738
8.45976 46.4203
5739
8.48631 46.447899
RGI50-11.01889 Int64Index([1154], dtype='int64')
5740
8.46599 46.4058
RGI50-11.02060 Int64Index([1155], dtype='int64')
5741
8.76577 46.4324
5742
8.72425 46.437401
5743
8.71827 46.4599
5744
8.4509 46.503101
RGI50-11.01685 Int64Index([1159], dtype='int64')
5745
8.47604 46.523602
5746
8.46406 46.5102
5747
8.62307 46.571602
5748
8.61659 46.573502
5749
8.90991 46.613201
RGI50-11.01323 Int64Index([1164], dtype='int64')
5750
8.91395 46.617699
RGI50-11.01312 Int64Index([1165], dtype='int64')
5751
9.02201 46.562302
5752
9.01869 46.537998
RGI50-11.01523 Int64Index([1167], dtype='int64')
5753
9.00563 46.5373
5754
9.0146 46.531799
5755
9.020351 46.5056
5756
9.08067 46.474998
RGI50-11.01815 Int64Index([1171], dtype='int64')
5757
9.08896 46.447899
5758
9.07816 46.349098
5759
9.06775 46.3484
5760
9.09106 46.473999
RGI50-11.01820 Int64Index([1175], dtype='int64')
5761
9.10682 46.478298
RGI50-11.01805 Int64Index([1176], dtype='int64')
5762
9.13648 46.4688
5763
9.11853 46.4781
RGI50-11.01802 Int64Index([1178], dtype='int64')
5764
9.59 46.3783
5765
9.58473 46.376598
5766
9.5822 46.378502
RGI50-11.02180 Int64Index([1181], dtype='int64')
5767
9.72246 46.3433
5768
9.71623 46.3498
5769
9.72093 46.338001
RGI50-11.02246 Int64Index([1184], dtype='int64')
5770
9.71666 46.329102
RGI50-11.02259 Int64Index([1185], dtype='int64')
5771
9.68428 46.331501
RGI50-11.02257 Int64Index([1186], dtype='int64')
5772
9.67961 46.3442
RGI50-11.02237 Int64Index([1187], dtype='int64')
5773
9.67853 46.3181
RGI50-11.02268 Int64Index([1188], dtype='int64')
5774
9.68532 46.325199
RGI50-11.02266 Int64Index([1189], dtype='int64')
5775
9.66904 46.308399
RGI50-11.02282 Int64Index([1190], dtype='int64')
5776
9.66615 46.3013
RGI50-11.02299 Int64Index([1191], dtype='int64')
5777
9.62493 46.3093
5778
9.61548 46.300499
RGI50-11.02293 Int64Index([1193], dtype='int64')
5779
9.5935 46.3027
RGI50-11.02303 Int64Index([1194], dtype='int64')
5780
9.58045 46.301102
5781
9.57144 46.303101
RGI50-11.02304 Int64Index([1196], dtype='int64')
5782
9.99815 46.347401
RGI50-11.02229 Int64Index([1197], dtype='int64')
5783
9.99987 46.3563
5784
10.0107 46.392101
RGI50-11.02107 Int64Index([1199], dtype='int64')
5785
10.0056 46.394901
RGI50-11.02096 Int64Index([1200], dtype='int64')
5786
10.2693 46.736999
5787
9.98773 46.485298
RGI50-11.01761 Int64Index([1202], dtype='int64')
5788
9.98105 46.4818
5789
9.99163 46.485199
5790
9.95157 46.492401
5791
9.95405 46.517502
5792
9.94267 46.497101
RGI50-11.01707 Int64Index([1207], dtype='int64')
5793
9.93628 46.499901
5794
9.98506 46.4007
RGI50-11.02070 Int64Index([1209], dtype='int64')
5795
9.96741 46.4128
5796
9.91094 46.401501
RGI50-11.02065 Int64Index([1211], dtype='int64')
5797
9.9113 46.409599
RGI50-11.02025 Int64Index([1212], dtype='int64')
5798
9.90619 46.411499
5799
9.90278 46.422401
RGI50-11.01960 Int64Index([1214], dtype='int64')
5800
9.9098 46.405102
RGI50-11.02042 Int64Index([1215], dtype='int64')
5801
9.90334 46.4062
RGI50-11.02032 Int64Index([1216], dtype='int64')
5802
9.8953 46.429699
RGI50-11.01938 Int64Index([1217], dtype='int64')
5803
9.88994 46.4263
RGI50-11.01945 Int64Index([1218], dtype='int64')
5804
9.89221 46.418999
RGI50-11.01968 Int64Index([1219], dtype='int64')
5805
9.87082 46.377201
RGI50-11.02175 Int64Index([1220], dtype='int64')
5806
9.82287 46.380901
RGI50-11.02154 Int64Index([1221], dtype='int64')
5807
9.81791 46.386398
RGI50-11.02140 Int64Index([1222], dtype='int64')
5808
9.819879 46.4016
RGI50-11.02071 Int64Index([1223], dtype='int64')
5809
9.82819 46.4132
RGI50-11.02001 Int64Index([1224], dtype='int64')
5810
9.82469 46.422199
RGI50-11.01962 Int64Index([1225], dtype='int64')
5811
9.82445 46.416802
RGI50-11.01962 Int64Index([1226], dtype='int64')
5812
9.84985 46.4613
RGI50-11.01847 Int64Index([1227], dtype='int64')
5813
9.81389 46.413502
5814
9.81346 46.403599
RGI50-11.02059 Int64Index([1229], dtype='int64')
5815
9.81621 46.377399
RGI50-11.02164 Int64Index([1230], dtype='int64')
5816
9.81672 46.359402
RGI50-11.02195 Int64Index([1231], dtype='int64')
5817
9.79548 46.349098
RGI50-11.02223 Int64Index([1232], dtype='int64')
5818
9.77757 46.355701
RGI50-11.02208 Int64Index([1233], dtype='int64')
5819
9.76931 46.3451
RGI50-11.02222 Int64Index([1234], dtype='int64')
5820
9.75129 46.349098
RGI50-11.02226 Int64Index([1235], dtype='int64')
5821
9.74625 46.352798
RGI50-11.02221 Int64Index([1236], dtype='int64')
5822
9.74388 46.3582
RGI50-11.02212 Int64Index([1237], dtype='int64')
5823
9.73362 46.4538
5824
9.76264 46.492802
RGI50-11.01732 Int64Index([1239], dtype='int64')
5825
9.81456 46.5476
5826
9.80358 46.535198
5827
9.75974 46.5163
5828
9.76265 46.523399
5829
9.75756 46.526199
5830
9.72821 46.510601
5831
9.71143 46.514599
RGI50-11.01603 Int64Index([1246], dtype='int64')
5832
9.69919 46.533699
RGI50-11.01546 Int64Index([1247], dtype='int64')
5833
9.70329 46.538101
RGI50-11.01516 Int64Index([1248], dtype='int64')
5834
9.73249 46.550098
RGI50-11.01494 Int64Index([1249], dtype='int64')
5835
9.74633 46.507599
RGI50-11.01647 Int64Index([1250], dtype='int64')
5836
9.72042 46.542301
5837
9.87241 46.615601
5838
9.88819 46.618
5839
9.91074 46.625599
RGI50-11.01285 Int64Index([1254], dtype='int64')
5840
9.89924 46.631199
RGI50-11.01274 Int64Index([1255], dtype='int64')
5841
9.93605 46.6926
RGI50-11.01182 Int64Index([1256], dtype='int64')
5842
9.94899 46.689602
RGI50-11.01181 Int64Index([1257], dtype='int64')
5843
9.96715 46.6865
RGI50-11.01200 Int64Index([1258], dtype='int64')
5844
9.97634 46.687199
5845
10.0145 46.6926
RGI50-11.01180 Int64Index([1260], dtype='int64')
5846
10.0069 46.6973
RGI50-11.01165 Int64Index([1261], dtype='int64')
5847
9.99426 46.7066
5848
9.97149 46.6954
RGI50-11.01173 Int64Index([1263], dtype='int64')
5849
9.95999 46.701
RGI50-11.01169 Int64Index([1264], dtype='int64')
5850
9.95716 46.724499
5851
9.94344 46.739201
5852
9.99172 46.763302
RGI50-11.01079 Int64Index([1267], dtype='int64')
5853
9.98399 46.766201
5854
10.0621 46.810299
RGI50-11.00936 Int64Index([1269], dtype='int64')
5855
10.0723 46.803799
RGI50-11.00956 Int64Index([1270], dtype='int64')
5856
10.0762 46.8307
RGI50-11.00880 Int64Index([1271], dtype='int64')
5857
10.1199 46.812599
5858
10.1066 46.834499
RGI50-11.00868 Int64Index([1273], dtype='int64')
5859
10.1347 46.845501
RGI50-11.00842 Int64Index([1274], dtype='int64')
5860
10.1492 46.8479
RGI50-11.00829 Int64Index([1275], dtype='int64')
5861
10.1242 46.846699
RGI50-11.00838 Int64Index([1276], dtype='int64')
5862
10.1663 46.8484
RGI50-11.00781 Int64Index([1277], dtype='int64')
5863
10.1795 46.8508
RGI50-11.00809 Int64Index([1278], dtype='int64')
5864
10.1891 46.8577
RGI50-11.00793 Int64Index([1279], dtype='int64')
5865
10.2064 46.863602
RGI50-11.00790 Int64Index([1280], dtype='int64')
5866
10.2575 46.8615
RGI50-11.00785 Int64Index([1281], dtype='int64')
5867
10.239801 46.8736
RGI50-11.00765 Int64Index([1282], dtype='int64')
5868
10.2343 46.895302
RGI50-11.00723 Int64Index([1283], dtype='int64')

In [213]:
len(rgi_links.dropna(subset=['RGI_ID']))


Out[213]:
814

According to mistakes in new lookup table in FoG 2016: Find IDs to be deleted and new Parent_IDs for glaciers in border areas!


In [34]:
def transform_coords(x,y,in_proj=None,out_proj=None):
    
    assert in_proj is not None,'Input projection may not be None.'
    assert out_proj is not None,'Output projection may not be None.'
    from_proj = pyproj.Proj(init='epsg:'+str(in_proj))
    to_proj = pyproj.Proj(init='epsg:'+str(out_proj))
    
    #x1, y1 = from_proj(x,y)
    return pyproj.transform(from_proj, to_proj, x,y)

In [35]:
pdf = pd.read_csv(f_path, sep = '\t', encoding='iso-8859-1')
pda = pd.read_csv(a_path, encoding='iso-8859-1')

In [40]:
pdf.columns.values


Out[40]:
array(['Code_SGI2010', 'ID_SGI1973', 'Glacier_name_SGI2010',
       'Location_X_m in CH1903', 'Location_Y_m in CH1903', 'Aspect_mean',
       '1:25000 CH_topo_Map_sheet_nr', 't1_year', 't2_year',
       'observation_period_length_(t2-t1)', 'area_t1_km2', 'area_t2_km2',
       'average_area_km2_between_SGI1973_and_SGI2010',
       'dvol_mio_m3_between_t1_and_t2',
       'uncertainty_dvol_between_t1_and_t2_mio m3', 'dh_mean_m',
       'dh_minimum_m', 'dh_maximum_m',
       'area-averaged_specific_mass_balance_rate _m w.e. yr-1 _between_t1_and_t2',
       'uncertainty_geod_mb_between_t1_and_t2_m w.e. yr-1',
       'temporally_homogenized_geodetic_mass balance_1980-2010_ m w.e. yr-1',
       'Unnamed: 21', 'Unnamed: 22', 'Unnamed: 23'], dtype=object)

Select polygons outside swiss border


In [106]:
ch_border = fiona.open("C:\\Users\\jlandman\\Desktop\\CHE_adm_shp\\CHE_adm0.shp")

In [108]:
plist = []
for k,entry in pdf.iterrows():
    lon_1903 = entry['Location_X_m in CH1903']
    lat_1903 = entry['Location_Y_m in CH1903']
    
    lon,lat = transform_coords(lon_1903,lat_1903,21781,4326)
    point = Point(lon,lat)
    if entry.Glacier_name_SGI2010 == 'FORNO VADREC DEL (Nr. 102)':
        print(entry)
    plist.append(point)
    
    for feature in ch_border:
        if not shape(feature['geometry']).contains(point):
            print(entry.Glacier_name_SGI2010)


GALLEGIONE VADREC DA
PIZZO ROSSO GH. DEL-E
Piz della Palu*
CHALTWASSERGLETSCHER (Nr. 7)
Furgggrat*
OBERER THEODULGLETSCHER
Avril*
Pte. de la Terasse-E*
Tenneverge*
ROSSES GLACIER DES
Col du Ruan*
Bosses*
Petit Ruan-I*
Dent du Signal*
Grand Ruan-I*
Grand Ruan-II*
Petit Ruan-II*
Comba Mornay*
Sex Vernays-E*
Sex Vernays-W*
Lanche des Aux*
Code_SGI2010                                                                                    C83/12
ID_SGI1973                                                                                        1959
Glacier_name_SGI2010                                                        FORNO VADREC DEL (Nr. 102)
Location_X_m in CH1903                                                                          774000
Location_Y_m in CH1903                                                                          130000
Aspect_mean                                                                                          N
1:25000 CH_topo_Map_sheet_nr                                                                      1296
t1_year                                                                                           1991
t2_year                                                                                           2009
observation_period_length_(t2-t1)                                                                   18
area_t1_km2                                                                                     8.8119
area_t2_km2                                                                                     6.1944
average_area_km2_between_SGI1973_and_SGI2010                                                    7.5032
dvol_mio_m3_between_t1_and_t2                                                                 -239.562
uncertainty_dvol_between_t1_and_t2_mio_m3                                                       4.6162
dh_mean_m                                                                                       -27.19
dh_minimum_m                                                                                    -95.07
dh_maximum_m                                                                                     28.82
area-averaged_specific_mass_balance_rate _m w.e. yr-1 _between_t1_and_t2                        -1.508
uncertainty_geod_mb_between_t1_and_t2_m w.e. yr-1                                                0.094
temporally_homogenized_geodetic_mass balance_1980-2010_ m w.e. yr-1                             -1.377
Unnamed: 21                                                                                        NaN
Unnamed: 22                                                                                        NaN
Unnamed: 23                                                                                        NaN
COMPNAME                                                                              forno vadrec del
Name: 1274, dtype: object
FORNO VADREC DEL (Nr. 102)
CASTEL SUD VADREC DAL
TRUBINASCA VADREC DA LA-E
TRUBINASCA VADREC DA LA-W
Fedoz-W*
Pizzo del Muretto-NE*