1
+ #
2
+ # Build index file (catalog) of ArcticDem hosted on AWS
3
+ import os
4
+ import geopandas as gpd
5
+ import numpy as np
6
+ import pandas as pd
7
+ import pystac
8
+
9
+ ###############################################################################
10
+ # MAIN
11
+ ###############################################################################
12
+
13
+ if __name__ == '__main__' :
14
+
15
+ # catalog_stac = 'https://pgc-opendata-dems.s3.us-west-2.amazonaws.com/pgc-data-stac.json'
16
+ # cat = pystac.read_file(catalog_stac)
17
+ # arcticdem_collection = cat.get_child('arcticdem')
18
+ # mosaic_collection = arcticdem_collection.get_child('arcticdem-mosaics')
19
+
20
+ collection_stac = 'https://pgc-opendata-dems.s3.us-west-2.amazonaws.com/arcticdem/strips/s2s041/2m.json'
21
+ col = pystac .read_file (collection_stac )
22
+
23
+ item_list = []
24
+ vrt_list_files = []
25
+
26
+ cnt = 0
27
+
28
+ for link in col .links :
29
+ if link .rel == pystac .RelType .CHILD :
30
+ subcat = pystac .read_file (link .target )
31
+ for _link in subcat .links :
32
+ if _link .rel == pystac .RelType .CHILD :
33
+ item = pystac .read_file (_link )
34
+ dem = item .to_dict ()['assets' ]['dem' ]['href' ]
35
+ dem = dem .replace ("." , "" , 1 )
36
+ path = link .target .replace ("https:/" , "/vsis3" )
37
+ path = path .replace (".s3.us-west-2.amazonaws.com" , "" , 1 )
38
+ path = path .replace (".json" , dem )
39
+ item_list .append (path )
40
+
41
+ # print(f"Number of features: {len(item_list)}")
42
+
43
+ scene_dem_list = path .replace ("/vsis3/pgc-opendata-dems/arcticdem/strips/s2s041/2m/" , "" , 1 )
44
+ latlon = scene_dem_list .split ("/" )[0 ]
45
+ scene_dem_list = "/data/ArcticDem/strips/" + latlon + ".txt"
46
+
47
+ vrt_list_files .append (scene_dem_list )
48
+
49
+ with open (scene_dem_list , 'w' ) as f :
50
+ for line in item_list :
51
+ f .write (f"{ line } \n " )
52
+
53
+ print (f"Generated: { scene_dem_list } " )
54
+
55
+ # if cnt == 1:
56
+ # break
57
+ # cnt += 1
58
+
59
+ print (f"Generated: { len (vrt_list_files )} vrt list files" )
60
+ print ("Building vrts now" )
61
+
62
+ for file in vrt_list_files :
63
+ vrtfile = file .replace ("txt" , "vrt" , 1 )
64
+ cmd = "gdalbuildvrt -input_file_list " + file + " " + vrtfile
65
+ print (f"{ cmd } " )
66
+ os .system (cmd )
0 commit comments