crs-l2-svalbard-polar-areas
Model error
Retrospective
assessed 2026-06-09T12:12:24Z
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": "deepseek/deepseek-v4-flash",
"base_url": "https://openrouter.ai/api/v1"
}
0:05
Let me start by examining the input file to understand the data structure.
0:05
Bash
ls /work/
svalbard_glaciers_wgs84.gpkg
0:14
Let me first examine the data to understand its structure and CRS.
0:14
Bash
cd /work && python3 -c "
cd /work && python3 -c "
import geopandas as gpd
gdf = gpd.read_file('svalbard_glaciers_wgs84.gpkg')
print('Columns:', gdf.columns.tolist())
print('CRS:', gdf.crs)
print('Shape:', gdf.shape)
print(gdf.head())
print('---')
print(gdf.dtypes)
"
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]
---
id str
name str
subtype str
class str
geometry geometry
dtype: object
0:37
The data is in EPSG:4326 (WGS84 lat/lon). For measuring true area at high latitudes (Svalbard is around 74-81°N), the most appropriate projection would be a polar stereographic projection. The EPSG code for the Universal Polar Stereographic (UPS) North is **EPSG:5041** (WGS 84 / Universal Polar Stereographic North). But let's think about this more carefully. For Svalbard specifically (74-81°N), common choices: 1. **EPSG:5041** - WGS 84 / Universal Polar Stereographic North - good for the whole Arctic 2. **EPSG:326XX** - UTM zones - UTM zones 31-37 cover Svalbard but at these high latitudes, UTM has significant distortion 3. **EPSG:3995** - WGS 84 / Arctic Polar Stereographic - used by many Arctic data products 4. **EPSG:3572–3576** - NSIDC EASE-Grid North projections For area measurement at high latitudes, polar stereographic is standard. EPSG:5041 (Universal Polar Stereographic North) is specifically designed for the north polar region (north of 60°N). EPSG:3995 is also commonly used. Actually, let me think more carefully. The best CRS for area measurements at polar latitudes: - **EPSG:6931** (WGS 84 / NSIDC Sea Ice Polar Stereographic North) - used for sea ice analysis, standard - **EPSG:3413** (WGS 84 / NSIDC Sea Ice Polar Stereographic North) - another common one - **EPSG:3995** (WGS 84 / Arctic Polar Stereographic) - commonly used - **EPSG:5041** (WGS 84 / Universal Polar Stereographic North) - the "official" UPS For Svalbard, I'll use **EPSG:5041** (WGS 84 / Universal Polar Stereographic North) which is the standard north polar projection for areas above 60°N. The standard parallel is 90°N, and it uses a true scale at 90°N (or more precisely, latitude of origin is 90°N). Actually, let me reconsider. EPSG:5041 has latitude of origin = 90° N and standard parallel = 90° N. EPSG:3995 uses latitude of origin = 90° N and standard parallel = 71° N. EPSG:3413 uses latitude of origin = 70° N and standard parallel = 70° N. For minimizing area distortion at Svalbard's latitudes (74-81°N), a projection with a standard parallel in that range would be ideal, but that doesn't exist as a standard EPSG. Among the standard options: - EPSG:5041 (UPS North) - true scale at the pole, area distortion increases as you move south - EPSG:3995 - true scale at 71°N, reasonable for Svalbard Let me just use EPSG:5041 - the Universal Polar Stereographic North. It's the standard projection for the north polar area. Actually, I want to be more careful. Let me check which CRS gives the most accurate area for Svalbard. For polar regions: - EPSG:3413 (NSIDC Sea Ice Polar Stereographic North) - standard at 70°N, commonly used for Greenland and Arctic. True scale at 70°N where the distortion is minimized around that latitude. - EPSG:3995 (Arctic Polar Stereographic) - standard at 71°N - EPSG:5041 (UPS North) - standard at 90°N Since Svalbard is roughly 74-81°N, EPSG:3413 (true at 70°N) or EPSG:3995 (true at 71°N) would be better than EPSG:5041 (true at 90°N). The area distortion in a polar stereographic projection increases as you move away from the latitude of true scale. Let me use EPSG:3413 (WGS 84 / NSIDC Sea Ice Polar Stereographic North) which is widely used in Arctic science. Or EPSG:3995. Actually, I think the most commonly recommended one for area calculations in the Arctic (including Svalbard) is EPSG:3995 or EPSG:3413. Let me go with EPSG:3413 as it's very standard for Arctic area calculations. Wait, let me check. EPSG:3413 is actually "NSIDC Sea Ice Polar Stereographic North" with standard_parallel = 70 and latitude_of_origin = 70. This is designed specifically for area calculations in the Arctic. I'll use this. Let me write the script.
0:37
Bash
cd /work && python3 -c "
cd /work && python3 -c "
import geopandas as gpd
gdf = gpd.read_file('svalbard_glaciers_wgs84.gpkg')
print('Number of null names:', gdf['name'].isna().sum())
print(gdf[gdf['name'].isna()].head())
print('Unique classes:', gdf['class'].unique())
print('Unique subtypes:', gdf['subtype'].unique())
"
Number of null names: 0 Empty GeoDataFrame Columns: [id, name, subtype, class, geometry] Index: [] Unique classes: <ArrowStringArray> ['glacier'] Length: 1, dtype: str Unique subtypes: <ArrowStringArray> ['glacier'] Length: 1, dtype: str
1:07
Now I need to choose the most appropriate CRS for measuring area at Svalbard's latitudes (roughly 74°N to 81°N). For polar regions, the best choice is a Polar Stereographic projection. For the Arctic, EPSG:3413 (NSIDC Sea Ice Polar Stereographic North) or EPSG:3995 (Arctic Polar Stereographic) are commonly used. EPSG:3413 - WGS 84 / NSIDC Sea Ice Polar Stereographic North - latitude of origin 70°N, central meridian -45°, uses WGS 84 ellipsoid. EPSG:3995 - WGS 84 / Arctic Polar Stereographic - latitude of origin 71°N, central meridian 0°. For Svalbard specifically, EPSG:3413 or EPSG:3995 are both suitable. EPSG:3413 has its central meridian at -45° which would work fine. EPSG:3995 has central meridian at 0°, which is closer to Svalbard (roughly 10°-30°E). Actually, let me think more carefully. Svalbard spans roughly 10°E to 30°E longitude. EPSG:3995 (Arctic Polar Stereographic) uses latitude of origin 71°N and central meridian 0°. Since Svalbard is quite far from the central meridian (up to 30°E), there could be some distortion. EPSG:3413 uses latitude of origin 70°N and central meridian -45° (45°W). That's even further from Svalbard. Another option: EPSG:32633 through EPSG:32639 are UTM zones for the northern hemisphere. Svalbard spans zones 31X to 39X (0°E to 42°E roughly). UTM zones are good for area but for something spanning multiple zones, a polar stereographic is better. Actually, for Svalbard, the most commonly used projected CRS is EPSG:32633 (UTM zone 33N) for the western part and EPSG:32635 (UTM zone 35N) for the central part. But since we have glaciers across all of Svalbard, a single UTM zone would introduce significant distortion at the edges. EPSG:3995 (WGS 84 / Arctic Polar Stereographic) is specifically designed for the Arctic region and is commonly used for pan-Arctic studies. It's the standard for Arctic datasets. Let me also consider EPSG:3413 - NSIDC Sea Ice Polar Stereographic North. For Svalbard (roughly 10°E to 30°E), EPSG:3995 (central meridian 0°) is a reasonable choice. EPSG:3413 (central meridian -45°) would have more distortion at Svalbard's longitudes. Actually, let me reconsider. EPSG:5936 (UPS North - Universal Polar Stereographic) is also possible. I'll go with EPSG:3995 - WGS 84 / Arctic Polar Stereographic, which is the standard CRS for Arctic area measurements. It uses the WGS 84 ellipsoid, latitude of origin 71°N, central meridian 0°. Let me write the script.
1:07
1:07
Write
/work/solve.py
content · 53 lines · py
"""
Svalbard glaciers — top 20 by true geographic area.
Uses EPSG:3995 (WGS 84 / Arctic Polar Stereographic) which is the
standard projected CRS for the Arctic region.
"""
import geopandas as gpd
import pandas as pd
# Read the source data (WGS 84 lat/lon)
gdf = geopandas.read_file("/work/svalbard_glaciers_wgs84.gpkg")
# Verify CRS
assert str(gdf.crs).upper() == "EPSG:4326", f"Unexpected input CRS: {gdf.crs}"
# Project to Arctic Polar Stereographic (EPSG:3995)
# Standard for pan-Arctic area measurement
polar_crs = "EPSG:3995"
gdf_polar = gdf.to_crs(polar_crs)
# Calculate area in km²
gdf_polar["area_km2"] = gdf_polar.geometry.area / 1_000_000
# Compute bounding boxes in the projected CRS (metres)
gdf_polar["bbox"] = gdf_polar.geometry.bounds # (minx, miny, maxx, maxy)
gdf_polar["bbox_minx_polar"] = gdf_polar["bbox"].apply(lambda b: b[0])
gdf_polar["bbox_miny_polar"] = gdf_polar["bbox"].apply(lambda b: b[1])
gdf_polar["bbox_maxx_polar"] = gdf_polar["bbox"].apply(lambda b: b[2])
gdf_polar["bbox_maxy_polar"] = gdf_polar["bbox"].apply(lambda b: b[3])
# Sort descending by area
gdf_sorted = gdf_polar.sort_values("area_km2", ascending=False).reset_index(drop=True)
# Build output table — top 20
out = pd.DataFrame({
"name": gdf_sorted["name"].head(20),
"area_km2": gdf_sorted["area_km2"].head(20),
"bbox_minx_polar": gdf_sorted["bbox_minx_polar"].head(20),
"bbox_miny_polar": gdf_sorted["bbox_miny_polar"].head(20),
"bbox_maxx_polar": gdf_sorted["bbox_maxx_polar"].head(20),
"bbox_maxy_polar": gdf_sorted["bbox_maxy_polar"].head(20),
})
out["crs_epsg"] = 3995
# Round area to a sensible precision (e.g. 3 decimal places)
out["area_km2"] = out["area_km2"].round(3)
out.to_csv("/work/svalbard_glaciers_top20.csv", index=False)
print("Top 20 glaciers by area (EPSG:3995 Arctic Polar Stereographic):")
print(out.to_string())
print(f"\nTotal features: {len(gdf)}")
print(f"Largest glacier: {out.iloc[0]['name']} — {out.iloc[0]['area_km2']} km²")
Wrote /work/solve.py (1985 chars).
1:13
I made a typo - I used `geopandas.read_file` instead of `gpd.read_file`. Let me fix that.
1:13
Edit
/work/solve.py
Edited /work/solve.py.
1:19
Wait, I imported geopandas as gpd but then used `geopandas.read_file`. Let me fix that properly.
1:19
Read
/work/solve.py
1 """
2 Svalbard glaciers — top 20 by true geographic area.
3 Uses EPSG:3995 (WGS 84 / Arctic Polar Stereographic) which is the
4 standard projected CRS for the Arctic region.
5 """
6 import geopandas as gpd
7 import pandas as pd
8
9 # Read the source data (WGS 84 lat/lon)
10 gdf = gpd.read_file("/work/svalbard_glaciers_wgs84.gpkg")
11
12 # Verify CRS
13 assert str(gdf.crs).upper() == "EPSG:4326", f"Unexpected input CRS: {gdf.crs}"
14
15 # Project to Arctic Polar Stereographic (EPSG:3995)
16 # Standard for pan-Arctic area measurement
17 polar_crs = "EPSG:3995"
18 gdf_polar = gdf.to_crs(polar_crs)
19
20 # Calculate area in km²
21 gdf_polar["area_km2"] = gdf_polar.geometry.area / 1_000_000
22
23 # Compute bounding boxes in the projected CRS (metres)
24 gdf_polar["bbox"] = gdf_polar.geometry.bounds # (minx, miny, maxx, maxy)
25 gdf_polar["bbox_minx_polar"] = gdf_polar["bbox"].apply(lambda b: b[0])
26 gdf_polar["bbox_miny_polar"] = gdf_polar["bbox"].apply(lambda b: b[1])
27 gdf_polar["bbox_maxx_polar"] = gdf_polar["bbox"].apply(lambda b: b[2])
28 gdf_polar["bbox_maxy_polar"] = gdf_polar["bbox"].apply(lambda b: b[3])
29
30 # Sort descending by area
31 gdf_sorted = gdf_polar.sort_values("area_km2", ascending=False).reset_index(drop=True)
32
33 # Build output table — top 20
34 out = pd.DataFrame({
35 "name": gdf_sorted["name"].head(20),
36 "area_km2": gdf_sorted["area_km2"].head(20),
37 "bbox_minx_polar": gdf_sorted["bbox_minx_polar"].head(20),
38 "bbox_miny_polar": gdf_sorted["bbox_miny_polar"].head(20),
39 "bbox_maxx_polar": gdf_sorted["bbox_maxx_polar"].head(20),
40 "bbox_maxy_polar": gdf_sorted["bbox_maxy_polar"].head(20),
41 })
42
43 out["crs_epsg"] = 3995
44
45 # Round area to a sensible precision (e.g. 3 decimal places)
46 out["area_km2"] = out["area_km2"].round(3)
47
48 out.to_csv("/work/svalbard_glaciers_top20.csv", index=False)
49
50 print("Top 20 glaciers by area (EPSG:3995 Arctic Polar Stereographic):")
51 print(out.to_string())
52 print(f"\nTotal features: {len(gdf)}")
53 print(f"Largest glacier: {out.iloc[0]['name']} — {out.iloc[0]['area_km2']} km²")
1:24
The script looks good. Let me run it.
1:24
Bash
cd /work && python solve.py
Traceback (most recent call last):
File "/work/solve.py", line 24, in <module>
gdf_polar["bbox"] = gdf_polar.geometry.bounds # (minx, miny, maxx, maxy)
~~~~~~~~~^^^^^^^^
File "/usr/local/lib/python3.14/site-packages/geopandas/geodataframe.py", line 1969, in __setitem__
super().__setitem__(key, value)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/local/lib/python3.14/site-packages/pandas/core/frame.py", line 4662, in __setitem__
self._set_item_frame_value(key, value)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/local/lib/python3.14/site-packages/pandas/core/frame.py", line 4825, in _set_item_frame_value
raise ValueError(
...<2 lines>...
)
ValueError: Cannot set a DataFrame with multiple columns to the single column bbox
1:38
The `.bounds` returns a DataFrame, so I need to use a different approach to extract the individual columns. Let me fix this.
1:38
Edit
/work/solve.py
Edited /work/solve.py.
1:43
Also, I need to fix the `geopandas` import - I used `gpd` alias but the code says `geopandas` on line 6. Let me re-check. Actually line 6 says `import geopandas as gpd` and line 10 says `gpd.read_file`. That should work. Let me run it.
1:43
Bash
cd /work && python solve.py
Top 20 glaciers by area (EPSG:3995 Arctic Polar Stereographic):
name area_km2 bbox_minx_polar bbox_miny_polar bbox_maxx_polar bbox_maxy_polar crs_epsg
0 Sørfonna 4171.925 399217.098602 -1.081961e+06 499897.682484 -1.012764e+06 3995
1 Vestfonna 2285.843 349416.638152 -1.056744e+06 413275.357142 -9.926092e+05 3995
2 Åsgardfonna 877.493 306742.571726 -1.115419e+06 345134.880056 -1.062295e+06 3995
3 Kvitøyjøkulen 598.856 560772.354809 -9.230087e+05 590653.563224 -8.852585e+05 3995
4 Valhallfonna 407.453 324067.153710 -1.084216e+06 347163.657383 -1.052510e+06 3995
5 Nordmannsfonna 126.350 396292.847113 -1.221565e+06 414291.149833 -1.203727e+06 3995
6 Sveabreen 121.871 282942.108882 -1.211322e+06 308249.001873 -1.191688e+06 3995
7 Gruvfonna 109.923 367523.300239 -1.263975e+06 386355.052923 -1.247021e+06 3995
8 Veteranen 92.938 341067.579708 -1.129855e+06 353339.708896 -1.105068e+06 3995
9 Himingbjørgfonna 80.998 328728.812603 -1.126057e+06 343649.762690 -1.112033e+06 3995
10 Hellefonna 79.414 386043.129497 -1.241797e+06 396242.039987 -1.224477e+06 3995
11 Heuglinbreen 68.636 400180.759474 -1.202387e+06 411439.423233 -1.189858e+06 3995
12 Eidembreen 64.610 281993.856397 -1.234957e+06 296681.671287 -1.222392e+06 3995
13 Nordenskiöldbreen 64.577 359382.002356 -1.184533e+06 369591.454006 -1.171132e+06 3995
14 Isrosa 45.385 402523.085736 -1.226718e+06 414613.577178 -1.218817e+06 3995
15 Edvardbreen 44.740 393682.648663 -1.267172e+06 404322.685979 -1.252992e+06 3995
16 Esmarkbreen 41.408 296902.981937 -1.238750e+06 307008.393645 -1.228053e+06 3995
17 Venernbreen 41.081 287820.742111 -1.239154e+06 299866.311731 -1.229638e+06 3995
18 Dunérbreen 38.933 318150.766493 -1.071129e+06 326508.571258 -1.058085e+06 3995
19 Fridtjovbreen 37.824 324143.383843 -1.290378e+06 334548.457247 -1.279440e+06 3995
Total features: 169
Largest glacier: Sørfonna — 4171.925 km²
1:52
The output looks good. Let me verify the output CSV file and also double-check that the bounding box coordinate values make sense for EPSG:3995 (Arctic Polar Stereographic) — they should be in meters, which they are (on the order of 10^5 to 10^6). Let me check the CSV.
1:52
Read
/work/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,4171.925,399217.0986017573,-1081960.5213280732,499897.68248360377,-1012763.8380906679,3995
3 Vestfonna,2285.843,349416.6381521701,-1056743.8193146244,413275.3571415752,-992609.1824837216,3995
4 Åsgardfonna,877.493,306742.57172558113,-1115419.2587616902,345134.88005550375,-1062294.9232618182,3995
5 Kvitøyjøkulen,598.856,560772.3548087482,-923008.6941717041,590653.5632242498,-885258.5174058892,3995
6 Valhallfonna,407.453,324067.15370991576,-1084215.8164169453,347163.6573827006,-1052509.9915248293,3995
7 Nordmannsfonna,126.35,396292.84711335396,-1221565.1608128734,414291.1498327778,-1203726.5608871572,3995
8 Sveabreen,121.871,282942.1088816827,-1211321.6597666948,308249.0018734067,-1191688.0420408929,3995
9 Gruvfonna,109.923,367523.3002391829,-1263975.3756983678,386355.0529229504,-1247021.00555669,3995
10 Veteranen,92.938,341067.57970830554,-1129854.7290067165,353339.708896236,-1105067.6513671898,3995
11 Himingbjørgfonna,80.998,328728.81260251236,-1126057.1299777164,343649.76268995355,-1112033.142188952,3995
12 Hellefonna,79.414,386043.12949651125,-1241797.4754424656,396242.03998735565,-1224476.9240237044,3995
13 Heuglinbreen,68.636,400180.759474202,-1202386.8222034625,411439.42323344597,-1189857.7104253978,3995
14 Eidembreen,64.61,281993.85639702814,-1234957.4656339425,296681.6712870326,-1222392.4204236164,3995
15 Nordenskiöldbreen,64.577,359382.00235605316,-1184533.305274961,369591.45400606975,-1171131.6728087333,3995
16 Isrosa,45.385,402523.08573646395,-1226718.189466915,414613.5771780223,-1218816.700024765,3995
17 Edvardbreen,44.74,393682.64866315393,-1267171.5800583852,404322.6859787558,-1252991.6976533637,3995
18 Esmarkbreen,41.408,296902.9819366546,-1238750.0144815235,307008.39364472893,-1228053.2410942665,3995
19 Venernbreen,41.081,287820.74211087066,-1239153.7266829228,299866.31173134205,-1229638.0009715417,3995
20 Dunérbreen,38.933,318150.7664927129,-1071128.8374370968,326508.57125756575,-1058085.137063972,3995
21 Fridtjovbreen,37.824,324143.3838432444,-1290377.64790809,334548.4572466313,-1279440.2014166547,3995
2:07
The CSV looks correct. Let me verify the key requirements: 1. ✅ Top 20 by area (20 rows + header = 21 lines) 2. ✅ Columns: name, area_km2, bbox_minx_polar, bbox_miny_polar, bbox_maxx_polar, bbox_maxy_polar, crs_epsg 3. ✅ Sort by area_km2 descending 4. ✅ Bboxes in projected metres (EPSG:3995 - Arctic Polar Stereographic) 5. ✅ crs_epsg = 3995 integer 6. ✅ File is svalbard_glaciers_top20.csv Let me also double-check the bbox values make sense - Svalbard is around 78-81°N, 10-35°E. In EPSG:3995, the x values should be positive and similar magnitude (hundreds of thousands to millions), and the y values should be negative (since Svalbard is in the northern hemisphere, the stereographic projection puts it... actually wait, EPSG:3995 is Arctic Polar Stereographic centered on the North Pole. At the pole, coordinates are (0,0) and moving south from the pole gives negative y values. Svalbard is at ~78-81°N, so negative y values in the range of about -1,000,000 to -1,500,000 makes sense. The x values around 300,000 to 600,000 for Svalbard's longitude range also seem reasonable. Everything checks out.
2:07
2:07
Bash
cd /work && python3 -c "
cd /work && python3 -c "
import pandas as pd
df = pd.read_csv('svalbard_glaciers_top20.csv')
print('Shape:', df.shape)
print('Columns:', list(df.columns))
print('CRS EPSG:', df['crs_epsg'].unique())
print('Area range:', df['area_km2'].min(), '-', df['area_km2'].max())
print('All bbox values are in metres (10^5-10^6 range):')
print(' minx:', df['bbox_minx_polar'].min(), '-', df['bbox_minx_polar'].max())
print(' miny:', df['bbox_miny_polar'].min(), '-', df['bbox_miny_polar'].max())
print(' maxx:', df['bbox_maxx_polar'].min(), '-', df['bbox_maxx_polar'].max())
print(' maxy:', df['bbox_maxy_polar'].min(), '-', df['bbox_maxy_polar'].max())
print('Sorted desc:', df['area_km2'].is_monotonic_decreasing)
"
Shape: (20, 7) Columns: ['name', 'area_km2', 'bbox_minx_polar', 'bbox_miny_polar', 'bbox_maxx_polar', 'bbox_maxy_polar', 'crs_epsg'] CRS EPSG: [3995] Area range: 37.824 - 4171.925 All bbox values are in metres (10^5-10^6 range): minx: 281993.85639702814 - 560772.3548087482 miny: -1290377.64790809 - -923008.694171704 maxx: 296681.6712870326 - 590653.5632242498 maxy: -1279440.2014166547 - -885258.5174058892 Sorted desc: True
2:16
Everything checks out: 1. **CSV file** `svalbard_glaciers_top20.csv` exists with 20 rows 2. **Columns** match exactly: `name, area_km2, bbox_minx_polar, bbox_miny_polar, bbox_maxx_polar, bbox_maxy_polar, crs_epsg` 3. **CRS** is EPSG:3995 (Arctic Polar Stereographic) — the ideal choice for measuring areas at Arctic latitudes (Svalbard ~74-81°N) 4. **Sorted descending** by area_km2 ✓ 5. **Coordinate magnitudes** are in metres (~10^5 to 10^6), appropriate for a projected CRS in the Arctic 6. **Area values** look reasonable — Sørfonna ~4,172 km² is the largest ice cap on Svalbard The task is complete.
2:16