Skip to content

Commit 0cec859

Browse files
committed
⚗️ Increase DBSCAN min_samples from 300 to 320
Reduces the active subglacial lake inventory count from 221 to 204. This gets rid of some most likely false positive lakes, in particular, a large one over the grounding zone of Pine Island Glacier.
1 parent e5e91cd commit 0cec859

6 files changed

+386
-407
lines changed

antarctic_subglacial_lakes_3031.geojson

+145-162
Large diffs are not rendered by default.

antarctic_subglacial_lakes_4326.geojson

+145-162
Large diffs are not rendered by default.

atlxi_lake.ipynb

+69-58
Large diffs are not rendered by default.

atlxi_lake.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@
191191
basins: pd.core.indexes.numeric.Int64Index = drainage_basins.index # run on all basins
192192

193193
eps: int = 3000 # ICESat-2 tracks are separated by ~3 km across track, with each laser pair ~90 m apart
194-
min_samples: int = 300
194+
min_samples: int = 320
195195
for basin_index in tqdm.tqdm(iterable=basins):
196196
# Initial data cleaning, filter to rows that are in the drainage basin
197197
basin = drainage_basins.loc[basin_index]
@@ -416,7 +416,7 @@
416416

417417
# %%
418418
# Generate gridded time-series of ice elevation over lake
419-
cycles: tuple = (3, 4, 5, 6, 7, 8, 9)
419+
cycles: tuple = (3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
420420
os.makedirs(name=f"figures/{placename}", exist_ok=True)
421421
ds_lake: xr.Dataset = deepicedrain.spatiotemporal_cube(
422422
table=df_lake.to_pandas(),

deepicedrain/atlas_catalog.yaml

+22-22
Original file line numberDiff line numberDiff line change
@@ -255,69 +255,69 @@ sources:
255255
metadata:
256256
lakedict:
257257
- lakename: Kamb 1
258-
ids: [81]
258+
ids: [76]
259259
- lakename: Kamb 34
260-
ids: [83]
260+
ids: [78]
261261
# - lakename: Kamb 5
262262
# ids: [75]
263263
- lakename: Kamb 6
264-
ids: [79]
264+
ids: [74]
265265
# - lakename: Kamb 7
266266
# ids: [67]
267267
- lakename: Kamb 8
268-
ids: [80]
268+
ids: [75]
269269
- lakename: Kamb 10
270-
ids: [82]
270+
ids: [77]
271271
- lakename: MacAyeal 1
272-
ids: [162]
272+
ids: [151]
273273
# - lakename: MacAyeal 4
274274
# ids: [121]
275275
- lakename: Subglacial Lake Mercer
276-
ids: [31, 36]
276+
ids: [27, 32]
277277
# - lakename: Recovery 2
278278
# ids: [187, 188]
279279
- lakename: Recovery IV
280-
ids: [211]
280+
ids: [195]
281281
- lakename: Slessor 23
282-
ids: [175]
282+
ids: [162]
283283
- lakename: Slessor 45
284-
ids: [144]
284+
ids: [164]
285285
- lakename: Subglacial Lake Conway
286-
ids: [63, 64]
286+
ids: [58, 59]
287287
- lakename: Subglacial Lake Whillans
288-
ids: [70, 71]
288+
ids: [65, 66]
289289
transect: 0989_pt1
290290
# - lakename: Whillans 6
291291
# ids: [46]
292292
- lakename: Whillans 7
293-
ids: [60]
293+
ids: [55]
294294
transect: 0531_pt1
295295
- lakename: Whillans IX
296-
ids: [62]
296+
ids: [57]
297297
transect: 1080_pt3
298298
# - lakename: Whillans X
299299
# ids: [51]
300300
- lakename: Whillans XI
301-
ids: [74, 75]
301+
ids: [69, 70]
302302
- lakename: Subglacial Lake Engelhardt
303-
ids: [69]
303+
ids: [64]
304304
# - lakename: Lake 78
305305
# ids: [23]
306306
- lakename: Lake 12
307-
ids: [72]
307+
ids: [67]
308308
transect: 0593_pt1
309309
- lakename: \* 1
310-
ids: [66]
310+
ids: [60]
311311
- lakename: \* 2
312-
ids: [67]
312+
ids: [61]
313313
- lakename: \* 3
314-
ids: [77]
314+
ids: [72]
315315
- lakename: \* 4
316-
ids: [97, 98, 110]
316+
ids: [92, 93]
317317
# - lakename: \* 5
318318
# ids: [97]
319319
- lakename: \* 6
320-
ids: [200, 203]
320+
ids: [186, 189]
321321
test_data:
322322
description: 'Sample ICESat-2 datasets for testing purposes'
323323
args:

deepicedrain/lake_algorithms.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,9 @@ def find_clusters(
6060
from sklearn.cluster import DBSCAN
6161

6262
# Run DBSCAN using {eps} m distance, and minimum of {min_samples} points
63-
dbscan = DBSCAN(eps=eps, min_samples=min_samples, **kwargs)
63+
dbscan = DBSCAN(
64+
eps=eps, min_samples=min_samples, calc_core_sample_indices=False, **kwargs
65+
)
6466
dbscan.fit(X=X)
6567

6668
cluster_labels = dbscan.labels_ + 1 # noise points -1 becomes 0

0 commit comments

Comments
 (0)