crs-l2-svalbard-polar-areas
Map (reference ← swipe → agent)
0:00
svalbard_glaciers — I need an honest size ranking of these high-latitude glaciers using true geographic area, not the distorted values you'd get from raw lat/lon coordinates. Pick the most appropriate coordinate system for measuring area at these latitudes and give me the top 20 by area as CSV: columns name, area_km2, bbox_minx_polar, bbox_miny_polar, bbox_maxx_polar, bbox_maxy_polar, crs_epsg — bboxes in the same projected metres as the area, and crs_epsg the integer EPSG code of the CRS you used. Sort by area_km2 descending. File: svalbard_glaciers_top20.csv.
0:00
System info
{
"adapter": "openrouter",
"model": "google/gemma-4-26b-a4b-it",
"base_url": "https://openrouter.ai/api/v1"
}
0:01
Bash
ls -F
svalbard_glaciers_wgs84.gpkg
0:04
Read
svalbard_glaciers_wgs84.gpkg
binary file: svalbard_glaciers_wgs84.gpkg contains NUL bytes. Use a domain tool to inspect it (duckdb, geopandas, pyogrio, sqlite3, ...).
0:07
Write
/work/inspect_data.py
content · 12 lines · py
import geopandas as gpd
try:
gdf = gpd.read_file("svalbard_glaciers_wgs84.gpkg")
print("Successfully read file.")
print(f"Columns: {gdf.columns.tolist()}")
print(f"CRS: {gdf.crs}")
print(f"Shape: {gdf.shape}")
print(gdf.head())
except Exception as e:
print(f"Error: {e}")
Wrote /work/inspect_data.py (301 chars).
0:08
Bash
python /work/inspect_data.py
Successfully read file.
Columns: ['id', 'name', 'subtype', 'class', 'geometry']
CRS: EPSG:4326
Shape: (169, 5)
id ... geometry
0 af2fac62-8f17-35dd-bb4b-cd7ac5f906b0 ... MULTIPOLYGON (((22.78865 80.14451, 22.73235 80...
1 12ba70b6-6f49-35fa-a072-bfdc8321c987 ... MULTIPOLYGON (((14.02517 77.97816, 14.02557 77...
2 5919887f-cdb2-3283-a884-b1146bdda8ee ... MULTIPOLYGON (((16.06338 78.22499, 16.06381 78...
3 cdbc3ec1-ce56-3dbc-89fe-f4bce34bd5a8 ... MULTIPOLYGON (((12.92179 78.40649, 12.95164 78...
4 81e675dd-427e-3cd8-ac05-929fbbd3c30e ... MULTIPOLYGON (((11.88304 78.88352, 11.88399 78...
[5 rows x 5 columns]
0:29
Write
/work/solve.py
content · 55 lines · py
import geopandas as gpd
import pandas as pd
def solve():
# Load the data
gdf = gpd.read_file("svalbard_glaciers_wgs84.gpkg")
# Svalbard is at high latitudes (~74 to 81 degrees North).
# For area measurements in high latitudes, a Polar Stereographic projection is best.
# EPSG:3413 is NSIDC Polar Stereographic North, which is standard for Arctic studies.
# Alternatively, EPSG:3411 or 3412 are also options, but 3413 is very common.
# Let's use EPSG:3413.
target_crs = "EPSG:3413"
# Project the data to the polar stereographic CRS
gdf_projected = gdf.to_crs(target_crs)
# Calculate area in square meters, then convert to square kilometers
gdf_projected['area_km2'] = gdf_projected.geometry.area / 10**6
# Get the bounding box in the projected CRS
# bbox is (minx, miny, maxx, maxy)
gdf_projected['bbox_minx_polar'] = gdf_projected.geometry.bounds.minx
gdf_projected['bbox_miny_polar'] = gdf_projected.geometry.bounds.miny
gdf_projected['bbox_maxx_polar'] = gdf_projected.geometry.bounds.maxx
gdf_projected['bbox_maxy_polar'] = gdf_projected.geometry.bounds.maxy
# Get the EPSG code as integer
epsg_code = int(gdf_projected.crs.to_epsg())
gdf_projected['crs_epsg'] = epsg_code
# Sort by area_km2 descending and take the top 20
top_20 = gdf_projected.sort_values(by='area_km2', ascending=False).head(20)
# Select only the required columns
# name, area_km2, bbox_minx_polar, bbox_miny_polar, bbox_maxx_polar, bbox_maxy_polar, crs_epsg
output_columns = [
'name',
'area_km2',
'bbox_minx_polar',
'bbox_miny_polar',
'bbox_maxx_polar',
'bbox_maxy_polar',
'crs_epsg'
]
result = top_20[output_columns]
# Save to CSV
result.to_csv("svalbard_glaciers_top20.csv", index=False)
print("Top 20 glaciers saved to svalbard_glaciers_top20.csv")
if __name__ == "__main__":
solve()
Wrote /work/solve.py (1998 chars).
0:31
Bash
python /work/solve.py
Top 20 glaciers saved to svalbard_glaciers_top20.csv
0:34
Read
svalbard_glaciers_top20.csv
1 name,area_km2,bbox_minx_polar,bbox_miny_polar,bbox_maxx_polar,bbox_maxy_polar,crs_epsg
2 Sørfonna,4146.995028319491,1018600.817882212,-472800.3912665622,1093407.1674378568,-365990.2909299612,3413
3 Vestfonna,2272.1831167032924,955923.9805055511,-493366.30464676005,1014589.5375176889,-420978.1660846758,3413
4 Åsgardfonna,872.2491860794605,970672.3159938941,-558393.7394266115,1024973.2110542867,-525034.1001042881,3413
5 Kvitøyjøkulen,595.2771582678471,1028269.5074980733,-251073.05692732212,1052280.1255731431,-211860.17370643766,3413
6 Valhallfonna,405.0180652770844,971511.670097754,-527453.9846470426,1003139.1997554839,-505582.9635556986,3413
7 Nordmannsfonna,125.59503297052574,1128862.4515745593,-577716.8410743554,1149204.2654806755,-563508.01562506,3413
8 Sveabreen,121.14271431301484,1042378.8994917835,-645032.4615881244,1070491.2293700927,-634900.8738330957,3413
9 Gruvfonna,109.26581602996173,1144708.8887145082,-629651.8176660625,1156022.2028977482,-608114.4276372788,3413
10 Veteranen,92.38270394195997,1023748.0056298103,-552570.0665400377,1045629.5864769553,-532772.4118134979,3413
11 Himingbjørgfonna,80.514240197884,1019942.2563029992,-558249.7214880211,1032767.2559255561,-542067.4595360316,3413
12 Hellefonna,78.93980447182193,1137721.2132937114,-599557.1616786135,1153448.587803471,-586377.0729442405,3413
13 Heuglinbreen,68.22624231495472,1124554.481148079,-561227.6610193359,1137550.8359948718,-552367.730796976,3413
14 Eidembreen,64.22378265622439,1067450.8900832098,-670591.5306250262,1073502.0562839245,-653568.1741950389,3413
15 Nordenskiöldbreen,64.19128040224581,1082148.1499660225,-580288.628157692,1091821.8942982997,-569000.2227019768,3413
16 Isrosa,45.113467299742624,1145941.681893076,-580366.4889922002,1153648.207848919,-567251.2212087518,3413
17 Edvardbreen,44.47313938975286,1164648.5289905206,-614218.8502931708,1173314.2171653411,-600447.1240089986,3413
18 Esmarkbreen,41.16028919582775,1075609.0346814487,-661298.8628999034,1088684.5918938657,-653342.4655558533,3413
19 Venernbreen,40.83531751434477,1074998.6217814437,-669967.1837736613,1081719.4183093198,-657177.4317250035,3413
20 Dunérbreen,38.70074899616643,970877.7430687764,-526415.3522561246,984408.4476399018,-519393.1545105753,3413
21 Fridtjovbreen,37.598264379331,1131454.2915404618,-675329.6423005203,1145279.019816095,-669881.6382822026,3413
0:52
Write
/work/solve.py
content · 53 lines · py
import geopandas as gpd
import pandas as pd
def solve():
# Load the data
gdf = gpd.read_file("svalbard_glaciers_wgs84.gpkg")
# Svalbard is at high latitudes (~74 to 81 degrees North).
# For area measurements in high latitudes, a Polar Stereographic projection is best.
# EPSG:3413 is NSIDC Polar Stereographic North, which is standard for Arctic studies.
target_crs = "EPSG:3413"
# Project the data to the polar stereographic CRS
gdf_projected = gdf.to_crs(target_crs)
# Calculate area in square meters, then convert to square kilometers
gdf_projected['area_km2'] = gdf_projected.geometry.area / 10**6
# Get the bounding box in the projected CRS
# bbox is (minx, miny, maxx, maxy)
bounds = gdf_projected.geometry.bounds
gdf_projected['bbox_minx_polar'] = bounds.minx
gdf_projected['bbox_miny_polar'] = bounds.miny
gdf_projected['bbox_maxx_polar'] = bounds.maxx
gdf_projected['bbox_maxy_polar'] = bounds.maxy
# Get the EPSG code as integer
epsg_code = int(gdf_projected.crs.to_epsg())
gdf_projected['crs_epsg'] = epsg_code
# Sort by area_km2 descending and take the top 20
top_20 = gdf_projected.sort_values(by='area_km2', ascending=False).head(20)
# Select only the required columns
output_columns = [
'name',
'area_km2',
'bbox_minx_polar',
'bbox_miny_polar',
'bbox_maxx_polar',
'bbox_maxy_polar',
'crs_epsg'
]
result = top_20[output_columns]
# Save to CSV
result.to_csv("svalbard_glaciers_top20.csv", index=False)
print("Top 20 glaciers saved to svalbard_glaciers_top20.csv")
if __name__ == "__main__":
solve()
Wrote /work/solve.py (1741 chars).
0:54
Bash
python /work/solve.py
Top 20 glaciers saved to svalbard_glaciers_top20.csv
0:57
Read
svalbard_glaciers_top20.csv
1 name,area_km2,bbox_minx_polar,bbox_miny_polar,bbox_maxx_polar,bbox_maxy_polar,crs_epsg
2 Sørfonna,4146.995028319491,1018600.817882212,-472800.3912665622,1093407.1674378568,-365990.2909299612,3413
3 Vestfonna,2272.1831167032924,955923.9805055511,-493366.30464676005,1014589.5375176889,-420978.1660846758,3413
4 Åsgardfonna,872.2491860794605,970672.3159938941,-558393.7394266115,1024973.2110542867,-525034.1001042881,3413
5 Kvitøyjøkulen,595.2771582678471,1028269.5074980733,-251073.05692732212,1052280.1255731431,-211860.17370643766,3413
6 Valhallfonna,405.0180652770844,971511.670097754,-527453.9846470426,1003139.1997554839,-505582.9635556986,3413
7 Nordmannsfonna,125.59503297052574,1128862.4515745593,-577716.8410743554,1149204.2654806755,-563508.01562506,3413
8 Sveabreen,121.14271431301484,1042378.8994917835,-645032.4615881244,1070491.2293700927,-634900.8738330957,3413
9 Gruvfonna,109.26581602996173,1144708.8887145082,-629651.8176660625,1156022.2028977482,-608114.4276372788,3413
10 Veteranen,92.38270394195997,1023748.0056298103,-552570.0665400377,1045629.5864769553,-532772.4118134979,3413
11 Himingbjørgfonna,80.514240197884,1019942.2563029992,-558249.7214880211,1032767.2559255561,-542067.4595360316,3413
12 Hellefonna,78.93980447182193,1137721.2132937114,-599557.1616786135,1153448.587803471,-586377.0729442405,3413
13 Heuglinbreen,68.22624231495472,1124554.481148079,-561227.6610193359,1137550.8359948718,-552367.730796976,3413
14 Eidembreen,64.22378265622439,1067450.8900832098,-670591.5306250262,1073502.0562839245,-653568.1741950389,3413
15 Nordenskiöldbreen,64.19128040224581,1082148.1499660225,-580288.628157692,1091821.8942982997,-569000.2227019768,3413
16 Isrosa,45.113467299742624,1145941.681893076,-580366.4889922002,1153648.207848919,-567251.2212087518,3413
17 Edvardbreen,44.47313938975286,1164648.5289905206,-614218.8502931708,1173314.2171653411,-600447.1240089986,3413
18 Esmarkbreen,41.16028919582775,1075609.0346814487,-661298.8628999034,1088684.5918938657,-653342.4655558533,3413
19 Venernbreen,40.83531751434477,1074998.6217814437,-669967.1837736613,1081719.4183093198,-657177.4317250035,3413
20 Dunérbreen,38.70074899616643,970877.7430687764,-526415.3522561246,984408.4476399018,-519393.1545105753,3413
21 Fridtjovbreen,37.598264379331,1131454.2915404618,-675329.6423005203,1145279.019816095,-669881.6382822026,3413
1:10
Write
/work/solve.py
content · 53 lines · py
import geopandas as gpd
import pandas as pd
def solve():
# Load the data
gdf = gpd.read_file("svalbard_glaciers_wgs84.gpkg")
# Svalbard is at high latitudes (~74 to 81 degrees North).
# For area measurements in high latitudes, a Polar Stereographic projection is best.
# EPSG:3413 is NSIDC Polar Stereographic North, which is standard for Arctic studies.
target_crs = "EPSG:3413"
# Project the data to the polar stereographic CRS
gdf_projected = gdf.to_crs(target_crs)
# Calculate area in square meters, then convert to square kilometers
gdf_projected['area_km2'] = gdf_projected.geometry.area / 10**6
# Get the bounding box in the projected CRS
bounds = gdf_projected.geometry.bounds
gdf_projected['bbox_minx_polar'] = bounds.minx
gdf_projected['bbox_miny_polar'] = bounds.miny
gdf_projected['bbox_maxx_polar'] = bounds.maxx
gdf_projected['bbox_maxy_polar'] = bounds.maxy
# Get the EPSG code as integer
epsg_code = int(gdf_projected.crs.to_epsg())
gdf_projected['crs_epsg'] = epsg_code
# Sort by area_km2 descending and take the top 20
top_20 = gdf_projected.sort_values(by='area_km2', ascending=False).head(20)
# Select only the required columns
output_columns = [
'name',
'area_km2',
'bbox_minx_polar',
'bbox_miny_polar',
'bbox_maxx_polar',
'bbox_maxy_polar',
'crs_epsg'
]
result = top_20[output_columns].copy()
# Final check on sorting (it should be descending)
# Let's ensure we don't have extra index or formatting in CSV
result.to_csv("svalbard_glaciers_top20.csv", index=False)
print("Top 20 glaciers saved to svalbard_glaciers_top20.csv")
if __name__ == "__main__":
solve()
Wrote /work/solve.py (1812 chars).
1:11
Bash
python /work/solve.py
Top 20 glaciers saved to svalbard_glaciers_top20.csv
1:14
Read
svalbard_glaciers_top20.csv
1 name,area_km2,bbox_minx_polar,bbox_miny_polar,bbox_maxx_polar,bbox_maxy_polar,crs_epsg
2 Sørfonna,4146.995028319491,1018600.817882212,-472800.3912665622,1093407.1674378568,-365990.2909299612,3413
3 Vestfonna,2272.1831167032924,955923.9805055511,-493366.30464676005,1014589.5375176889,-420978.1660846758,3413
4 Åsgardfonna,872.2491860794605,970672.3159938941,-558393.7394266115,1024973.2110542867,-525034.1001042881,3413
5 Kvitøyjøkulen,595.2771582678471,1028269.5074980733,-251073.05692732212,1052280.1255731431,-211860.17370643766,3413
6 Valhallfonna,405.0180652770844,971511.670097754,-527453.9846470426,1003139.1997554839,-505582.9635556986,3413
7 Nordmannsfonna,125.59503297052574,1128862.4515745593,-577716.8410743554,1149204.2654806755,-563508.01562506,3413
8 Sveabreen,121.14271431301484,1042378.8994917835,-645032.4615881244,1070491.2293700927,-634900.8738330957,3413
9 Gruvfonna,109.26581602996173,1144708.8887145082,-629651.8176660625,1156022.2028977482,-608114.4276372788,3413
10 Veteranen,92.38270394195997,1023748.0056298103,-552570.0665400377,1045629.5864769553,-532772.4118134979,3413
11 Himingbjørgfonna,80.514240197884,1019942.2563029992,-558249.7214880211,1032767.2559255561,-542067.4595360316,3413
12 Hellefonna,78.93980447182193,1137721.2132937114,-599557.1616786135,1153448.587803471,-586377.0729442405,3413
13 Heuglinbreen,68.22624231495472,1124554.481148079,-561227.6610193359,1137550.8359948718,-552367.730796976,3413
14 Eidembreen,64.22378265622439,1067450.8900832098,-670591.5306250262,1073502.0562839245,-653568.1741950389,3413
15 Nordenskiöldbreen,64.19128040224581,1082148.1499660225,-580288.628157692,1091821.8942982997,-569000.2227019768,3413
16 Isrosa,45.113467299742624,1145941.681893076,-580366.4889922002,1153648.207848919,-567251.2212087518,3413
17 Edvardbreen,44.47313938975286,1164648.5289905206,-614218.8502931708,1173314.2171653411,-600447.1240089986,3413
18 Esmarkbreen,41.16028919582775,1075609.0346814487,-661298.8628999034,1088684.5918938657,-653342.4655558533,3413
19 Venernbreen,40.83531751434477,1074998.6217814437,-669967.1837736613,1081719.4183093198,-657177.4317250035,3413
20 Dunérbreen,38.70074899616643,970877.7430687764,-526415.3522561246,984408.4476399018,-519393.1545105753,3413
21 Fridtjovbreen,37.598264379331,1131454.2915404618,-675329.6423005203,1145279.019816095,-669881.6382822026,3413
1:30
Write
/work/solve.py
content · 52 lines · py
import geopandas as gpd
import pandas as pd
def solve():
# Load the data
gdf = gpd.read_file("svalbard_glaciers_wgs84.gpkg")
# Svalbard is at high latitudes (~74 to 81 degrees North).
# For area measurements in high latitudes, a Polar Stereographic projection is best.
# EPSG:3413 is NSIDC Polar Stereographic North.
target_crs = "EPSG:3413"
# Project the data to the polar stereographic CRS
gdf_projected = gdf.to_crs(target_crs)
# Calculate area in square meters, then convert to square kilometers
gdf_projected['area_km2'] = gdf_projected.geometry.area / 10**6
# Get the bounding box in the projected CRS
bounds = gdf_projected.geometry.bounds
gdf_projected['bbox_minx_polar'] = bounds.minx
gdf_projected['bbox_miny_polar'] = bounds.miny
gdf_projected['bbox_maxx_polar'] = bounds.maxx
gdf_projected['bbox_maxy_polar'] = bounds.maxy
# Get the EPSG code as integer
epsg_code = int(gdf_projected.crs.to_epsg())
gdf_projected['crs_epsg'] = epsg_code
# Sort by area_km2 descending and take the top 20
top_20 = gdf_projected.sort_values(by='area_km2', ascending=False).head(20)
# Select only the required columns
output_columns = [
'name',
'area_km2',
'bbox_minx_polar',
'bbox_miny_polar',
'bbox_maxx_polar',
'bbox_maxy_polar',
'crs_epsg'
]
result = top_20[output_columns].copy()
# Save to CSV without the index
result.to_csv("svalbard_glaciers_top20.csv", index=False)
print("Top 20 glaciers saved to svalbard_glaciers_top20.csv")
if __name__ == "__main__":
solve()
Wrote /work/solve.py (1689 chars).
1:31
Bash
python /work/solve.py
Top 20 glaciers saved to svalbard_glaciers_top20.csv
1:33
Read
svalbard_glaciers_top20.csv
1 name,area_km2,bbox_minx_polar,bbox_miny_polar,bbox_maxx_polar,bbox_maxy_polar,crs_epsg
2 Sørfonna,4146.995028319491,1018600.817882212,-472800.3912665622,1093407.1674378568,-365990.2909299612,3413
3 Vestfonna,2272.1831167032924,955923.9805055511,-493366.30464676005,1014589.5375176889,-420978.1660846758,3413
4 Åsgardfonna,872.2491860794605,970672.3159938941,-558393.7394266115,1024973.2110542867,-525034.1001042881,3413
5 Kvitøyjøkulen,595.2771582678471,1028269.5074980733,-251073.05692732212,1052280.1255731431,-211860.17370643766,3413
6 Valhallfonna,405.0180652770844,971511.670097754,-527453.9846470426,1003139.1997554839,-505582.9635556986,3413
7 Nordmannsfonna,125.59503297052574,1128862.4515745593,-577716.8410743554,1149204.2654806755,-563508.01562506,3413
8 Sveabreen,121.14271431301484,1042378.8994917835,-645032.4615881244,1070491.2293700927,-634900.8738330957,3413
9 Gruvfonna,109.26581602996173,1144708.8887145082,-629651.8176660625,1156022.2028977482,-608114.4276372788,3413
10 Veteranen,92.38270394195997,1023748.0056298103,-552570.0665400377,1045629.5864769553,-532772.4118134979,3413
11 Himingbjørgfonna,80.514240197884,1019942.2563029992,-558249.7214880211,1032767.2559255561,-542067.4595360316,3413
12 Hellefonna,78.93980447182193,1137721.2132937114,-599557.1616786135,1153448.587803471,-586377.0729442405,3413
13 Heuglinbreen,68.22624231495472,1124554.481148079,-561227.6610193359,1137550.8359948718,-552367.730796976,3413
14 Eidembreen,64.22378265622439,1067450.8900832098,-670591.5306250262,1073502.0562839245,-653568.1741950389,3413
15 Nordenskiöldbreen,64.19128040224581,1082148.1499660225,-580288.628157692,1091821.8942982997,-569000.2227019768,3413
16 Isrosa,45.113467299742624,1145941.681893076,-580366.4889922002,1153648.207848919,-567251.2212087518,3413
17 Edvardbreen,44.47313938975286,1164648.5289905206,-614218.8502931708,1173314.2171653411,-600447.1240089986,3413
18 Esmarkbreen,41.16028919582775,1075609.0346814487,-661298.8628999034,1088684.5918938657,-653342.4655558533,3413
19 Venernbreen,40.83531751434477,1074998.6217814437,-669967.1837736613,1081719.4183093198,-657177.4317250035,3413
20 Dunérbreen,38.70074899616643,970877.7430687764,-526415.3522561246,984408.4476399018,-519393.1545105753,3413
21 Fridtjovbreen,37.598264379331,1131454.2915404618,-675329.6423005203,1145279.019816095,-669881.6382822026,3413
1:35
Bash
head -n 5 svalbard_glaciers_top20.csv
name,area_km2,bbox_minx_polar,bbox_miny_polar,bbox_maxx_polar,bbox_maxy_polar,crs_epsg Sørfonna,4146.995028319491,1018600.817882212,-472800.3912665622,1093407.1674378568,-365990.2909299612,3413 Vestfonna,2272.1831167032924,955923.9805055511,-493366.30464676005,1014589.5375176889,-420978.1660846758,3413 Åsgardfonna,872.2491860794605,970672.3159938941,-558393.7394266115,1024973.2110542867,-525034.1001042881,3413 Kvitøyjøkulen,595.2771582678471,1028269.5074980733,-251073.05692732212,1052280.1255731431,-211860.17370643766,3413
1:56