Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • main
1 result

Target

Select target project
  • masmoudh/glacierh2o
1 result
Select Git revision
  • main
1 result
Show changes
Commits on Source (3)
Showing
with 9539 additions and 0 deletions
File added
File added
File added
<<<<<<< HEAD
# GlacierH2O
......@@ -91,3 +92,6 @@ For open source projects, say how it is licensed.
## Project status
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
=======
# GLACIERH2O
>>>>>>> new-main
import pandas as pd
import json
# Generate visualizations and display them directly to the user using ace_tools
import ace_tools as tools
import matplotlib.pyplot as plt
# Load the glacier data
with open('/Users/hamza/glacier/data/glacier_data.json', 'r') as file:
glacier_data = json.load(file)
# Load the GTN report data
with open('/Users/hamza/glacier/data/gtn_report.json', 'r') as file:
gtn_report = json.load(file)
# Convert to DataFrames for easier manipulation
glacier_df = pd.DataFrame(glacier_data)
gtn_df = pd.DataFrame(gtn_report)
# Extract unique regions from glacier data
unique_regions = glacier_df['region'].unique()
# Mapping countries from GTN report to corresponding glacier regions manually
region_country_mapping = {
"1_alaska": ["US - UNITED STATES"],
"2_western_canada_us": ["CA - CANADA", "US - UNITED STATES"],
"3_arctic_canada": ["CA - CANADA"],
"4_greenland": ["GL - GREENLAND"],
"5_iceland": ["IS - ICELAND"],
"6_svalbard_jan_mayen": ["SJ - SVALBARD AND JAN MAYEN"],
"7_scandinavia": ["NO - NORWAY", "SE - SWEDEN", "FI - FINLAND"],
"8_russian_arctic": ["RU - RUSSIAN FEDERATION"],
"9_siberia": ["RU - RUSSIAN FEDERATION"],
"10_central_asia": ["KZ - KAZAKHSTAN", "TJ - TAJIKISTAN", "UZ - UZBEKISTAN", "KG - KYRGYZSTAN"],
"11_himalaya": ["NP - NEPAL", "IN - INDIA", "CN - CHINA", "BT - BHUTAN", "PK - PAKISTAN"],
"12_caucasus_middle_east": ["GE - GEORGIA", "TR - TURKEY", "IR - IRAN"],
"13_southern_andes": ["CL - CHILE", "AR - ARGENTINA"],
"14_new_zealand": ["NZ - NEW ZEALAND"],
"15_africa": ["MA - MOROCCO"],
"16_antarctic": ["AQ - ANTARCTICA"],
}
# Assign regions to the GTN report based on country mapping
def assign_region(country_code):
for region, countries in region_country_mapping.items():
if country_code in countries:
return region
return "Unknown"
gtn_df['region'] = gtn_df['GRDCCOUNTRY'].apply(assign_region)
# Merge glacier data with GTN report based on 'region'
merged_df = pd.merge(glacier_df, gtn_df, on='region', how='inner')
import ace_tools as tools; tools.display_dataframe_to_user(name="Merged Glacier and GTN Data", dataframe=merged_df)
# Display the first few rows of the merged dataframe
merged_df.head()
# Plot 1: Glacier Mass Change vs Station Elevation
fig1, ax1 = plt.subplots(figsize=(12, 8))
ax1.scatter(merged_df['glacier_mass_change'], merged_df['station_elevation'], alpha=0.7, edgecolors='k', s=80)
ax1.set_title('Glacier Mass Change vs Station Elevation', fontsize=14)
ax1.set_xlabel('Glacier Mass Change (Gt)', fontsize=12)
ax1.set_ylabel('Station Elevation (m)', fontsize=12)
ax1.grid(True)
# Plot 2: Average Glacier Mass Change by Region
fig2, ax2 = plt.subplots(figsize=(14, 8))
region_mass_change = merged_df.groupby('region')['glacier_mass_change'].mean().sort_values()
region_mass_change.plot(kind='barh', ax=ax2, color='skyblue', edgecolor='black')
ax2.set_title('Average Glacier Mass Change by Region', fontsize=14)
ax2.set_xlabel('Average Mass Change (Gt)', fontsize=12)
ax2.set_ylabel('Region', fontsize=12)
ax2.grid(axis='x', linestyle='--', alpha=0.7)
# Plot 3: Station Elevation vs Glacier Area
fig3, ax3 = plt.subplots(figsize=(12, 8))
ax3.scatter(merged_df['glacier_area'], merged_df['station_elevation'], alpha=0.7, color='green', edgecolors='k', s=80)
ax3.set_title('Station Elevation vs Glacier Area', fontsize=14)
ax3.set_xlabel('Glacier Area (km²)', fontsize=12)
ax3.set_ylabel('Station Elevation (m)', fontsize=12)
ax3.grid(True)
# Display the plots to the user
tools.display_dataframe_to_user(name="Merged Glacier and GTN Data", dataframe=merged_df)
import dash
from dash import dcc, html, Input, Output
def trigger_event(event):
pass
import plotly.express as px
import plotly.graph_objects as go
import pandas as pd
import os
import zipfile
import numpy as np
# Load and prepare data
zip_path = "Glacier.zip"
gtn_report_path = "GTN Report.xlsx"
extract_dir = "glacier_data"
# Extract glacier zip contents
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
zip_ref.extractall(extract_dir)
# Load regional glacier CSV files and assign approximate coordinates for visualization
region_coordinates = {
'1_alaska': (64.2008, -149.4937),
'2_western_canada_us': (52.9399, -106.4509),
'3_arctic_canada_north': (75.0000, -100.0000),
'4_arctic_canada_south': (65.0000, -100.0000),
'5_greenland_periphery': (72.0000, -40.0000),
'6_iceland': (64.9631, -19.0208),
'7_svalbard': (78.0000, 16.0000),
'8_scandinavia': (60.0000, 15.0000),
'9_russian_arctic': (70.0000, 100.0000),
'10_north_asia': (60.0000, 90.0000),
'11_central_europe': (47.0000, 10.0000),
'12_caucasus_middle_east': (42.0000, 45.0000),
'13_central_asia': (43.0000, 75.0000),
'14_south_asia_west': (35.0000, 70.0000),
'15_south_asia_east': (27.0000, 85.0000),
'16_low_latitudes': (0.0000, -60.0000),
'17_southern_andes': (-40.0000, -70.0000),
'18_new_zealand': (-41.2865, 174.7762),
'19_antarctic_and_subantarctic': (-75.0000, 0.0000)
}
# Load glacier data into a combined DataFrame
glacier_data = []
region_files = [file for file in os.listdir(extract_dir) if file.endswith('.csv') and file != '0_global.csv']
for file in region_files:
region_name = file.replace('.csv', '')
df_region = pd.read_csv(os.path.join(extract_dir, file))
df_region['region'] = region_name
df_region['latitude'], df_region['longitude'] = region_coordinates.get(region_name, (0, 0))
glacier_data.append(df_region)
df_glacier_regions = pd.concat(glacier_data, ignore_index=True)
# Simulate river discharge based on glacier melt trends
def simulate_discharge(glacier_mass_loss):
max_discharge = 500 # Max discharge in cubic meters per second
normalized_loss = (glacier_mass_loss - glacier_mass_loss.min()) / (glacier_mass_loss.max() - glacier_mass_loss.min())
simulated_discharge = max_discharge * (1 - normalized_loss) + np.random.normal(0, 10, size=len(glacier_mass_loss))
return np.clip(simulated_discharge, 50, max_discharge)
# Enhance DataFrame with simulated discharge
df_glacier_regions['simulated_discharge'] = simulate_discharge(df_glacier_regions['combined_gt'])
# Initialize Dash app
app = dash.Dash(__name__)
app.title = "Glacier Melt Impact on Water Resources - Interactive Visualization"
# Layout with 3D globe map and a side chart for selected region details
app.layout = html.Div([
html.H1("🌍 Glacier Melt and Water Resources Visualization",
style={'textAlign': 'center', 'fontSize': '28px', 'marginBottom': '20px', 'color': '#2C3E50'}),
html.Div([
dcc.Graph(id='world-map-visualization', style={'height': '75vh', 'width': '65%', 'display': 'inline-block'}),
dcc.Graph(id='region-detail-chart', style={'height': '75vh', 'width': '33%', 'display': 'inline-block', 'paddingLeft': '1%'})
], style={'display': 'flex', 'justifyContent': 'center'}),
html.Div([
html.Label("⏩ Animation Speed:", style={'fontWeight': 'bold', 'fontSize': '16px'}),
dcc.Slider(
id='animation-speed',
min=50,
max=1000,
step=50,
value=300,
marks={50: 'Fast', 500: 'Medium', 1000: 'Slow'},
tooltip={"placement": "bottom", "always_visible": True}
)
], style={'width': '60%', 'margin': 'auto', 'paddingTop': '20px'})
])
# Callback to update the 3D world map for smoother panning and zooming
@app.callback(
Output('world-map-visualization', 'figure'),
[Input('animation-speed', 'value')]
)
def update_world_map(animation_speed):
min_size, max_size = 4, 15
normalized_sizes = (
(df_glacier_regions['glacier_area'] - df_glacier_regions['glacier_area'].min()) /
(df_glacier_regions['glacier_area'].max() - df_glacier_regions['glacier_area'].min())
)
bubble_sizes = normalized_sizes * (max_size - min_size) + min_size
fig = go.Figure()
fig.add_trace(go.Scattergeo(
lat=df_glacier_regions['latitude'],
lon=df_glacier_regions['longitude'],
mode='markers',
marker=dict(
size=bubble_sizes,
color=df_glacier_regions['simulated_discharge'],
colorscale='Viridis',
cmin=df_glacier_regions['simulated_discharge'].min(),
cmax=df_glacier_regions['simulated_discharge'].max(),
showscale=True,
colorbar=dict(title="Discharge (m³/s)", thickness=15, len=0.5),
line=dict(width=0.4, color='DarkSlateGrey')
),
text=df_glacier_regions.apply(lambda row: (
f"Region: {row['region']}<br>Year: {row['end_dates']}<br>Glacier Area: {row['glacier_area']:.2f} km²<Br>Discharge: {row['simulated_discharge']:.2f} m³/s"
), axis=1),
hoverinfo='text',
customdata=df_glacier_regions[['region']]
))
fig.update_geos(
projection_type="orthographic",
showland=True,
landcolor="rgb(230, 230, 230)",
showocean=True,
oceancolor="rgb(180, 210, 255)",
showcountries=True,
countrycolor="rgb(150, 150, 150)",
center=dict(lat=20, lon=0),
resolution=50,
)
fig.update_layout(
title="🌍 3D Globe - Glacier Melt and Water Resources",
margin=dict(l=0, r=0, t=40, b=0),
dragmode='pan',
geo=dict(
projection_rotation=dict(lon=0, lat=0),
projection_scale=0.9,
lataxis=dict(range=[-90, 90]),
lonaxis=dict(range=[-180, 180]),
),
font=dict(family="Arial", size=13, color="#2C3E50"),
)
return fig
# Callback to update the region detail chart when a bubble is clicked
@app.callback(
Output('region-detail-chart', 'figure'),
[Input('world-map-visualization', 'clickData')]
)
def update_region_chart(clickData):
if not clickData:
return go.Figure(layout=dict(title="Select a region to see details", font=dict(size=14)))
selected_region = clickData['points'][0]['customdata'][0]
region_data = df_glacier_regions[df_glacier_regions['region'] == selected_region].sort_values(by='end_dates')
fig = go.Figure()
fig.add_trace(go.Scatter(
x=region_data['end_dates'],
y=region_data['combined_gt'],
mode='lines+markers',
name='Glacier Mass Change (Gt)',
line=dict(color='blue')
))
fig.add_trace(go.Scatter(
x=region_data['end_dates'],
y=region_data['simulated_discharge'],
mode='lines+markers',
name='Simulated River Discharge (m³/s)',
line=dict(color='green')
))
fig.update_layout(
title=f"Glacier Mass vs Water Discharge - {selected_region.replace('_', ' ').title()}",
xaxis_title="Year",
yaxis_title="Value",
legend=dict(x=0.02, y=0.98),
margin=dict(l=30, r=20, t=40, b=40),
font=dict(family="Arial", size=12)
)
return fig
if __name__ == '__main__':
app.run_server(debug=True, port=8060)
:root {
--background-color: #f4f4f9;
--text-color: #34495e;
--button-bg: #34495e;
--button-text: #fff;
--box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
--border-radius: 12px;
}
.dark-mode {
--background-color: #2c3e50;
--text-color: #ecf0f1;
--button-bg: #e74c3c;
--button-text: #fff;
--box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);
}
body {
font-family: Arial, sans-serif;
background-color: var(--background-color);
color: var(--text-color);
margin: 0;
padding: 10px;
height: 100vh;
display: flex;
flex-direction: column;
}
h1 {
font-size: 30px;
font-weight: bold;
margin-bottom: 20px;
text-align: center;
}
#controls {
display: flex;
justify-content: center;
align-items: center;
gap: 15px;
padding: 10px;
margin-bottom: 15px;
background-color: var(--background-color);
border-radius: var(--border-radius);
box-shadow: var(--box-shadow);
}
.dark-mode #controls {
background-color: #34495e !important;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4) !important;
}
.dark-mode #controls button,
.dark-mode #controls select,
.dark-mode #controls input,
.dark-mode #controls label {
color: #ecf0f1 !important;
background-color: rgba(255, 255, 255, 0.1) !important;
border: 1px solid rgba(255, 255, 255, 0.2) !important;
}
.year-control {
display: flex;
align-items: center;
gap: 8px;
}
#year-input {
width: 70px;
padding: 5px;
border-radius: 6px;
text-align: center;
border: 1px solid #ccc;
}
#year-slider {
width: 200px;
}
button, select, input[type="number"], input[type="range"] {
padding: 6px 12px;
border-radius: 8px;
border: 1px solid #ccc;
cursor: pointer;
transition: all 0.2s ease;
}
button:hover, select:hover, input:hover {
box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}
#container {
display: flex;
justify-content: space-between;
gap: 20px;
flex-grow: 1;
}
#map-container {
flex: 1;
max-width: 70%;
height: 80vh;
position: relative;
border-radius: var(--border-radius);
box-shadow: var(--box-shadow);
}
#map {
width: 100%;
height: 100%;
border-radius: var(--border-radius);
position: relative;
z-index: 1;
}
#chart-container {
flex: 1;
max-width: 28%;
height: 80vh;
display: flex;
flex-direction: column;
gap: 20px;
}
#region-chart {
width: 100%;
height: 100%;
border-radius: var(--border-radius);
box-shadow: var(--box-shadow);
}
/* Legend Styles */
#legend {
position: absolute;
top: 10px;
right: 10px;
background-color: rgba(255, 255, 255, 0.9);
padding: 10px;
border-radius: 8px;
box-shadow: var(--box-shadow);
font-weight: bold;
width: 200px;
z-index: 1002;
}
#legend .legend-title {
text-align: center;
font-size: 14px;
margin-bottom: 8px;
}
#legend .legend-item {
display: flex;
align-items: center;
margin-bottom: 5px;
}
#legend .color-box {
width: 20px;
height: 20px;
margin-right: 8px;
border-radius: 4px;
border: 1px solid #ccc;
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Load the glacier data (assumed to be preloaded)
region_data = pd.read_csv('glacier_data/1_alaska.csv') # Example file, adjust as necessary
# Load the GTN dataset
gtn_data = pd.read_excel('GTN Report.xlsx') # Example for GTN data
# Set the plot style
sns.set(style="whitegrid")
# Create a figure with 3 subplots
fig, axes = plt.subplots(3, 1, figsize=(10, 18))
fig.suptitle('Glacier and River Discharge Visualization Prototype', fontsize=16)
# 1. Time-based Change (Glacier Mass Change Over Time)
axes[0].plot(region_data['end_dates'], region_data['combined_gt'], marker='o', color='b', label='Mass Change (Gt)')
axes[0].set_title('Glacier Mass Change Over Time', fontsize=14)
axes[0].set_xlabel('Year')
axes[0].set_ylabel('Mass Change (Gt)')
axes[0].legend()
# 2. Size-based Relationship (Glacier Area vs. Glacier Mass Change)
axes[1].scatter(region_data['glacier_area'], region_data['combined_gt'], c=region_data['end_dates'], cmap='viridis')
axes[1].set_title('Glacier Area vs. Mass Change', fontsize=14)
axes[1].set_xlabel('Glacier Area (km²)')
axes[1].set_ylabel('Mass Change (Gt)')
cbar = fig.colorbar(plt.cm.ScalarMappable(cmap='viridis'), ax=axes[1])
cbar.set_label('Year')
# 3. Scatter Plot: Glacier Mass Change vs. Catchment Size (Matching regions and years)
# Filter data for matching years and regions (for Alaska in this case)
region_name = 'alaska'
catchment_data = gtn_data[gtn_data['river_name'].str.contains(region_name, case=False, na=False)] # Adjust for region
# Merge datasets based on year (assuming region_data and catchment_data are aligned)
merged_data = pd.merge(region_data, catchment_data, left_on='end_dates', right_on='station_elevation', how='inner')
# Ensure both datasets have matching rows
if not merged_data.empty:
axes[2].scatter(merged_data['CATCHMENT_SIZE'], merged_data['combined_gt'], color='r', alpha=0.5)
axes[2].set_title('Glacier Mass Change vs. Catchment Size', fontsize=14)
axes[2].set_xlabel('Catchment Size (km²)')
axes[2].set_ylabel('Mass Change (Gt)')
else:
axes[2].text(0.5, 0.5, 'No matching data for selected region', ha='center', va='center', fontsize=12, color='red')
plt.tight_layout(rect=[0, 0, 1, 0.97])
plt.show()
import zipfile
import pandas as pd
import json
import os
# Paths
zip_path = "Glacier.zip"
xlsx_path = "GTN Report.xlsx"
extract_dir = "glacier_data"
output_dir = "data"
# Create data directory if it doesn't exist
os.makedirs(output_dir, exist_ok=True)
# Process glacier data
glacier_data = []
region_coordinates = {
'1_alaska': (64.2008, -149.4937), '2_western_canada_us': (52.9399, -106.4509),
'3_arctic_canada_north': (75.0, -100.0), '4_arctic_canada_south': (65.0, -100.0),
'5_greenland_periphery': (72.0, -40.0), '6_iceland': (64.9631, -19.0208),
'7_svalbard': (78.0, 16.0), '8_scandinavia': (60.0, 15.0),
'9_russian_arctic': (70.0, 100.0), '10_north_asia': (60.0, 90.0),
'11_central_europe': (47.0, 10.0), '12_caucasus_middle_east': (42.0, 45.0),
'13_central_asia': (43.0, 75.0), '14_south_asia_west': (35.0, 70.0),
'15_south_asia_east': (27.0, 85.0), '16_low_latitudes': (0.0, -60.0),
'17_southern_andes': (-40.0, -70.0), '18_new_zealand': (-41.2865, 174.7762),
'19_antarctic_and_subantarctic': (-75.0, 0.0)
}
for file in os.listdir(extract_dir):
if file.endswith('.csv') and file != '0_global.csv':
region = file.replace('.csv', '')
df = pd.read_csv(os.path.join(extract_dir, file))
lat, lon = region_coordinates.get(region, (0, 0))
for _, row in df.iterrows():
glacier_data.append({
"region": region,
"start_date": row['start_dates'],
"end_date": row['end_dates'],
"glacier_area": row['glacier_area'],
"glacier_mass_change": row['combined_gt'],
"simulated_discharge": 500 * (1 - ((row['combined_gt'] - df['combined_gt'].min()) / (df['combined_gt'].max() - df['combined_gt'].min()))),
"latitude": lat,
"longitude": lon
})
# Save glacier data to JSON
with open(os.path.join(output_dir, 'glacier_data.json'), 'w') as f:
json.dump(glacier_data, f, indent=4)
# Convert GTN Report to JSON
df_gtn = pd.read_excel(xlsx_path)
df_gtn.to_json(os.path.join(output_dir, 'gtn_report.json'), orient='records', indent=4)
print("✅ Data successfully converted and saved in 'data/' directory.")
start_dates,end_dates,glacier_area,region,combined_gt,combined_gt_errors,combined_mwe,combined_mwe_errors
2000.0,2001.0,704082.6956499998,global,-78.04414729402814,111.56095088251794,-0.1111786793375206,0.1583621138501352
2001.0,2002.0,701805.4987500003,global,-215.16931097001844,95.3001011576375,-0.3075164866023069,0.1350498121659405
2002.0,2003.0,699528.3018500003,global,-128.46636738674923,91.14634450070768,-0.1841997326262217,0.1289299604899674
2003.0,2004.0,697251.1049500001,global,-192.6724697716301,72.79887688516011,-0.2771630264606625,0.1028951725208123
2004.0,2005.0,694973.9080500001,global,-229.2369109878561,73.022158218317,-0.3308421919121849,0.1028436503023272
2005.0,2006.0,692696.71115,global,-315.0371756633185,74.19065798809451,-0.4561666396999292,0.1044578602427483
2006.0,2007.0,690419.51425,global,-279.8898739792978,72.77317030930298,-0.4066108567264724,0.1025138185768302
2007.0,2008.0,688142.31735,global,-323.16570882967466,71.78509732133082,-0.4710335566158922,0.1010360421851532
2008.0,2009.0,685865.12045,global,-178.6324817323364,71.86184704387401,-0.2612321087124307,0.1011209402057232
2009.0,2010.0,683587.9235500002,global,-231.2381243724868,71.29354455724742,-0.3392890923913098,0.1001020384598227
2010.0,2011.0,681310.7266500002,global,-231.1966727048064,72.2582027545506,-0.3403621001158775,0.101352981542154
2011.0,2012.0,679033.5297499998,global,-365.9472468839626,68.11267549573648,-0.540545313270877,0.0950926143458494
2012.0,2013.0,676756.3328500001,global,-188.0208512243996,67.35045471659744,-0.2786624991943321,0.0941254547446842
2013.0,2014.0,674479.1359500001,global,-304.73798136525033,66.47051377096227,-0.4531718327704068,0.0925856747213776
2014.0,2015.0,672201.9390499997,global,-149.889416279315,65.94044282966604,-0.2236536803279121,0.0920570437100916
2015.0,2016.0,669924.74215,global,-284.97423508815865,66.77259130583126,-0.4266624477275931,0.0932270670335857
2016.0,2017.0,667647.5452499996,global,-340.6076946742656,68.35959222730513,-0.5116960211749099,0.0952916518024702
2017.0,2018.0,665370.3483500001,global,-217.68675972042345,66.39070274109359,-0.3281507593734814,0.0924077513562398
2018.0,2019.0,663093.1514499999,global,-243.81282612823085,66.54077158950466,-0.3687965484035694,0.0924649491234518
2019.0,2020.0,660815.9545499999,global,-412.9645781490086,69.99144862252744,-0.6268117422048606,0.0969733224466875
2020.0,2021.0,658538.75765,global,-405.0394156368366,76.20680182507151,-0.6169085501621713,0.1065416966938755
2021.0,2022.0,656261.5607500002,global,-217.7163545547422,81.6846283807594,-0.3327506622695744,0.1151000186974428
2022.0,2023.0,653984.3638500002,global,-460.2989143829609,100.8285184125692,-0.7059556646949124,0.138700930079604
2023.0,2024.0,651707.1669499998,global,-548.025110248126,120.16099017378784,-0.8434372990227316,0.1662574332317422
start_dates,end_dates,glacier_area,region,combined_gt,combined_gt_errors,combined_mwe,combined_mwe_errors
2000.0,2001.0,2487.7225,north_asia,-0.9197019532932548,1.0265275291265996,-0.3708087865014635,0.4267978293382843
2001.0,2002.0,2477.3595,north_asia,-1.5411560324271425,0.5757372429047373,-0.6239681453842844,0.2374580820623789
2002.0,2003.0,2466.9965,north_asia,-2.008519104670919,0.5971520843045376,-0.8166054524398674,0.2449868095663878
2003.0,2004.0,2456.6335,north_asia,-1.3367036448471714,0.5605964144603081,-0.5457573636092294,0.2316484965833838
2004.0,2005.0,2446.2705,north_asia,-0.6073020718796399,0.5800062732919948,-0.2490033135176266,0.2410596415169421
2005.0,2006.0,2435.9075,north_asia,-0.4421699496148141,0.543997009186656,-0.1820678539590347,0.2262170617791567
2006.0,2007.0,2425.5445,north_asia,-1.4369095884292484,0.5547031793605927,-0.5941895884796716,0.2289152797255827
2007.0,2008.0,2415.1815,north_asia,-1.5576011706781698,0.555112921025605,-0.6468615442700755,0.2287454249490515
2008.0,2009.0,2404.8185,north_asia,-1.7288465569663265,0.5495905128318924,-0.7210725895012671,0.2258850833242974
2009.0,2010.0,2394.4555,north_asia,0.4721992168201645,0.5558080553432801,0.1977986548721905,0.2311109134930584
2010.0,2011.0,2384.0925,north_asia,-1.278298719425217,0.549382943810827,-0.5377916984722222,0.2270930475136839
2011.0,2012.0,2373.7295,north_asia,-2.1266620946428576,0.5504841757070587,-0.8986117746265077,0.2247891996692553
2012.0,2013.0,2363.3665,north_asia,-2.082237426114749,0.5503336578162555,-0.8836982900957205,0.2249054279600158
2013.0,2014.0,2353.0035,north_asia,-0.9064403927766193,0.5632256664521381,-0.3863861215956616,0.2336466676687554
2014.0,2015.0,2342.6405,north_asia,-0.7676348462089759,0.5665440381989155,-0.3286653160182816,0.2352461601417673
2015.0,2016.0,2332.2775,north_asia,-1.9092539350345972,0.578671943989981,-0.8210853690566785,0.2375356175403869
2016.0,2017.0,2321.9145,north_asia,-1.0968359067228153,0.5699045112972384,-0.4738056959762406,0.2360857122049479
2017.0,2018.0,2311.5515,north_asia,-2.229459832807573,0.5802175682894745,-0.9673884998110736,0.2369800852580313
2018.0,2019.0,2301.1885,north_asia,-1.4296283286683342,0.5770101437116635,-0.6231258843095254,0.2382938770019798
2019.0,2020.0,2290.8255,north_asia,-0.8149763258916679,0.551439985831076,-0.356827096488514,0.2288743209514384
2020.0,2021.0,2280.4625,north_asia,-1.0545339240245566,0.6479196117270417,-0.4638125139790883,0.2687609048907057
2021.0,2022.0,2270.0995,north_asia,-1.2541491015757211,0.6493331246844912,-0.5541267553189984,0.2689804421564722
2022.0,2023.0,2259.7365,north_asia,-2.084194149188092,1.143432150387618,-0.9250926140395432,0.4739003462856356
2023.0,2024.0,2249.3735,north_asia,-2.383431710308152,1.1452951255418866,-1.0627863806836724,0.4740687462418848
start_dates,end_dates,glacier_area,region,combined_gt,combined_gt_errors,combined_mwe,combined_mwe_errors
2000.0,2001.0,2140.639,central_europe,-0.5934003711822097,0.6009122609745883,-0.2780412432778796,0.2877558756683069
2001.0,2002.0,2121.1834,central_europe,0.4019665729881813,0.43422767182019,0.1900713070317529,0.2079672547923675
2002.0,2003.0,2101.7278,central_europe,-0.7554326466468112,0.4131614181633634,-0.3605156499993134,0.1972606323468862
2003.0,2004.0,2082.2722,central_europe,-4.0975870621061805,0.4666085336252875,-1.9737653955826773,0.2009964215508334
2004.0,2005.0,2062.8166,central_europe,-1.4388937785429576,0.4052201289287214,-0.6996373060453491,0.1911960977374946
2005.0,2006.0,2043.3609999999999,central_europe,-1.8171159119364328,0.3967507632924834,-0.8919538265265944,0.185167216048449
2006.0,2007.0,2023.9054,central_europe,-2.3588428656706264,0.4113774504090245,-1.1689976654708405,0.188954974992967
2007.0,2008.0,2004.4497999999999,central_europe,-1.5790536047853114,0.3998663881665397,-0.7901445173856915,0.1879416409450789
2008.0,2009.0,1984.9942,central_europe,-1.5093602965005972,0.4222234187900853,-0.7626732624750852,0.1991750171850177
2009.0,2010.0,1965.5386,central_europe,-1.5827261116565263,0.4393865775364854,-0.8076608505112504,0.2072188617200432
2010.0,2011.0,1946.083,central_europe,-1.034331703816414,0.398186173317034,-0.5330934168399737,0.1892932158400928
2011.0,2012.0,1926.6274,central_europe,-2.494022407325491,0.4078106827608884,-1.2983968712841736,0.186159434025528
2012.0,2013.0,1907.1718,central_europe,-2.7965827240695345,0.4694817685252441,-1.4707629995479157,0.2148774843126121
2013.0,2014.0,1887.7161999999998,central_europe,-0.5687006031528772,0.4564944870767174,-0.3021703361283248,0.2184411828692258
2014.0,2015.0,1868.2606,central_europe,-0.3477905848183993,0.451926949278947,-0.186717578964476,0.2165158298651822
2015.0,2016.0,1848.805,central_europe,-2.9636622375676023,0.4827475994928006,-1.607838564640458,0.2202794156836196
2016.0,2017.0,1829.3494,central_europe,-1.3798379610635585,0.4567721102063791,-0.7565476178887021,0.2164867944346277
2017.0,2018.0,1809.8937999999998,central_europe,-2.5871083005234867,0.4748642787961008,-1.4337266526145749,0.2190635878951354
2018.0,2019.0,1790.4382,central_europe,-2.4371975090104008,0.4971035872454163,-1.3653255958889576,0.2310640492610557
2019.0,2020.0,1770.9826,central_europe,-1.919024957544504,0.4848397371601196,-1.0868539056291902,0.2278587125306085
2020.0,2021.0,1751.527,central_europe,-1.275594599025034,0.4984105265630102,-0.7304671282362125,0.2369982104164882
2021.0,2022.0,1732.0714,central_europe,-1.582979860184506,0.4776207527388756,-0.9166730017324138,0.225829019772788
2022.0,2023.0,1712.6158,central_europe,-6.237435177272426,0.7282044209005228,-3.653010668614841,0.3154975406797529
2023.0,2024.0,1693.1602,central_europe,-4.375191438019658,0.7192057205016613,-2.5918141163147377,0.3284847569957036
start_dates,end_dates,glacier_area,region,combined_gt,combined_gt_errors,combined_mwe,combined_mwe_errors
2000.0,2001.0,1282.75515,caucasus_middle_east,-1.5256898932375544,0.5341164210035886,-1.1929640161209925,0.4056858681162848
2001.0,2002.0,1275.82805,caucasus_middle_east,-0.7523721686565512,0.2997816663979696,-0.5914872908517828,0.2282378760579874
2002.0,2003.0,1268.90095,caucasus_middle_east,0.3736522375370595,0.310850456310781,0.2953552578227448,0.2381195007360484
2003.0,2004.0,1261.97385,caucasus_middle_east,0.3913096299000091,0.3083443211841409,0.311010478682684,0.2361506457964048
2004.0,2005.0,1255.04675,caucasus_middle_east,0.6360925487896292,0.3221332080012991,0.5083528310759058,0.2460014374442763
2005.0,2006.0,1248.11965,caucasus_middle_east,0.2166234935187321,0.2961202263031932,0.1740821238389793,0.2270945002864954
2006.0,2007.0,1241.19255,caucasus_middle_east,-1.0808310207835916,0.2704380588544544,-0.8734207038185797,0.2033518293413582
2007.0,2008.0,1234.26545,caucasus_middle_east,-1.5967452192637428,0.3109973504342477,-1.2975732804238778,0.2306652590398946
2008.0,2009.0,1227.33835,caucasus_middle_east,-0.5404262217384886,0.2846319554419407,-0.4416486935938358,0.2174437842698564
2009.0,2010.0,1220.41125,caucasus_middle_east,-0.4336528707431656,0.2690367155284728,-0.3564026011519403,0.2057907085417107
2010.0,2011.0,1213.48415,caucasus_middle_east,-0.8591613718604939,0.2778774221375575,-0.7101424536081338,0.2106831749917226
2011.0,2012.0,1206.55705,caucasus_middle_east,-0.7173569958488278,0.2980699256326609,-0.5963377715759539,0.2270806307108563
2012.0,2013.0,1199.62995,caucasus_middle_east,-1.8119059633143595,0.3142384285775557,-1.5149321984055495,0.230911402262183
2013.0,2014.0,1192.70285,caucasus_middle_east,-0.2524468555698191,0.2793540268735304,-0.2122963611555078,0.2141610117065099
2014.0,2015.0,1185.77575,caucasus_middle_east,-1.3141644056080215,0.2920850704691671,-1.111608802839578,0.2184043865861738
2015.0,2016.0,1178.84865,caucasus_middle_east,-1.5419156322181675,0.3044411268041288,-1.3119201503199795,0.2260167187025248
2016.0,2017.0,1171.92155,caucasus_middle_east,-0.7850001980956869,0.2834659727622445,-0.6718557952539899,0.2154400867179049
2017.0,2018.0,1164.99445,caucasus_middle_east,-0.835159306231931,0.3310436165272817,-0.7190354625307749,0.2520180075719367
2018.0,2019.0,1158.06735,caucasus_middle_east,-0.7279796066933246,0.3574528230998834,-0.6305074718188524,0.2728881075487028
2019.0,2020.0,1151.14025,caucasus_middle_east,-0.9227565189113288,0.3001090948682106,-0.8040142096205283,0.2275697374597438
2020.0,2021.0,1144.21315,caucasus_middle_east,-1.5198827979446523,0.3347845918920333,-1.3323183415991893,0.2502115501631488
2021.0,2022.0,1137.28605,caucasus_middle_east,-0.4267280863623179,0.3368468015773312,-0.3763451795882921,0.2579815819120272
2022.0,2023.0,1130.35895,caucasus_middle_east,-0.9122480213138148,0.4835624946461259,-0.8094711864003545,0.3694376748924867
2023.0,2024.0,1123.43185,caucasus_middle_east,-0.7397455813287596,0.4807692861578052,-0.6604508282511381,0.367855205728308
start_dates,end_dates,glacier_area,region,combined_gt,combined_gt_errors,combined_mwe,combined_mwe_errors
2000.0,2001.0,49702.3543,central_asia,2.9975381821101768,13.602258608119822,0.0604912563604096,0.2767044591854465
2001.0,2002.0,49613.6089,central_asia,-14.36815509049936,12.801266303535042,-0.2904725049798621,0.2600156281964412
2002.0,2003.0,49524.8635,central_asia,-10.731484657993787,12.798345532189735,-0.2173408511454381,0.2601377052145498
2003.0,2004.0,49436.1181,central_asia,12.160601523846324,12.850242776470784,0.2467263525522605,0.2611296101843573
2004.0,2005.0,49347.3727,central_asia,8.206079680365974,12.529275712212222,0.1667925067944912,0.254756026597588
2005.0,2006.0,49258.6273,central_asia,3.2325794931738434,12.859307764986244,0.0658221024443991,0.2615861694868336
2006.0,2007.0,49169.8819,central_asia,-25.270664773678984,12.778722011017765,-0.5154924907058607,0.2586934650789088
2007.0,2008.0,49081.1365,central_asia,-21.34492309243656,12.567643553393616,-0.436199160630047,0.2547497309987812
2008.0,2009.0,48992.3911,central_asia,-31.48646052430057,12.485617654744583,-0.6446144682395528,0.2519772786017513
2009.0,2010.0,48903.6457,central_asia,23.07038904132115,12.982794977448638,0.4731714401963555,0.2630744478198715
2010.0,2011.0,48814.9003,central_asia,-10.75649385006233,12.954730567358318,-0.2210157219425151,0.2633208769516786
2011.0,2012.0,48726.1549,central_asia,4.677905826930605,12.832668637676116,0.0962928797044756,0.2610215269130811
2012.0,2013.0,48637.4095,central_asia,-12.448555179098824,12.38624788468882,-0.2567162467555985,0.2516646552314548
2013.0,2014.0,48548.6641,central_asia,-9.558388235951202,12.600793882425195,-0.1974750461775573,0.256163241022585
2014.0,2015.0,48459.9187,central_asia,-2.956071807406667,12.431821317438994,-0.0611838976842785,0.2528922722986518
2015.0,2016.0,48371.1733,central_asia,-19.779397061203014,12.763411416052037,-0.4101391892970858,0.2588752950892952
2016.0,2017.0,48282.4279,central_asia,-1.7738837045089502,12.98186721589857,-0.036850287899768,0.264093992338661
2017.0,2018.0,48193.6825,central_asia,-11.729947005651477,12.7270330392278,-0.2441241698816651,0.2586408015457544
2018.0,2019.0,48104.9371,central_asia,-25.09731281921282,13.502632894589192,-0.523289974599141,0.2735056689341798
2019.0,2020.0,48016.1917,central_asia,-20.872552300354226,12.931279821236304,-0.4360062227817344,0.2622128741092664
2020.0,2021.0,47927.4463,central_asia,4.568755389673656,12.875546575333429,0.0956133333223047,0.2618959640611981
2021.0,2022.0,47838.7009,central_asia,-11.633133913436737,17.499856769876416,-0.2439058358380714,0.3558164017008777
2022.0,2023.0,47749.9555,central_asia,-40.61362594960092,18.95295451369369,-0.8531072547271961,0.3833550749370691
2023.0,2024.0,47661.2101,central_asia,-40.1200731250466,18.813340791317803,-0.8443091442107833,0.3805524099644328
start_dates,end_dates,glacier_area,region,combined_gt,combined_gt_errors,combined_mwe,combined_mwe_errors
2000.0,2001.0,33507.5776,south_asia_west,6.851964677244642,9.262411269403446,0.2051053199536034,0.276570688173286
2001.0,2002.0,33386.7328,south_asia_west,-4.64241326904263,7.977766708936824,-0.1394680469090855,0.2382740783384383
2002.0,2003.0,33265.888,south_asia_west,-2.352745468347903,7.767363942734289,-0.0709382819775451,0.2320615647961203
2003.0,2004.0,33145.0432,south_asia_west,-13.091190343162353,7.948071287325642,-0.3961552262943089,0.2366809815458294
2004.0,2005.0,33024.1984,south_asia_west,-11.446097131719313,7.656436904146613,-0.3476401942874471,0.2281336850467191
2005.0,2006.0,32903.3536,south_asia_west,4.807317498760151,7.162216286356067,0.1465438114886275,0.2138858717126563
2006.0,2007.0,32782.5088,south_asia_west,-23.39682475507553,7.153717839152524,-0.715845958512445,0.2108750617770052
2007.0,2008.0,32661.664,south_asia_west,-20.770993357775385,6.947664078299761,-0.6378576988390201,0.2052631736287435
2008.0,2009.0,32540.8192,south_asia_west,-15.082436168591911,7.219169733217031,-0.4648874859141326,0.2145280433070819
2009.0,2010.0,32419.9744,south_asia_west,9.726773430882623,7.774406202181495,0.3009268741294648,0.2318436332203859
2010.0,2011.0,32299.1296,south_asia_west,8.545261399182058,7.461524248546874,0.2653623929899493,0.2225838979918782
2011.0,2012.0,32178.2848,south_asia_west,7.573331993465979,7.420272297090443,0.2360635565799196,0.2214282283926683
2012.0,2013.0,32057.44,south_asia_west,-7.838206686315059,6.961496332973971,-0.2452407947266708,0.2076790404320982
2013.0,2014.0,31936.5952,south_asia_west,-12.28292520262717,7.145590003205553,-0.3857607481338138,0.2127195721543782
2014.0,2015.0,31815.7504,south_asia_west,-0.6933992166120448,6.993684942578593,-0.0218597916091566,0.2089681522803515
2015.0,2016.0,31694.9056,south_asia_west,-0.9024996256509292,7.083757272243927,-0.0285602766226672,0.2116577790781218
2016.0,2017.0,31574.0608,south_asia_west,-10.96446277745992,7.477681157988901,-0.3483066436259154,0.2228311992339319
2017.0,2018.0,31453.216,south_asia_west,-2.3260157023337524,7.304017322445805,-0.074174124088725,0.2182157573670954
2018.0,2019.0,31332.3712,south_asia_west,-3.924469396591872,7.358358141701729,-0.1256297586339628,0.2197889353135883
2019.0,2020.0,31211.5264,south_asia_west,4.378411912846257,8.15168415770309,0.1407040019953926,0.2434837871452853
2020.0,2021.0,31090.6816,south_asia_west,5.577242329699477,8.046897458142928,0.1799260780087948,0.2402962007209694
2021.0,2022.0,30969.8368,south_asia_west,-9.815571924051932,10.792231609503926,-0.3178934170485942,0.32213736997399
2022.0,2023.0,30848.992,south_asia_west,-34.3384991492528,13.96238444044143,-1.1164651546190605,0.4140286390696801
2023.0,2024.0,30728.1472,south_asia_west,-8.254232398376997,13.74011743408555,-0.2694295088250096,0.4103683109101171
start_dates,end_dates,glacier_area,region,combined_gt,combined_gt_errors,combined_mwe,combined_mwe_errors
2000.0,2001.0,14907.1245,south_asia_east,-2.327916651477616,5.478577160246203,-0.1566312413721902,0.3728669767408168
2001.0,2002.0,14837.8747,south_asia_east,-8.137158352811356,5.297867355594772,-0.5500547381397778,0.3595843599372022
2002.0,2003.0,14768.6249,south_asia_east,-6.998749077267797,5.2984576149315705,-0.4753190327676427,0.3599021000268251
2003.0,2004.0,14699.3751,south_asia_east,-8.198889903697747,5.3297633827095385,-0.5594496724866971,0.3617459092622265
2004.0,2005.0,14630.1253,south_asia_east,-8.98001140526133,5.390556783969636,-0.6156497171469637,0.3656840434382815
2005.0,2006.0,14560.8755,south_asia_east,-5.8649778560322,5.331118780068185,-0.4040021998149696,0.3623635463025686
2006.0,2007.0,14491.6257,south_asia_east,-10.705225792838034,5.330634260539739,-0.740940894378711,0.3610459971910599
2007.0,2008.0,14422.375900000001,south_asia_east,-5.000839525910631,5.339591824794993,-0.3477850821703412,0.363091047201434
2008.0,2009.0,14353.1261,south_asia_east,-5.511233648377613,5.325547088289289,-0.3851298359091711,0.362048073552001
2009.0,2010.0,14283.8763,south_asia_east,-6.207572947749696,5.2792950995509615,-0.4358937008477362,0.3587635010514385
2010.0,2011.0,14214.6265,south_asia_east,-4.663836245068104,5.284357474628559,-0.3290884818276441,0.3593793285545597
2011.0,2012.0,14145.3767,south_asia_east,0.8262841166758295,5.286064056891564,0.0585894915021745,0.3598349415723019
2012.0,2013.0,14076.1269,south_asia_east,-9.263476118598678,5.270056695685486,-0.6600786022400804,0.3573679890146167
2013.0,2014.0,14006.8771,south_asia_east,-4.762808642776319,5.430590923475173,-0.3410567558249808,0.3693289032395563
2014.0,2015.0,13937.6273,south_asia_east,-7.233284672588605,5.320519997990309,-0.5205369368755304,0.361353753021102
2015.0,2016.0,13868.3775,south_asia_east,-6.492342790490154,5.3590451850896,-0.4695486855450435,0.3641441850391824
2016.0,2017.0,13799.127700000001,south_asia_east,-3.767927807121404,5.296852272899367,-0.2738771381855682,0.3603521850804552
2017.0,2018.0,13729.8779,south_asia_east,-17.122102144399964,6.222615527630999,-1.2508212482676402,0.4195730174854195
2018.0,2019.0,13660.6281,south_asia_east,-4.530994315133016,5.395884008163018,-0.3326807644907786,0.366997966307237
2019.0,2020.0,13591.3783,south_asia_east,-8.507998145090227,5.343388879407178,-0.6278685467768913,0.3625937138609445
2020.0,2021.0,13522.1285,south_asia_east,-5.707608395472385,5.4117991791636335,-0.4233640246580628,0.3678927006155137
2021.0,2022.0,13452.878700000001,south_asia_east,-4.153046594747883,7.938420838696924,-0.3096395438710932,0.540218762755367
2022.0,2023.0,13383.6289,south_asia_east,-15.619011518634077,8.923206806807814,-1.1705352609766329,0.6051115944085789
2023.0,2024.0,13314.3791,south_asia_east,-17.589780221019534,8.953095982384424,-1.3250868263213045,0.6065293659463733
start_dates,end_dates,glacier_area,region,combined_gt,combined_gt_errors,combined_mwe,combined_mwe_errors
2000.0,2001.0,2354.92895,low_latitudes,0.3705258618555614,0.5346473022213154,0.157814011419829,0.228933800352463
2001.0,2002.0,2327.07105,low_latitudes,-0.3070070498935514,0.5172510572472317,-0.1323255009428327,0.2215202773884822
2002.0,2003.0,2299.21315,low_latitudes,-1.2859863528499784,0.5250969807283328,-0.5609988445881208,0.2232863959982013
2003.0,2004.0,2271.35525,low_latitudes,-1.5816633780124076,0.4893433831894396,-0.6984476100558282,0.2069046767967312
2004.0,2005.0,2243.49735,low_latitudes,-2.4619022051780592,0.4967700282785205,-1.100652129401808,0.2062049127766357
2005.0,2006.0,2215.63945,low_latitudes,-2.769504894430206,0.4947088906345829,-1.253741176010918,0.2034866435691645
2006.0,2007.0,2187.78155,low_latitudes,-0.6472329547886849,0.453868358783612,-0.2967300351707955,0.1939664213532102
2007.0,2008.0,2159.92365,low_latitudes,0.2943631715954311,0.4533688289494152,0.1366941458094977,0.1941449555565516
2008.0,2009.0,2132.06575,low_latitudes,1.0742074293211157,0.4546635712035953,0.5053501509354559,0.1934380523884974
2009.0,2010.0,2104.2078500000002,low_latitudes,-1.8409386137271275,0.4694606379390745,-0.8775169467553976,0.1972377637248387
2010.0,2011.0,2076.34995,low_latitudes,-1.8410246444614369,0.4540162630694458,-0.8893319440077325,0.1904846125109849
2011.0,2012.0,2048.49205,low_latitudes,-0.1241596044782535,0.4465345728623108,-0.0607926225979373,0.1913006929043157
2012.0,2013.0,2020.6341499999999,low_latitudes,-0.0184015312558621,0.4444848617975117,-0.0091342126241642,0.1904405696905319
2013.0,2014.0,1992.77625,low_latitudes,-0.5516197398382917,0.4911311260759708,-0.2776425996516236,0.2100946439094557
2014.0,2015.0,1964.91835,low_latitudes,-0.239795478092252,0.4889898652342481,-0.1224056099734584,0.2094463020263459
2015.0,2016.0,1937.06045,low_latitudes,-1.6897583338338864,0.500517508508474,-0.8749561029038354,0.2113710409333535
2016.0,2017.0,1909.20255,low_latitudes,-2.36942463411635,0.5050237682774874,-1.244788981141562,0.2103411186413965
2017.0,2018.0,1881.34465,low_latitudes,-0.6457522446867621,0.5558366147801133,-0.3442725556313132,0.2377478680751023
2018.0,2019.0,1853.48675,low_latitudes,-0.1008118792306184,0.6414614071574477,-0.0545540586709532,0.2748277306916271
2019.0,2020.0,1825.62885,low_latitudes,-0.900957994194518,0.6712927059312396,-0.4949905350137911,0.2869691962872982
2020.0,2021.0,1797.77095,low_latitudes,-0.562694930155122,0.948935574874308,-0.3139377096055741,0.4063957799277559
2021.0,2022.0,1769.91305,low_latitudes,0.0949249570660994,1.3349790454063797,0.053793935714863,0.5719724779712119
2022.0,2023.0,1742.0551500000001,low_latitudes,0.0057083128047794,1.4142485234769082,0.0032866291704928,0.6059393450220042
2023.0,2024.0,1714.1972500000002,low_latitudes,-2.3020962323277,1.9925253299197072,-1.3469997704373884,0.8522782557620759