rslearn 0.0.6__py3-none-any.whl → 0.0.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rslearn/models/anysat.py +207 -0
- rslearn/models/clay/clay.py +204 -0
- rslearn/models/clay/configs/metadata.yaml +295 -0
- rslearn/models/galileo/__init__.py +5 -0
- rslearn/models/galileo/galileo.py +517 -0
- rslearn/models/galileo/single_file_galileo.py +1672 -0
- rslearn/models/panopticon_data/sensors/drone.yaml +32 -0
- rslearn/models/panopticon_data/sensors/enmap.yaml +904 -0
- rslearn/models/panopticon_data/sensors/goes.yaml +9 -0
- rslearn/models/panopticon_data/sensors/himawari.yaml +9 -0
- rslearn/models/panopticon_data/sensors/intuition.yaml +606 -0
- rslearn/models/panopticon_data/sensors/landsat8.yaml +84 -0
- rslearn/models/panopticon_data/sensors/modis_terra.yaml +99 -0
- rslearn/models/panopticon_data/sensors/qb2_ge1.yaml +34 -0
- rslearn/models/panopticon_data/sensors/sentinel1.yaml +85 -0
- rslearn/models/panopticon_data/sensors/sentinel2.yaml +97 -0
- rslearn/models/panopticon_data/sensors/superdove.yaml +60 -0
- rslearn/models/panopticon_data/sensors/wv23.yaml +63 -0
- rslearn/models/presto/presto.py +10 -7
- rslearn/models/prithvi.py +1046 -0
- rslearn/models/unet.py +17 -11
- rslearn/utils/geometry.py +61 -1
- rslearn/utils/vector_format.py +13 -10
- {rslearn-0.0.6.dist-info → rslearn-0.0.7.dist-info}/METADATA +145 -15
- {rslearn-0.0.6.dist-info → rslearn-0.0.7.dist-info}/RECORD +29 -10
- {rslearn-0.0.6.dist-info → rslearn-0.0.7.dist-info}/WHEEL +0 -0
- {rslearn-0.0.6.dist-info → rslearn-0.0.7.dist-info}/entry_points.txt +0 -0
- {rslearn-0.0.6.dist-info → rslearn-0.0.7.dist-info}/licenses/LICENSE +0 -0
- {rslearn-0.0.6.dist-info → rslearn-0.0.7.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
instrument: 'MSI' # You may want to update this based on the actual instrument
|
|
2
|
+
processing_level: 'L1C' # You may want to update this based on the actual processing level
|
|
3
|
+
|
|
4
|
+
bands:
|
|
5
|
+
B01:
|
|
6
|
+
name: 'Band 1' # You may want to provide a descriptive name
|
|
7
|
+
gaussian:
|
|
8
|
+
mu: 411.633593
|
|
9
|
+
sigma: 14.652
|
|
10
|
+
|
|
11
|
+
B02:
|
|
12
|
+
name: 'Band 2' # coastal aerosol
|
|
13
|
+
gaussian:
|
|
14
|
+
mu: 442.155
|
|
15
|
+
sigma: 8.434933
|
|
16
|
+
|
|
17
|
+
B03:
|
|
18
|
+
name: 'Band 3'
|
|
19
|
+
gaussian:
|
|
20
|
+
mu: 466.122
|
|
21
|
+
sigma: 18.894
|
|
22
|
+
|
|
23
|
+
B04:
|
|
24
|
+
name: 'Band 4' # ~ blue
|
|
25
|
+
gaussian:
|
|
26
|
+
mu: 487.078
|
|
27
|
+
sigma: 10.633
|
|
28
|
+
|
|
29
|
+
B05:
|
|
30
|
+
name: 'Band 5'
|
|
31
|
+
gaussian:
|
|
32
|
+
mu: 529.783
|
|
33
|
+
sigma: 10.782657
|
|
34
|
+
|
|
35
|
+
B06:
|
|
36
|
+
name: 'Band 6'
|
|
37
|
+
gaussian:
|
|
38
|
+
mu: 546.981
|
|
39
|
+
sigma: 10.331
|
|
40
|
+
|
|
41
|
+
B07:
|
|
42
|
+
name: 'Band 7' # green
|
|
43
|
+
gaussian:
|
|
44
|
+
mu: 554.026
|
|
45
|
+
sigma: 17.766939
|
|
46
|
+
|
|
47
|
+
B08:
|
|
48
|
+
name: 'Band 8'
|
|
49
|
+
gaussian:
|
|
50
|
+
mu: 644.898
|
|
51
|
+
sigma: 34.650989
|
|
52
|
+
|
|
53
|
+
B09:
|
|
54
|
+
name: 'Band 9' # red
|
|
55
|
+
gaussian:
|
|
56
|
+
mu: 665.695
|
|
57
|
+
sigma: 10.117
|
|
58
|
+
|
|
59
|
+
B10:
|
|
60
|
+
name: 'Band 10'
|
|
61
|
+
gaussian:
|
|
62
|
+
mu: 677.068
|
|
63
|
+
sigma: 9.007702
|
|
64
|
+
|
|
65
|
+
B11:
|
|
66
|
+
name: 'Band 11'
|
|
67
|
+
gaussian:
|
|
68
|
+
mu: 746.736
|
|
69
|
+
sigma: 9.952
|
|
70
|
+
|
|
71
|
+
B12:
|
|
72
|
+
name: 'Band 12'
|
|
73
|
+
gaussian:
|
|
74
|
+
mu: 857.323
|
|
75
|
+
sigma: 34.696136
|
|
76
|
+
|
|
77
|
+
B13:
|
|
78
|
+
name: 'Band 13'
|
|
79
|
+
gaussian:
|
|
80
|
+
mu: 866.55
|
|
81
|
+
sigma: 13.421421
|
|
82
|
+
|
|
83
|
+
B14:
|
|
84
|
+
name: 'Band 14'
|
|
85
|
+
gaussian:
|
|
86
|
+
mu: 1241.597
|
|
87
|
+
sigma: 23.356
|
|
88
|
+
|
|
89
|
+
B15:
|
|
90
|
+
name: 'Band 15'
|
|
91
|
+
gaussian:
|
|
92
|
+
mu: 1627.972
|
|
93
|
+
sigma: 27.593
|
|
94
|
+
|
|
95
|
+
B16:
|
|
96
|
+
name: 'Band 16'
|
|
97
|
+
gaussian:
|
|
98
|
+
mu: 2113.124
|
|
99
|
+
sigma: 47.341375
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
instrument: '4-band'
|
|
2
|
+
processing_level: 'SR'
|
|
3
|
+
|
|
4
|
+
# QuickBird-2 and GeoEye-1
|
|
5
|
+
# In the corresponding dataset, either of qb2 or ge1 are used. However, since
|
|
6
|
+
# their bands have the same properties, we use the same file for both
|
|
7
|
+
bands:
|
|
8
|
+
B01:
|
|
9
|
+
name: 'blue'
|
|
10
|
+
gaussian:
|
|
11
|
+
mu: 482.417803
|
|
12
|
+
sigma: 45.029733
|
|
13
|
+
GSD: 1.24
|
|
14
|
+
|
|
15
|
+
B02:
|
|
16
|
+
name: 'green'
|
|
17
|
+
gaussian:
|
|
18
|
+
mu: 547.272289
|
|
19
|
+
sigma: 58.295452
|
|
20
|
+
GSD: 1.24
|
|
21
|
+
|
|
22
|
+
B03:
|
|
23
|
+
name: 'red'
|
|
24
|
+
gaussian:
|
|
25
|
+
mu: 665.031763
|
|
26
|
+
sigma: 35.775908
|
|
27
|
+
GSD: 1.24
|
|
28
|
+
|
|
29
|
+
B04:
|
|
30
|
+
name: 'nir'
|
|
31
|
+
gaussian:
|
|
32
|
+
mu: 840.773239
|
|
33
|
+
sigma: 83.700732
|
|
34
|
+
GSD: 1.24
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
bands:
|
|
2
|
+
# Modify the band numbering to be the Helios band strings in uppercase
|
|
3
|
+
VV:
|
|
4
|
+
name: VV
|
|
5
|
+
gaussian:
|
|
6
|
+
mu: -1
|
|
7
|
+
sigma: -1
|
|
8
|
+
orbit: BOTH
|
|
9
|
+
|
|
10
|
+
VH:
|
|
11
|
+
name: VH
|
|
12
|
+
gaussian:
|
|
13
|
+
mu: -2
|
|
14
|
+
sigma: -1
|
|
15
|
+
orbit: BOTH
|
|
16
|
+
|
|
17
|
+
HH:
|
|
18
|
+
name: HH
|
|
19
|
+
gaussian:
|
|
20
|
+
mu: -3
|
|
21
|
+
sigma: -1
|
|
22
|
+
orbit: BOTH
|
|
23
|
+
|
|
24
|
+
HV:
|
|
25
|
+
name: HV
|
|
26
|
+
gaussian:
|
|
27
|
+
mu: -4
|
|
28
|
+
sigma: -1
|
|
29
|
+
orbit: BOTH
|
|
30
|
+
|
|
31
|
+
VV_ASCENDING:
|
|
32
|
+
name: VV
|
|
33
|
+
gaussian:
|
|
34
|
+
mu: -5
|
|
35
|
+
sigma: -1
|
|
36
|
+
orbit: ASCENDING
|
|
37
|
+
|
|
38
|
+
VH_ASCENDING:
|
|
39
|
+
name: VH
|
|
40
|
+
gaussian:
|
|
41
|
+
mu: -6
|
|
42
|
+
sigma: -1
|
|
43
|
+
orbit: ASCENDING
|
|
44
|
+
|
|
45
|
+
HH_ASCENDING:
|
|
46
|
+
name: HH
|
|
47
|
+
gaussian:
|
|
48
|
+
mu: -7
|
|
49
|
+
sigma: -1
|
|
50
|
+
orbit: ASCENDING
|
|
51
|
+
|
|
52
|
+
HV_ASCENDING:
|
|
53
|
+
name: HV
|
|
54
|
+
gaussian:
|
|
55
|
+
mu: -8
|
|
56
|
+
sigma: -1
|
|
57
|
+
orbit: ASCENDING
|
|
58
|
+
|
|
59
|
+
VV_DESCENDING:
|
|
60
|
+
name: VV
|
|
61
|
+
gaussian:
|
|
62
|
+
mu: -9
|
|
63
|
+
sigma: -1
|
|
64
|
+
orbit: DESCENDING
|
|
65
|
+
|
|
66
|
+
VH_DESCENDING:
|
|
67
|
+
name: VH
|
|
68
|
+
gaussian:
|
|
69
|
+
mu: -10
|
|
70
|
+
sigma: -1
|
|
71
|
+
orbit: DESCENDING
|
|
72
|
+
|
|
73
|
+
HH_DESCENDING:
|
|
74
|
+
name: HH
|
|
75
|
+
gaussian:
|
|
76
|
+
mu: -11
|
|
77
|
+
sigma: -1
|
|
78
|
+
orbit: DESCENDING
|
|
79
|
+
|
|
80
|
+
HV_DESCENDING:
|
|
81
|
+
name: HV
|
|
82
|
+
gaussian:
|
|
83
|
+
mu: -12
|
|
84
|
+
sigma: -1
|
|
85
|
+
orbit: DESCENDING
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
instrument: MSI
|
|
2
|
+
level: L1C
|
|
3
|
+
|
|
4
|
+
srf_filename: rfs_sentinel2_a_13b.npy
|
|
5
|
+
|
|
6
|
+
bands:
|
|
7
|
+
B01:
|
|
8
|
+
name: '01 - Coastal aerosol'
|
|
9
|
+
gaussian:
|
|
10
|
+
mu: 442.922568734037
|
|
11
|
+
sigma: 7.248330717861807
|
|
12
|
+
GSD: 60
|
|
13
|
+
|
|
14
|
+
B02:
|
|
15
|
+
name: '02 - Blue'
|
|
16
|
+
gaussian:
|
|
17
|
+
mu: 492.9971095687347
|
|
18
|
+
sigma: 23.810316659477703
|
|
19
|
+
GSD: 10
|
|
20
|
+
|
|
21
|
+
B03:
|
|
22
|
+
name: '03 - Green'
|
|
23
|
+
gaussian:
|
|
24
|
+
mu: 559.5987534818435
|
|
25
|
+
sigma: 12.768882177939654
|
|
26
|
+
GSD: 10
|
|
27
|
+
|
|
28
|
+
B04:
|
|
29
|
+
name: '04 - Red'
|
|
30
|
+
gaussian:
|
|
31
|
+
mu: 664.6300422881802
|
|
32
|
+
sigma: 11.757355524910432
|
|
33
|
+
GSD: 10
|
|
34
|
+
|
|
35
|
+
B05:
|
|
36
|
+
name: '05 - Vegetation Red Edge'
|
|
37
|
+
gaussian:
|
|
38
|
+
mu: 704.0059319834206
|
|
39
|
+
sigma: 5.362493403740522
|
|
40
|
+
GSD: 20
|
|
41
|
+
|
|
42
|
+
B06:
|
|
43
|
+
name: '06 - Vegetation Red Edge'
|
|
44
|
+
gaussian:
|
|
45
|
+
mu: 740.5521320760564
|
|
46
|
+
sigma: 5.2330999827526155
|
|
47
|
+
GSD: 20
|
|
48
|
+
|
|
49
|
+
B07:
|
|
50
|
+
name: '07 - Vegetation Red Edge'
|
|
51
|
+
gaussian:
|
|
52
|
+
mu: 782.4190761493182
|
|
53
|
+
sigma: 7.212484180540051
|
|
54
|
+
GSD: 20
|
|
55
|
+
|
|
56
|
+
B08:
|
|
57
|
+
name: '08 - NIR'
|
|
58
|
+
gaussian:
|
|
59
|
+
mu: 827.5394062383036
|
|
60
|
+
sigma: 36.79409520400872
|
|
61
|
+
GSD: 10
|
|
62
|
+
|
|
63
|
+
B8A:
|
|
64
|
+
name: '08A - Vegetation Red Edge'
|
|
65
|
+
gaussian:
|
|
66
|
+
mu: 864.7801257644385
|
|
67
|
+
sigma: 8.07210759526792
|
|
68
|
+
GSD: 20
|
|
69
|
+
|
|
70
|
+
B09:
|
|
71
|
+
name: '09 - Water vapour'
|
|
72
|
+
gaussian:
|
|
73
|
+
mu: 945.0294901407692
|
|
74
|
+
sigma: 7.518965324285279
|
|
75
|
+
GSD: 60
|
|
76
|
+
|
|
77
|
+
B10:
|
|
78
|
+
name: '10 - SWIR - Cirrus'
|
|
79
|
+
gaussian:
|
|
80
|
+
mu: 1373.3636762095748
|
|
81
|
+
sigma: 11.163498916290587
|
|
82
|
+
GSD: 60
|
|
83
|
+
p: 2
|
|
84
|
+
|
|
85
|
+
B11:
|
|
86
|
+
name: '11 - SWIR'
|
|
87
|
+
gaussian:
|
|
88
|
+
mu: 1613.8624163477282
|
|
89
|
+
sigma: 34.4986558584479
|
|
90
|
+
GSD: 20
|
|
91
|
+
|
|
92
|
+
B12:
|
|
93
|
+
name: '12 - SWIR'
|
|
94
|
+
gaussian:
|
|
95
|
+
mu: 2203.6182057820033
|
|
96
|
+
sigma: 64.60648125885301
|
|
97
|
+
GSD: 20
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
instrument: 'PSB.SD'
|
|
2
|
+
processing_level: 'NA'
|
|
3
|
+
|
|
4
|
+
bands:
|
|
5
|
+
B01:
|
|
6
|
+
name: 'Coastal Blue'
|
|
7
|
+
gaussian:
|
|
8
|
+
mu: 443.704
|
|
9
|
+
sigma: 7.9672
|
|
10
|
+
GSD: 3.7
|
|
11
|
+
|
|
12
|
+
B02:
|
|
13
|
+
name: 'Blue'
|
|
14
|
+
gaussian:
|
|
15
|
+
mu: 490.973
|
|
16
|
+
sigma: 20.5096
|
|
17
|
+
GSD: 3.7
|
|
18
|
+
|
|
19
|
+
B03:
|
|
20
|
+
name: 'Green I'
|
|
21
|
+
gaussian:
|
|
22
|
+
mu: 532.719
|
|
23
|
+
sigma: 14.4789
|
|
24
|
+
GSD: 3.7
|
|
25
|
+
|
|
26
|
+
B04:
|
|
27
|
+
name: 'Green'
|
|
28
|
+
gaussian:
|
|
29
|
+
mu: 565.811
|
|
30
|
+
sigma: 15.2825
|
|
31
|
+
GSD: 3.7
|
|
32
|
+
|
|
33
|
+
B05:
|
|
34
|
+
name: 'Yellow'
|
|
35
|
+
gaussian:
|
|
36
|
+
mu: 611.587
|
|
37
|
+
sigma: 9.33594
|
|
38
|
+
GSD: 3.7
|
|
39
|
+
|
|
40
|
+
B06:
|
|
41
|
+
name: 'Red'
|
|
42
|
+
gaussian:
|
|
43
|
+
mu: 665.751
|
|
44
|
+
sigma: 12.6253
|
|
45
|
+
GSD: 3.7
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
B07:
|
|
49
|
+
name: 'Red Edge'
|
|
50
|
+
gaussian:
|
|
51
|
+
mu: 706.918
|
|
52
|
+
sigma: 6.92817
|
|
53
|
+
GSD: 3.7
|
|
54
|
+
|
|
55
|
+
B08:
|
|
56
|
+
name: 'NIR'
|
|
57
|
+
gaussian:
|
|
58
|
+
mu: 864.831
|
|
59
|
+
sigma: 15.2059
|
|
60
|
+
GSD: 3.7
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
processing_level: 'SR'
|
|
2
|
+
|
|
3
|
+
srf_filename: rfs_wv23_recon.npy
|
|
4
|
+
|
|
5
|
+
# Worldview-2 and Worldview-3_VNIR
|
|
6
|
+
# In the corresponding dataset, either of the two above satellites are used. However, since
|
|
7
|
+
# their bands have the same properties, we use the same file for both
|
|
8
|
+
bands:
|
|
9
|
+
B01:
|
|
10
|
+
name: 'coastal'
|
|
11
|
+
gaussian:
|
|
12
|
+
mu: 427.911967712222
|
|
13
|
+
sigma: 17.620786889126904
|
|
14
|
+
GSD: 1.24
|
|
15
|
+
|
|
16
|
+
B02:
|
|
17
|
+
name: 'blue'
|
|
18
|
+
gaussian:
|
|
19
|
+
mu: 482.40648216687816
|
|
20
|
+
sigma: 22.189227543486883
|
|
21
|
+
GSD: 1.24
|
|
22
|
+
|
|
23
|
+
B03:
|
|
24
|
+
name: 'green'
|
|
25
|
+
gaussian:
|
|
26
|
+
mu: 545.1346759174888
|
|
27
|
+
sigma: 27.270655243664613
|
|
28
|
+
GSD: 1.24
|
|
29
|
+
|
|
30
|
+
B04:
|
|
31
|
+
name: 'yellow'
|
|
32
|
+
gaussian:
|
|
33
|
+
mu: 604.6891589644367
|
|
34
|
+
sigma: 15.166919163740687
|
|
35
|
+
GSD: 1.24
|
|
36
|
+
|
|
37
|
+
B05:
|
|
38
|
+
name: 'red'
|
|
39
|
+
gaussian:
|
|
40
|
+
mu: 660.5315665213377
|
|
41
|
+
sigma: 23.075009737550587
|
|
42
|
+
GSD: 1.24
|
|
43
|
+
|
|
44
|
+
B06:
|
|
45
|
+
name: 'red edge'
|
|
46
|
+
gaussian:
|
|
47
|
+
mu: 723.1823149413602
|
|
48
|
+
sigma: 15.151759763702627
|
|
49
|
+
GSD: 1.24
|
|
50
|
+
|
|
51
|
+
B07:
|
|
52
|
+
name: 'nir1'
|
|
53
|
+
gaussian:
|
|
54
|
+
mu: 823.9274208290032
|
|
55
|
+
sigma: 42.09302701870739
|
|
56
|
+
GSD: 1.24
|
|
57
|
+
|
|
58
|
+
B08:
|
|
59
|
+
name: 'nir2'
|
|
60
|
+
gaussian:
|
|
61
|
+
mu: 906.4611534199017
|
|
62
|
+
sigma: 36.61665833552878
|
|
63
|
+
GSD: 1.24
|
rslearn/models/presto/presto.py
CHANGED
|
@@ -120,12 +120,13 @@ class Presto(nn.Module):
|
|
|
120
120
|
bs = [x.shape[0] for x in [s1, s2, era5, srtm] if x is not None]
|
|
121
121
|
hs = [x.shape[2] for x in [s1, s2, era5, srtm] if x is not None]
|
|
122
122
|
ws = [x.shape[3] for x in [s1, s2, era5, srtm] if x is not None]
|
|
123
|
+
devices = [x.device for x in [s1, s2, era5, srtm] if x is not None]
|
|
123
124
|
|
|
124
|
-
assert len(bs) > 0
|
|
125
125
|
assert len(set(bs)) == 1
|
|
126
126
|
assert len(set(hs)) == 1
|
|
127
127
|
assert len(set(ws)) == 1
|
|
128
|
-
|
|
128
|
+
assert len(set(devices)) == 1
|
|
129
|
+
b, h, w, device = bs[0], hs[0], ws[0], devices[0]
|
|
129
130
|
|
|
130
131
|
# these values will be initialized as
|
|
131
132
|
# we iterate through the data
|
|
@@ -154,9 +155,9 @@ class Presto(nn.Module):
|
|
|
154
155
|
|
|
155
156
|
data = rearrange(data, "b (t c) h w -> b t h w c", t=m_t)
|
|
156
157
|
if x is None:
|
|
157
|
-
x = torch.zeros(b, t, h, w, len(INPUT_PRESTO_BANDS))
|
|
158
|
+
x = torch.zeros(b, t, h, w, len(INPUT_PRESTO_BANDS), device=device)
|
|
158
159
|
if mask is None:
|
|
159
|
-
mask = torch.ones(b, t, h, w, len(INPUT_PRESTO_BANDS))
|
|
160
|
+
mask = torch.ones(b, t, h, w, len(INPUT_PRESTO_BANDS), device=device)
|
|
160
161
|
|
|
161
162
|
# construct a mapping from the input bands to the presto input bands
|
|
162
163
|
input_to_output_mapping = [
|
|
@@ -170,15 +171,17 @@ class Presto(nn.Module):
|
|
|
170
171
|
assert t is not None
|
|
171
172
|
|
|
172
173
|
if dynamic_world is None:
|
|
173
|
-
dynamic_world =
|
|
174
|
+
dynamic_world = (
|
|
175
|
+
torch.ones(b, t, h, w, device=device) * NUM_DYNAMIC_WORLD_CLASSES
|
|
176
|
+
)
|
|
174
177
|
|
|
175
178
|
if months is None:
|
|
176
|
-
months = torch.ones((b, t), device=
|
|
179
|
+
months = torch.ones((b, t), device=device) * self.month
|
|
177
180
|
else:
|
|
178
181
|
assert months.shape[-1] == t
|
|
179
182
|
|
|
180
183
|
if normalize:
|
|
181
|
-
x = (x + PRESTO_ADD_BY) / PRESTO_DIV_BY
|
|
184
|
+
x = (x + PRESTO_ADD_BY.to(device=device)) / PRESTO_DIV_BY.to(device=device)
|
|
182
185
|
return x, mask, dynamic_world.long(), months.long()
|
|
183
186
|
|
|
184
187
|
def forward(self, inputs: list[dict[str, Any]]) -> list[torch.Tensor]:
|