rslearn 0.0.1__py3-none-any.whl → 0.0.21__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/arg_parser.py +31 -0
- rslearn/config/__init__.py +6 -12
- rslearn/config/dataset.py +520 -401
- rslearn/const.py +9 -15
- rslearn/data_sources/__init__.py +8 -23
- rslearn/data_sources/aws_landsat.py +242 -98
- rslearn/data_sources/aws_open_data.py +111 -151
- rslearn/data_sources/aws_sentinel1.py +131 -0
- rslearn/data_sources/climate_data_store.py +471 -0
- rslearn/data_sources/copernicus.py +884 -12
- rslearn/data_sources/data_source.py +43 -12
- rslearn/data_sources/earthdaily.py +484 -0
- rslearn/data_sources/earthdata_srtm.py +282 -0
- rslearn/data_sources/eurocrops.py +242 -0
- rslearn/data_sources/gcp_public_data.py +578 -222
- rslearn/data_sources/google_earth_engine.py +461 -135
- rslearn/data_sources/local_files.py +219 -150
- rslearn/data_sources/openstreetmap.py +51 -89
- rslearn/data_sources/planet.py +24 -60
- rslearn/data_sources/planet_basemap.py +275 -0
- rslearn/data_sources/planetary_computer.py +798 -0
- rslearn/data_sources/usda_cdl.py +195 -0
- rslearn/data_sources/usgs_landsat.py +115 -83
- rslearn/data_sources/utils.py +249 -61
- rslearn/data_sources/vector_source.py +1 -0
- rslearn/data_sources/worldcereal.py +449 -0
- rslearn/data_sources/worldcover.py +144 -0
- rslearn/data_sources/worldpop.py +153 -0
- rslearn/data_sources/xyz_tiles.py +150 -107
- rslearn/dataset/__init__.py +8 -2
- rslearn/dataset/add_windows.py +2 -2
- rslearn/dataset/dataset.py +40 -51
- rslearn/dataset/handler_summaries.py +131 -0
- rslearn/dataset/manage.py +313 -74
- rslearn/dataset/materialize.py +431 -107
- rslearn/dataset/remap.py +29 -4
- rslearn/dataset/storage/__init__.py +1 -0
- rslearn/dataset/storage/file.py +202 -0
- rslearn/dataset/storage/storage.py +140 -0
- rslearn/dataset/window.py +181 -44
- rslearn/lightning_cli.py +454 -0
- rslearn/log_utils.py +24 -0
- rslearn/main.py +384 -181
- rslearn/models/anysat.py +215 -0
- rslearn/models/attention_pooling.py +177 -0
- rslearn/models/clay/clay.py +231 -0
- rslearn/models/clay/configs/metadata.yaml +295 -0
- rslearn/models/clip.py +68 -0
- rslearn/models/component.py +111 -0
- rslearn/models/concatenate_features.py +103 -0
- rslearn/models/conv.py +63 -0
- rslearn/models/croma.py +306 -0
- rslearn/models/detr/__init__.py +5 -0
- rslearn/models/detr/box_ops.py +103 -0
- rslearn/models/detr/detr.py +504 -0
- rslearn/models/detr/matcher.py +107 -0
- rslearn/models/detr/position_encoding.py +114 -0
- rslearn/models/detr/transformer.py +429 -0
- rslearn/models/detr/util.py +24 -0
- rslearn/models/dinov3.py +177 -0
- rslearn/models/faster_rcnn.py +30 -28
- rslearn/models/feature_center_crop.py +53 -0
- rslearn/models/fpn.py +19 -8
- rslearn/models/galileo/__init__.py +5 -0
- rslearn/models/galileo/galileo.py +595 -0
- rslearn/models/galileo/single_file_galileo.py +1678 -0
- rslearn/models/module_wrapper.py +65 -0
- rslearn/models/molmo.py +69 -0
- rslearn/models/multitask.py +384 -28
- rslearn/models/olmoearth_pretrain/__init__.py +1 -0
- rslearn/models/olmoearth_pretrain/model.py +421 -0
- rslearn/models/olmoearth_pretrain/norm.py +86 -0
- rslearn/models/panopticon.py +170 -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/pick_features.py +17 -10
- rslearn/models/pooling_decoder.py +60 -7
- rslearn/models/presto/__init__.py +5 -0
- rslearn/models/presto/presto.py +297 -0
- rslearn/models/presto/single_file_presto.py +926 -0
- rslearn/models/prithvi.py +1147 -0
- rslearn/models/resize_features.py +59 -0
- rslearn/models/sam2_enc.py +13 -9
- rslearn/models/satlaspretrain.py +38 -18
- rslearn/models/simple_time_series.py +188 -77
- rslearn/models/singletask.py +24 -13
- rslearn/models/ssl4eo_s12.py +40 -30
- rslearn/models/swin.py +44 -32
- rslearn/models/task_embedding.py +250 -0
- rslearn/models/terramind.py +256 -0
- rslearn/models/trunk.py +139 -0
- rslearn/models/unet.py +68 -22
- rslearn/models/upsample.py +48 -0
- rslearn/models/use_croma.py +508 -0
- rslearn/template_params.py +26 -0
- rslearn/tile_stores/__init__.py +41 -18
- rslearn/tile_stores/default.py +409 -0
- rslearn/tile_stores/tile_store.py +236 -132
- rslearn/train/all_patches_dataset.py +530 -0
- rslearn/train/callbacks/adapters.py +53 -0
- rslearn/train/callbacks/freeze_unfreeze.py +348 -17
- rslearn/train/callbacks/gradients.py +129 -0
- rslearn/train/callbacks/peft.py +116 -0
- rslearn/train/data_module.py +444 -20
- rslearn/train/dataset.py +588 -235
- rslearn/train/lightning_module.py +192 -62
- rslearn/train/model_context.py +88 -0
- rslearn/train/optimizer.py +31 -0
- rslearn/train/prediction_writer.py +319 -84
- rslearn/train/scheduler.py +92 -0
- rslearn/train/tasks/classification.py +55 -28
- rslearn/train/tasks/detection.py +132 -76
- rslearn/train/tasks/embedding.py +120 -0
- rslearn/train/tasks/multi_task.py +28 -14
- rslearn/train/tasks/per_pixel_regression.py +291 -0
- rslearn/train/tasks/regression.py +161 -44
- rslearn/train/tasks/segmentation.py +428 -53
- rslearn/train/tasks/task.py +6 -5
- rslearn/train/transforms/__init__.py +1 -1
- rslearn/train/transforms/concatenate.py +54 -10
- rslearn/train/transforms/crop.py +29 -11
- rslearn/train/transforms/flip.py +18 -6
- rslearn/train/transforms/mask.py +78 -0
- rslearn/train/transforms/normalize.py +101 -17
- rslearn/train/transforms/pad.py +19 -7
- rslearn/train/transforms/resize.py +83 -0
- rslearn/train/transforms/select_bands.py +76 -0
- rslearn/train/transforms/sentinel1.py +75 -0
- rslearn/train/transforms/transform.py +89 -70
- rslearn/utils/__init__.py +2 -6
- rslearn/utils/array.py +8 -6
- rslearn/utils/feature.py +2 -2
- rslearn/utils/fsspec.py +90 -1
- rslearn/utils/geometry.py +347 -7
- rslearn/utils/get_utm_ups_crs.py +2 -3
- rslearn/utils/grid_index.py +5 -5
- rslearn/utils/jsonargparse.py +178 -0
- rslearn/utils/mp.py +4 -3
- rslearn/utils/raster_format.py +268 -116
- rslearn/utils/rtree_index.py +64 -17
- rslearn/utils/sqlite_index.py +7 -1
- rslearn/utils/vector_format.py +252 -97
- {rslearn-0.0.1.dist-info → rslearn-0.0.21.dist-info}/METADATA +532 -283
- rslearn-0.0.21.dist-info/RECORD +167 -0
- {rslearn-0.0.1.dist-info → rslearn-0.0.21.dist-info}/WHEEL +1 -1
- rslearn-0.0.21.dist-info/licenses/NOTICE +115 -0
- rslearn/data_sources/raster_source.py +0 -309
- rslearn/models/registry.py +0 -5
- rslearn/tile_stores/file.py +0 -242
- rslearn/utils/mgrs.py +0 -24
- rslearn/utils/utils.py +0 -22
- rslearn-0.0.1.dist-info/RECORD +0 -88
- /rslearn/{data_sources/geotiff.py → py.typed} +0 -0
- {rslearn-0.0.1.dist-info → rslearn-0.0.21.dist-info}/entry_points.txt +0 -0
- {rslearn-0.0.1.dist-info → rslearn-0.0.21.dist-info/licenses}/LICENSE +0 -0
- {rslearn-0.0.1.dist-info → rslearn-0.0.21.dist-info}/top_level.txt +0 -0
rslearn/tile_stores/file.py
DELETED
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
"""FileTileStore TileStore implementation."""
|
|
2
|
-
|
|
3
|
-
import json
|
|
4
|
-
from typing import Any
|
|
5
|
-
|
|
6
|
-
import numpy.typing as npt
|
|
7
|
-
from upath import UPath
|
|
8
|
-
|
|
9
|
-
from rslearn.config import RasterFormatConfig, TileStoreConfig, VectorFormatConfig
|
|
10
|
-
from rslearn.utils import Feature, PixelBounds, Projection
|
|
11
|
-
from rslearn.utils.fsspec import open_atomic
|
|
12
|
-
from rslearn.utils.raster_format import (
|
|
13
|
-
GeotiffRasterFormat,
|
|
14
|
-
RasterFormat,
|
|
15
|
-
load_raster_format,
|
|
16
|
-
)
|
|
17
|
-
from rslearn.utils.vector_format import (
|
|
18
|
-
GeojsonVectorFormat,
|
|
19
|
-
VectorFormat,
|
|
20
|
-
load_vector_format,
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
from .tile_store import LayerMetadata, TileStore, TileStoreLayer
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class FileTileStoreLayer(TileStoreLayer):
|
|
27
|
-
"""A layer in a FileTileStore."""
|
|
28
|
-
|
|
29
|
-
def __init__(
|
|
30
|
-
self,
|
|
31
|
-
path: UPath,
|
|
32
|
-
projection: Projection | None = None,
|
|
33
|
-
raster_format: RasterFormat = GeotiffRasterFormat(),
|
|
34
|
-
vector_format: VectorFormat = GeojsonVectorFormat(),
|
|
35
|
-
):
|
|
36
|
-
"""Creates a new FileTileStoreLayer.
|
|
37
|
-
|
|
38
|
-
The root directory is a subfolder of the FileTileStore's root directory.
|
|
39
|
-
|
|
40
|
-
Args:
|
|
41
|
-
fs: filesystem where this layer is stored
|
|
42
|
-
path: path on the filesystem corresponding to this layer
|
|
43
|
-
projection: the projection of this layer
|
|
44
|
-
raster_format: the RasterFormat to use for reading/writing raster data
|
|
45
|
-
vector_format: the VectorFormat to use for reading/writing vector data
|
|
46
|
-
"""
|
|
47
|
-
self.path = path
|
|
48
|
-
self.raster_format = raster_format
|
|
49
|
-
self.vector_format = vector_format
|
|
50
|
-
self.projection = projection
|
|
51
|
-
|
|
52
|
-
if not self.projection:
|
|
53
|
-
self.projection = self.get_metadata().projection
|
|
54
|
-
|
|
55
|
-
def read_raster(self, bounds: PixelBounds) -> npt.NDArray[Any] | None:
|
|
56
|
-
"""Read raster data from the store.
|
|
57
|
-
|
|
58
|
-
Args:
|
|
59
|
-
bounds: the bounds within which to read
|
|
60
|
-
|
|
61
|
-
Returns:
|
|
62
|
-
the raster data
|
|
63
|
-
"""
|
|
64
|
-
return self.raster_format.decode_raster(self.path, bounds)
|
|
65
|
-
|
|
66
|
-
def write_raster(self, bounds: PixelBounds, array: npt.NDArray[Any]) -> None:
|
|
67
|
-
"""Write raster data to the store.
|
|
68
|
-
|
|
69
|
-
Args:
|
|
70
|
-
bounds: the bounds of the raster
|
|
71
|
-
array: the raster data
|
|
72
|
-
"""
|
|
73
|
-
self.raster_format.encode_raster(self.path, self.projection, bounds, array)
|
|
74
|
-
|
|
75
|
-
def get_raster_bounds(self) -> PixelBounds:
|
|
76
|
-
"""Gets the bounds of the raster data in the store."""
|
|
77
|
-
return self.raster_format.get_raster_bounds(self.path)
|
|
78
|
-
|
|
79
|
-
def read_vector(self, bounds: PixelBounds) -> list[Feature]:
|
|
80
|
-
"""Read vector data from the store.
|
|
81
|
-
|
|
82
|
-
Args:
|
|
83
|
-
bounds: the bounds within which to read
|
|
84
|
-
|
|
85
|
-
Returns:
|
|
86
|
-
the vector data
|
|
87
|
-
"""
|
|
88
|
-
return self.vector_format.decode_vector(self.path, bounds)
|
|
89
|
-
|
|
90
|
-
def write_vector(self, data: list[Feature]) -> None:
|
|
91
|
-
"""Save vector tiles to the store.
|
|
92
|
-
|
|
93
|
-
Args:
|
|
94
|
-
data: the vector data
|
|
95
|
-
"""
|
|
96
|
-
self.vector_format.encode_vector(self.path, self.projection, data)
|
|
97
|
-
|
|
98
|
-
def get_metadata(self) -> LayerMetadata:
|
|
99
|
-
"""Get the LayerMetadata associated with this layer."""
|
|
100
|
-
with (self.path / "metadata.json").open("r") as f:
|
|
101
|
-
return LayerMetadata.deserialize(json.load(f))
|
|
102
|
-
|
|
103
|
-
def set_property(self, key: str, value: Any) -> None:
|
|
104
|
-
"""Set a property in the metadata for this layer.
|
|
105
|
-
|
|
106
|
-
Args:
|
|
107
|
-
key: the property key
|
|
108
|
-
value: the property value
|
|
109
|
-
"""
|
|
110
|
-
metadata = self.get_metadata()
|
|
111
|
-
metadata.properties[key] = value
|
|
112
|
-
self.save_metadata(metadata)
|
|
113
|
-
|
|
114
|
-
def save_metadata(self, metadata: LayerMetadata) -> None:
|
|
115
|
-
"""Save the LayerMetadata associated with this layer."""
|
|
116
|
-
self.path.mkdir(parents=True, exist_ok=True)
|
|
117
|
-
metadata_path = self.path / "metadata.json"
|
|
118
|
-
with open_atomic(metadata_path, "w") as f:
|
|
119
|
-
json.dump(metadata.serialize(), f)
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
class FileTileStore(TileStore):
|
|
123
|
-
"""A TileStore that stores data on the local filesystem."""
|
|
124
|
-
|
|
125
|
-
def __init__(
|
|
126
|
-
self,
|
|
127
|
-
path: UPath,
|
|
128
|
-
raster_format: RasterFormat = GeotiffRasterFormat(),
|
|
129
|
-
vector_format: VectorFormat = GeojsonVectorFormat(),
|
|
130
|
-
):
|
|
131
|
-
"""Initialize a new FileTileStore.
|
|
132
|
-
|
|
133
|
-
Args:
|
|
134
|
-
fs: the filesystem for this tile store.
|
|
135
|
-
path: the path on the fs containing root of this tile store.
|
|
136
|
-
raster_format: the RasterFormat (defaults to Geotiff)
|
|
137
|
-
vector_format: the VectorFormat (defaults to GeoJSON)
|
|
138
|
-
"""
|
|
139
|
-
self.path = path
|
|
140
|
-
self.raster_format = raster_format
|
|
141
|
-
self.vector_format = vector_format
|
|
142
|
-
|
|
143
|
-
def _get_layer_dir(self, layer_id: tuple[str, ...]) -> UPath:
|
|
144
|
-
"""Get the path of the specified layer ID."""
|
|
145
|
-
cur = self.path
|
|
146
|
-
for part in layer_id:
|
|
147
|
-
if "/" in part or part.startswith("."):
|
|
148
|
-
raise ValueError(f"Invalid layer_id part {part}")
|
|
149
|
-
cur /= part
|
|
150
|
-
return cur
|
|
151
|
-
|
|
152
|
-
def create_layer(
|
|
153
|
-
self, layer_id: tuple[str, ...], metadata: LayerMetadata
|
|
154
|
-
) -> TileStoreLayer:
|
|
155
|
-
"""Create a layer in the tile store (or get matching existing layer).
|
|
156
|
-
|
|
157
|
-
Args:
|
|
158
|
-
layer_id: the id of the layer to create
|
|
159
|
-
metadata: metadata about the layer
|
|
160
|
-
|
|
161
|
-
Returns:
|
|
162
|
-
a TileStoreLayer corresponding to the new or pre-existing layer
|
|
163
|
-
"""
|
|
164
|
-
layer_dir = self._get_layer_dir(layer_id)
|
|
165
|
-
layer = FileTileStoreLayer(
|
|
166
|
-
layer_dir,
|
|
167
|
-
projection=metadata.projection,
|
|
168
|
-
raster_format=self.raster_format,
|
|
169
|
-
vector_format=self.vector_format,
|
|
170
|
-
)
|
|
171
|
-
if not (layer_dir / "metadata.json").exists():
|
|
172
|
-
layer.save_metadata(metadata)
|
|
173
|
-
return layer
|
|
174
|
-
|
|
175
|
-
def get_layer(self, layer_id: tuple[str, ...]) -> TileStoreLayer | None:
|
|
176
|
-
"""Get a layer in the tile store.
|
|
177
|
-
|
|
178
|
-
Args:
|
|
179
|
-
layer_id: the id of the layer to get
|
|
180
|
-
|
|
181
|
-
Returns:
|
|
182
|
-
the layer, or None if it does not exist yet.
|
|
183
|
-
"""
|
|
184
|
-
layer_dir = self._get_layer_dir(layer_id)
|
|
185
|
-
if not (layer_dir / "metadata.json").exists():
|
|
186
|
-
return None
|
|
187
|
-
return FileTileStoreLayer(
|
|
188
|
-
layer_dir,
|
|
189
|
-
raster_format=self.raster_format,
|
|
190
|
-
vector_format=self.vector_format,
|
|
191
|
-
)
|
|
192
|
-
|
|
193
|
-
def list_layers(self, prefix: tuple[str, ...] = tuple()) -> list[str]:
|
|
194
|
-
"""List options for next part of layer ID with the specified prefix.
|
|
195
|
-
|
|
196
|
-
Args:
|
|
197
|
-
prefix: the prefix to match
|
|
198
|
-
|
|
199
|
-
Returns:
|
|
200
|
-
available options for next part of the layer ID
|
|
201
|
-
"""
|
|
202
|
-
layer_dir = self._get_layer_dir(prefix)
|
|
203
|
-
if not layer_dir.is_dir():
|
|
204
|
-
return []
|
|
205
|
-
layer_names = []
|
|
206
|
-
for p in layer_dir.iterdir():
|
|
207
|
-
layer_names.append(p.name)
|
|
208
|
-
return layer_names
|
|
209
|
-
|
|
210
|
-
@staticmethod
|
|
211
|
-
def from_config(config: TileStoreConfig, ds_path: UPath) -> "FileTileStore":
|
|
212
|
-
"""Initialize a FileTileStore from configuration.
|
|
213
|
-
|
|
214
|
-
Args:
|
|
215
|
-
config: the TileStoreConfig.
|
|
216
|
-
ds_path: the dataset root path.
|
|
217
|
-
|
|
218
|
-
Returns:
|
|
219
|
-
the FileTileStore
|
|
220
|
-
"""
|
|
221
|
-
d = config.config_dict
|
|
222
|
-
|
|
223
|
-
path_str = d.get("path", "tiles")
|
|
224
|
-
# See if this is relative to ds_path or an absolute path.
|
|
225
|
-
if "://" in path_str:
|
|
226
|
-
fs_options = d.get("path_options", {})
|
|
227
|
-
path = UPath(path_str, **fs_options)
|
|
228
|
-
else:
|
|
229
|
-
path = ds_path / path_str
|
|
230
|
-
|
|
231
|
-
kwargs = dict(
|
|
232
|
-
path=path,
|
|
233
|
-
)
|
|
234
|
-
if "raster_format" in d:
|
|
235
|
-
kwargs["raster_format"] = load_raster_format(
|
|
236
|
-
RasterFormatConfig.from_config(d["raster_format"])
|
|
237
|
-
)
|
|
238
|
-
if "vector_format" in d:
|
|
239
|
-
kwargs["vector_format"] = load_vector_format(
|
|
240
|
-
VectorFormatConfig.from_config(d["vector_format"])
|
|
241
|
-
)
|
|
242
|
-
return FileTileStore(**kwargs)
|
rslearn/utils/mgrs.py
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"""Utilities related to MGRS cells."""
|
|
2
|
-
|
|
3
|
-
from collections.abc import Generator
|
|
4
|
-
|
|
5
|
-
import numpy as np
|
|
6
|
-
from mgrs import MGRS
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def for_each_cell(
|
|
10
|
-
bounds: tuple[float, float, float, float],
|
|
11
|
-
) -> Generator[str, None, None]:
|
|
12
|
-
"""Yields each MGRS cell in the specified WGS84 bounds.
|
|
13
|
-
|
|
14
|
-
Args:
|
|
15
|
-
bounds: (minx, miny, maxx, maxy) in WGS84 coordinates
|
|
16
|
-
"""
|
|
17
|
-
# Determine MGRS cell by converting to WGS84 and iterating over several
|
|
18
|
-
# longitude/latitudes.
|
|
19
|
-
# MGRS is at most 0.9-ish degrees (at equator) so we can iterate in 0.5
|
|
20
|
-
# degree increments.
|
|
21
|
-
mgrs_db = MGRS()
|
|
22
|
-
for lon in np.arange(bounds[0], bounds[2], 0.5):
|
|
23
|
-
for lat in np.arange(bounds[1], bounds[3], 0.5):
|
|
24
|
-
yield mgrs_db.toMGRS(lat, lon, MGRSPrecision=0)
|
rslearn/utils/utils.py
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"""Miscellaneous utility functions."""
|
|
2
|
-
|
|
3
|
-
import os
|
|
4
|
-
from contextlib import contextmanager
|
|
5
|
-
from typing import Any
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
@contextmanager
|
|
9
|
-
def open_atomic(filepath: str, *args: list[Any], **kwargs: dict[str, Any]):
|
|
10
|
-
"""Open a file for atomic writing.
|
|
11
|
-
|
|
12
|
-
Will write to a temporary file, and rename it to the destination upon success.
|
|
13
|
-
|
|
14
|
-
Args:
|
|
15
|
-
filepath: the file path to be opened
|
|
16
|
-
*args: ny valid arguments for :code:`open`
|
|
17
|
-
**kwargs: any valid keyword arguments for :code:`open`
|
|
18
|
-
"""
|
|
19
|
-
tmppath = filepath + ".tmp." + str(os.getpid())
|
|
20
|
-
with open(tmppath, *args, **kwargs) as file:
|
|
21
|
-
yield file
|
|
22
|
-
os.rename(tmppath, filepath)
|
rslearn-0.0.1.dist-info/RECORD
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
rslearn/__init__.py,sha256=fFmAen3vxZyosEfPbG0W46IttujYGVxzrGkJ0YutmmY,73
|
|
2
|
-
rslearn/const.py,sha256=qEe6gFMmHPfm1mDRPo8pERicx1g2qgLlgB-GOFvq8uc,681
|
|
3
|
-
rslearn/main.py,sha256=KfxqSw13Mulb4XX7n6B-W8yY3UaTGpC-l2fsQ3FcPPQ,20993
|
|
4
|
-
rslearn/config/__init__.py,sha256=GmNFnNWMI54vx4C_ic3LX_KI7oywd9z0XhCRdOd5PYs,634
|
|
5
|
-
rslearn/config/dataset.py,sha256=ssmhyK3LeCW2YBFJj-ZbkYprrv6Jrs_Bc3lEGnKDiUI,17633
|
|
6
|
-
rslearn/data_sources/__init__.py,sha256=vWBfZnvGhSGHVdJZHshtjRfpgh_Owm51gRtUmpcuA0g,1186
|
|
7
|
-
rslearn/data_sources/aws_landsat.py,sha256=FhU3YgzjVzdgy7hNd9toKGnAtKfQ8cT95t3JdOW7JOg,15576
|
|
8
|
-
rslearn/data_sources/aws_open_data.py,sha256=lNCRwFZsZ7nSb2_tMnmNFQ7ejaZcDBCzPMsBzq8j-wY,30632
|
|
9
|
-
rslearn/data_sources/copernicus.py,sha256=Jq7NAt_95d8GlHGMtn01YhLGqCJZ_4YEcmmttO2NzlI,1178
|
|
10
|
-
rslearn/data_sources/data_source.py,sha256=zn7wSRcsAW9c1OO7iiJnt9_QzqlHaotTzZSmriv-LMQ,3756
|
|
11
|
-
rslearn/data_sources/gcp_public_data.py,sha256=SMrIDYVOFYfcOgVczxXAbsQUHzfICE4WEMuea6KFJj4,20689
|
|
12
|
-
rslearn/data_sources/geotiff.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
-
rslearn/data_sources/google_earth_engine.py,sha256=rU3s1NeigX7WnHECWaVXteEYtHCPTrGy_CfZqiKPu_Q,11381
|
|
14
|
-
rslearn/data_sources/local_files.py,sha256=67-YRzVS4f-Xru43L5ICadkP4gNB6yuRF4fH6LeNdws,16248
|
|
15
|
-
rslearn/data_sources/openstreetmap.py,sha256=0lCWOXGTIjy-7lorMvqT5IyLbir7lcXdJbETF1G7rYE,19291
|
|
16
|
-
rslearn/data_sources/planet.py,sha256=t2vqKSMqw3ybpJRXRiZD8_4UKYAqWKUZj_ibmuVxWvM,10825
|
|
17
|
-
rslearn/data_sources/raster_source.py,sha256=VvhosEn8CtDV53lGD_P1NTysdnxelEYaYtzYa16fE8A,10807
|
|
18
|
-
rslearn/data_sources/usgs_landsat.py,sha256=QjQxkD8e9xQTkYQ7EKRvJcU4Rpr7LQFe7Bz1gfT3egA,17644
|
|
19
|
-
rslearn/data_sources/utils.py,sha256=CKZqXvLeO5BSgBvDETLhQtmmcWHih1kw4Y0buNB5NOA,4475
|
|
20
|
-
rslearn/data_sources/vector_source.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
-
rslearn/data_sources/xyz_tiles.py,sha256=4UOqNknYlWB9USuERCZPkLxpyl72jlWav0mXqrldbTU,12197
|
|
22
|
-
rslearn/dataset/__init__.py,sha256=rG7AzBSV-9b66FYqsYKe53-hc_Iwu-iv3i652LCLor0,172
|
|
23
|
-
rslearn/dataset/add_windows.py,sha256=jE81bnM0Vqpl7jQe8RYZpjOYbfE89Q1BRWAnT8CBzJQ,8478
|
|
24
|
-
rslearn/dataset/dataset.py,sha256=LkSEUhtJR_LgGN8nGd21cdx8R2A8mE7L1p28f5iPUuc,3456
|
|
25
|
-
rslearn/dataset/manage.py,sha256=4VU2Vv_-TBj86E7G2qViWzfvOw8ZiHAukIEna76S-oQ,10816
|
|
26
|
-
rslearn/dataset/materialize.py,sha256=10-qBKrbVh4LZ6mttoEIU_6kx7T1piJ1jvyjd3zzR0Q,9376
|
|
27
|
-
rslearn/dataset/remap.py,sha256=HF5Kn5z6dEPbCpSxaBmYVDSzCuBjG2w8csPsk0RRlv4,2088
|
|
28
|
-
rslearn/dataset/window.py,sha256=C6Q0TYambdjdMaiiXsaurRNbVUuqFWi0PiCJeMAFPQ0,6016
|
|
29
|
-
rslearn/models/__init__.py,sha256=_vWoF9d2Slah8-6XhYhdU4SRsy_CNxXjCGQTD2yvu3Q,22
|
|
30
|
-
rslearn/models/faster_rcnn.py,sha256=cCpe88Rh8MQ3S7ETWi-03tkFTOG9ecx0oCaa_c43oGY,8249
|
|
31
|
-
rslearn/models/fpn.py,sha256=BNybJCqW7vABuvpCzU1Ha4lXM4xd4i9wPkcom8VKO9o,1581
|
|
32
|
-
rslearn/models/multitask.py,sha256=BTRKFJEHblwrdSueMV-xv9nF3LZ_Tw4Y2GfzvHsppw8,2136
|
|
33
|
-
rslearn/models/pick_features.py,sha256=uY5raEobeX4PquFbONqkoubVA2RNOnZENqVEw1Tm6vs,867
|
|
34
|
-
rslearn/models/pooling_decoder.py,sha256=wkID0enokrbRsdtlpfnKJIF8N9TowiSN3cHNXxMXXLE,2689
|
|
35
|
-
rslearn/models/registry.py,sha256=0j6jY-rmB_wKckHEUeCYWXtjviDOEr5c7WhIMxxDwBk,90
|
|
36
|
-
rslearn/models/sam2_enc.py,sha256=gNlPokr7eNxO2KvnzDMXNxYM2WRO0YkQPjR4110n6cw,3508
|
|
37
|
-
rslearn/models/satlaspretrain.py,sha256=9kfTRFoAZNnn73fYnXYAvbQKtqhdPrPvIPqMfWEo_Yw,2470
|
|
38
|
-
rslearn/models/simple_time_series.py,sha256=ubxjQ6CvxrXnB6IdTftsquvIkYm-otUwJ55vMKGGJYY,9626
|
|
39
|
-
rslearn/models/singletask.py,sha256=t-6rwPEESxNqbWaS0pHU597sMQuCFUpQkjX-vbYhbmc,1457
|
|
40
|
-
rslearn/models/ssl4eo_s12.py,sha256=mm9RxQv69OKv9wDXak52mCNxAqlD0DCeXF5lcWwCMQQ,3566
|
|
41
|
-
rslearn/models/swin.py,sha256=vCRh0pBtDg5azx7dHRhlEm_kJO6jACdBlkmmFzkRxcE,5517
|
|
42
|
-
rslearn/models/unet.py,sha256=vgJBTv0XG0kKCbE5d6WeXHAzBGa9MuXKtoJpRDdxJX8,4907
|
|
43
|
-
rslearn/tile_stores/__init__.py,sha256=sW4Xz3aiHOEeVoELd_GYl8XdKgNZKNknjZluaX7me_g,826
|
|
44
|
-
rslearn/tile_stores/file.py,sha256=ISyV-UBgArJJwaPNKG_UC8HHixyiwbXcxba8oF9CLds,7905
|
|
45
|
-
rslearn/tile_stores/tile_store.py,sha256=HxnRVyyhnmIZARmR9VNzgv5YCJHuUOP4hxruLm1AUYI,6560
|
|
46
|
-
rslearn/train/__init__.py,sha256=fnJyY4aHs5zQqbDKSfXsJZXY_M9fbTsf7dRYaPwZr2M,30
|
|
47
|
-
rslearn/train/data_module.py,sha256=y7cnq2jH8kHoODIbFg_n2FxBaOk2wVQyErolbr5oZs0,5805
|
|
48
|
-
rslearn/train/dataset.py,sha256=-YAjX1h7xOlC-D7IMToRC6r7kXt2qxekXXp9XbAv4Vc,23538
|
|
49
|
-
rslearn/train/lightning_module.py,sha256=SO0LmZOsTPZdFnDCJrixAkkLs1nNylZsc9p6EYJE7S8,10682
|
|
50
|
-
rslearn/train/prediction_writer.py,sha256=iU4r1vsueXfMIjImeZmqpT6qKVbFTnK-ivS43u32elo,6591
|
|
51
|
-
rslearn/train/callbacks/__init__.py,sha256=VNV0ArZyYMvl3dGK2wl6F046khYJ1dEBlJS6G_SYNm0,47
|
|
52
|
-
rslearn/train/callbacks/freeze_unfreeze.py,sha256=lWzQ3ktRM1lMLpCboDCCr04b68gFx5s2zLHacfGID_Q,3019
|
|
53
|
-
rslearn/train/tasks/__init__.py,sha256=dag1u72x1-me6y0YcOubUo5MYZ0Tjf6-dOir9UeFNMs,75
|
|
54
|
-
rslearn/train/tasks/classification.py,sha256=QBsUrRDUGekpqnbHnVkyLNa-aJA1G1ytNUy3W8XCcao,12944
|
|
55
|
-
rslearn/train/tasks/detection.py,sha256=iluKIMPui2FITLFSPsG-HoLA0RkAlT6MKN4VMmx2Z9c,19492
|
|
56
|
-
rslearn/train/tasks/multi_task.py,sha256=wJJNNpW-abjw4dYy6fi2mVIndqBvkRbxilfU1isaK4E,5373
|
|
57
|
-
rslearn/train/tasks/regression.py,sha256=bXV426Je4RhMUgN_flZm6ClUOCO54aFZUu8ZCe-k8iU,8170
|
|
58
|
-
rslearn/train/tasks/segmentation.py,sha256=pugxC4ZZdUZDBIDsRgduIm6nmeUF7cMc-yn2HdC4D3E,7236
|
|
59
|
-
rslearn/train/tasks/task.py,sha256=MsIbpa5adZml8UkGjvkNBKReiPIIIy7oyWZdW4owmZA,3841
|
|
60
|
-
rslearn/train/transforms/__init__.py,sha256=iqolxzIibL5jx-PRwAmgGt3e6tsfbzJUl7dXKgyKvYI,765
|
|
61
|
-
rslearn/train/transforms/concatenate.py,sha256=i-B5X-TzpawM2bLBByZKhQaw13aEAUhhPB8ep9khZ_M,1414
|
|
62
|
-
rslearn/train/transforms/crop.py,sha256=ggJDp48OAnnQoYFHUY0-2Xwk7TDtMy2CaBzc9prwoI8,4022
|
|
63
|
-
rslearn/train/transforms/flip.py,sha256=HuF9R_8D7kAcn6HzsKhkwb_HCLicdMYhPWcc4iySvJ8,3369
|
|
64
|
-
rslearn/train/transforms/normalize.py,sha256=rvVrQ9OvzqJesM_OVUkarxDolbHwZns48HPvaY8l56k,2367
|
|
65
|
-
rslearn/train/transforms/pad.py,sha256=NYQSLiB2etAOJOrwN3q8DjyZMDM6i1f4zK1dat7NKto,4679
|
|
66
|
-
rslearn/train/transforms/transform.py,sha256=aQC_HLtGqW_RnI5u-pa7j7iqlsEEVaE1JVsBdC7wYJ4,3881
|
|
67
|
-
rslearn/utils/__init__.py,sha256=vY3WUOfmkS_PfNbyPL0zw8qp0LMbNi2ODnG1dddsLSM,667
|
|
68
|
-
rslearn/utils/array.py,sha256=G8F5Yqzzh-YcJ1qqmMfOMkuToWtq0TA1DM43vDdwS9w,2351
|
|
69
|
-
rslearn/utils/feature.py,sha256=kAti0I84kYppzszWpXd9tQafPoBhKYb99Om_hIVTnGo,1643
|
|
70
|
-
rslearn/utils/fsspec.py,sha256=WfSFgf8YRKkfxMWE0FaZfT1yWv3Qu4O8bT_Fzo8KF1Y,2863
|
|
71
|
-
rslearn/utils/geometry.py,sha256=CSGhbtDLx2NIFphzkQMgwd_cH_gcih7rO_qjISn3i_w,8745
|
|
72
|
-
rslearn/utils/get_utm_ups_crs.py,sha256=dOiCXD2naUtuIF95r8YmwaQdmy2LejGxBtK_zXnnNts,3617
|
|
73
|
-
rslearn/utils/grid_index.py,sha256=I50R9gPzEhxR8g56CPBPt0oaNW2XU-jsA_IZxl_CvaU,2270
|
|
74
|
-
rslearn/utils/mgrs.py,sha256=S_FFps6jhstJqV9VpyM_ppRV22Yf1VlKIXfNUvsSB-o,757
|
|
75
|
-
rslearn/utils/mp.py,sha256=GdQCDn7EY63yjX996D9rewxvd9fOZdZcTHIywzUNlUY,1371
|
|
76
|
-
rslearn/utils/raster_format.py,sha256=tKbon1nSuUWaNpMk4W-W0bNSHSV_BcTY1POQLjQ0kPY,20823
|
|
77
|
-
rslearn/utils/rtree_index.py,sha256=TvJE0eaRvhZmwaXGQJbPyV3vekOfIFhsUBmuXvQbVkk,4676
|
|
78
|
-
rslearn/utils/spatial_index.py,sha256=eomJAUgzmjir8j9HZnSgQoJHwN9H0wGTjmJkMkLLfsU,762
|
|
79
|
-
rslearn/utils/sqlite_index.py,sha256=4MqDnMoo48_-zvqa0CXEh7-8q-GKujBHevV4wqqE9sA,2747
|
|
80
|
-
rslearn/utils/time.py,sha256=2ilSLG94_sxLP3y5RSV5L5CG8CoND_dbdzYEHVtN-I8,387
|
|
81
|
-
rslearn/utils/utils.py,sha256=xcrxzAFT3hQMzoXRnhWxHUTneN_EbnSAM0IeoK4DL6I,659
|
|
82
|
-
rslearn/utils/vector_format.py,sha256=al5UyZt_r9SLFRgrmS3PLp056EkJoo0D1pPmp3aL8jY,8514
|
|
83
|
-
rslearn-0.0.1.dist-info/LICENSE,sha256=_99ZWPoLdlUbqZoSC5DF4ihiNwl5rTEmBaq2fACecdg,11352
|
|
84
|
-
rslearn-0.0.1.dist-info/METADATA,sha256=OYg-VNguo0cDZ9TdZWWQ9AwOs2BhO8M7Fn3NnXEaaq0,30640
|
|
85
|
-
rslearn-0.0.1.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
|
86
|
-
rslearn-0.0.1.dist-info/entry_points.txt,sha256=doTBQ57NT7nq-dgYGgTTw6mafcGWb_4PWYtYR4rGm50,46
|
|
87
|
-
rslearn-0.0.1.dist-info/top_level.txt,sha256=XDKo90WBH8P9RQumHxo0giLJsoufT4r9odv-WE6Ahk4,8
|
|
88
|
-
rslearn-0.0.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|