airsmodel 0.2.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.
Potentially problematic release.
This version of airsmodel might be problematic. Click here for more details.
- airs/core/models/__init__.py +0 -0
- airs/core/models/mapper.py +107 -0
- airs/core/models/model.py +290 -0
- airsmodel-0.2.21.dist-info/METADATA +3858 -0
- airsmodel-0.2.21.dist-info/RECORD +7 -0
- airsmodel-0.2.21.dist-info/WHEEL +5 -0
- airsmodel-0.2.21.dist-info/top_level.txt +1 -0
|
File without changes
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import json
|
|
2
|
+
|
|
3
|
+
from airs.core.models.model import Item
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def to_airs_item(item: Item)->Item:
|
|
7
|
+
""" Takes an item and makes sure to map the namespace fields to AIRS Item. Keys can contain : as namespace seperator
|
|
8
|
+
|
|
9
|
+
Args:
|
|
10
|
+
item (Item): The item (with : namespace separator)
|
|
11
|
+
|
|
12
|
+
Returns:
|
|
13
|
+
item: The airs item
|
|
14
|
+
"""
|
|
15
|
+
dictionary=item.model_dump(exclude_unset=True, by_alias=True, exclude_none=True)
|
|
16
|
+
return Item(**__replaceKeys(dictionary, ":", "__"))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def to_dict(item: Item)->dict:
|
|
20
|
+
""" create a dictionnary from the Item. Keys contain : as namespace seperator
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
item (Item): The item
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
dict: The dictionary. Keys contain : as namespace seperator
|
|
27
|
+
"""
|
|
28
|
+
dictionary=item.model_dump(exclude_unset=True, by_alias=True, exclude_none=True)
|
|
29
|
+
return __replaceKeys(dictionary, "__", ":")
|
|
30
|
+
|
|
31
|
+
def to_airs_dict(item: Item)->dict:
|
|
32
|
+
""" create a dictionnary from the Item. Keys contain __ as namespace seperator
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
item (Item): The item
|
|
36
|
+
|
|
37
|
+
Returns:
|
|
38
|
+
dict: The dictionary. Keys contain __ as namespace seperator
|
|
39
|
+
"""
|
|
40
|
+
dictionary=item.model_dump(exclude_unset=True, by_alias=False, exclude_none=True)
|
|
41
|
+
return dictionary
|
|
42
|
+
|
|
43
|
+
def to_airs_json(item: Item)->str:
|
|
44
|
+
""" create a json from the Item. Keys contain __ as namespace seperator
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
item (Item): The item
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
str: the json. Keys contain __ as namespace seperator
|
|
51
|
+
"""
|
|
52
|
+
return json.dumps(to_airs_dict(item), default=str, indent=2)
|
|
53
|
+
|
|
54
|
+
def to_json(item: Item)->str:
|
|
55
|
+
""" create a json from the Item. Keys contain : as namespace seperator
|
|
56
|
+
|
|
57
|
+
Args:
|
|
58
|
+
item (Item): The item
|
|
59
|
+
|
|
60
|
+
Returns:
|
|
61
|
+
str: the json. Keys contain : as namespace seperator
|
|
62
|
+
"""
|
|
63
|
+
return json.dumps(to_dict(item), default=str, indent=2)
|
|
64
|
+
|
|
65
|
+
def item_from_json_file(jsonfile)->Item:
|
|
66
|
+
""" load a json file containing an Item
|
|
67
|
+
|
|
68
|
+
Args:
|
|
69
|
+
jsonfile (file): the json file
|
|
70
|
+
|
|
71
|
+
Returns:
|
|
72
|
+
Item: _description_
|
|
73
|
+
"""
|
|
74
|
+
return Item(**__replaceKeys(json.load(jsonfile), ":", "__"))
|
|
75
|
+
|
|
76
|
+
def item_from_json(json_string:str)->Item:
|
|
77
|
+
""" load a json Item
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
json_string (str): the Item as json
|
|
81
|
+
|
|
82
|
+
Returns:
|
|
83
|
+
Item: the Item
|
|
84
|
+
"""
|
|
85
|
+
return Item(**__replaceKeys(json.loads(json_string), ":", "__"))
|
|
86
|
+
|
|
87
|
+
def item_from_dict(object:dict)->Item:
|
|
88
|
+
""" load a dict Item
|
|
89
|
+
|
|
90
|
+
Args:
|
|
91
|
+
object (dict): the Item as dict
|
|
92
|
+
|
|
93
|
+
Returns:
|
|
94
|
+
Item: the Item
|
|
95
|
+
"""
|
|
96
|
+
return Item(**__replaceKeys(object, ":", "__"))
|
|
97
|
+
|
|
98
|
+
def __replaceKeys(o, before:str, after:str):
|
|
99
|
+
if type(o) is dict:
|
|
100
|
+
d={}
|
|
101
|
+
for key in o:
|
|
102
|
+
d[key.replace(before, after)]=__replaceKeys(o[key], before, after)
|
|
103
|
+
return d
|
|
104
|
+
if type(o) is list:
|
|
105
|
+
return list(map(lambda elt:__replaceKeys(elt, before, after), o))
|
|
106
|
+
else:
|
|
107
|
+
return o
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
from datetime import datetime as Datetime
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from typing import (TYPE_CHECKING, Any, Dict, List, Optional, Type, TypeVar,
|
|
4
|
+
Union, cast)
|
|
5
|
+
|
|
6
|
+
from pydantic import BaseModel, Extra, Field
|
|
7
|
+
from pydantic.fields import FieldInfo
|
|
8
|
+
|
|
9
|
+
class ProcessingLevel(Enum):
|
|
10
|
+
RAW="RAW"
|
|
11
|
+
L1="L1"
|
|
12
|
+
L2="L2"
|
|
13
|
+
L3="L3"
|
|
14
|
+
L4="L4"
|
|
15
|
+
|
|
16
|
+
class ObservationType(Enum):
|
|
17
|
+
image="IMAGE"
|
|
18
|
+
radar="RADAR"
|
|
19
|
+
dem="DEM"
|
|
20
|
+
|
|
21
|
+
class ResourceType(Enum):
|
|
22
|
+
cube="CUBE"
|
|
23
|
+
gridded="GRIDDED"
|
|
24
|
+
vector="VECTOR"
|
|
25
|
+
other="OTHER"
|
|
26
|
+
|
|
27
|
+
class ItemFormat(Enum):
|
|
28
|
+
shape="SHAPE"
|
|
29
|
+
dimap="DIMAP"
|
|
30
|
+
geotiff="GEOTIFF"
|
|
31
|
+
safe="SAFE"
|
|
32
|
+
theia="THEIA"
|
|
33
|
+
ast_dem="AST_DEM"
|
|
34
|
+
digitalglobe="DIGITALGLOBE"
|
|
35
|
+
geoeye="GEOEYE"
|
|
36
|
+
rapideye="RAPIDEYE"
|
|
37
|
+
spot5="SPOT5"
|
|
38
|
+
spot6_7="SPOT6_7"
|
|
39
|
+
other="OTHER"
|
|
40
|
+
|
|
41
|
+
class AssetFormat(Enum):
|
|
42
|
+
shape="SHAPE"
|
|
43
|
+
geotiff="GEOTIFF"
|
|
44
|
+
jpg="JPG"
|
|
45
|
+
jpg2000="JPG2000"
|
|
46
|
+
png="PNG"
|
|
47
|
+
csv="CSV"
|
|
48
|
+
json="JSON"
|
|
49
|
+
zip="ZIP"
|
|
50
|
+
tar="TAR"
|
|
51
|
+
targz="TARGZ"
|
|
52
|
+
other="OTHER"
|
|
53
|
+
|
|
54
|
+
class Role(Enum):
|
|
55
|
+
airs_item="airs_item"
|
|
56
|
+
thumbnail="thumbnail"
|
|
57
|
+
overview="overview"
|
|
58
|
+
data="data"
|
|
59
|
+
metadata="metadata"
|
|
60
|
+
cog="cog"
|
|
61
|
+
zarr="zarr"
|
|
62
|
+
datacube="datacube"
|
|
63
|
+
visual="visual"
|
|
64
|
+
date="date"
|
|
65
|
+
graphic="graphic"
|
|
66
|
+
data_mask="data-mask"
|
|
67
|
+
snow_ice="snow-ice"
|
|
68
|
+
land_water="land-water"
|
|
69
|
+
water_mask="water-mask"
|
|
70
|
+
iso_19115="iso-19115"
|
|
71
|
+
reflectance="reflectance"
|
|
72
|
+
temperature="temperature"
|
|
73
|
+
saturation="saturation"
|
|
74
|
+
cloud="cloud"
|
|
75
|
+
cloud_shadow="cloud-shadow"
|
|
76
|
+
incidence_angle="incidence-angle"
|
|
77
|
+
azimuth="azimuth"
|
|
78
|
+
sun_azimuth="sun-azimuth"
|
|
79
|
+
sun_elevation="sun-elevation"
|
|
80
|
+
terrain_shadow="terrain-shadow"
|
|
81
|
+
terrain_occlusion="terrain-occlusion"
|
|
82
|
+
terrain_illumination="terrain-illumination"
|
|
83
|
+
local_incidence_angle="local-incidence-angle"
|
|
84
|
+
noise_power="noise-power"
|
|
85
|
+
amplitude="amplitude"
|
|
86
|
+
magnitude="magnitude"
|
|
87
|
+
sigma0="sigma0"
|
|
88
|
+
beta0="beta0"
|
|
89
|
+
gamma0="gamma0"
|
|
90
|
+
date_offset="date-offset"
|
|
91
|
+
covmat="covmat"
|
|
92
|
+
prd="prd"
|
|
93
|
+
|
|
94
|
+
class CommonBandName(Enum):
|
|
95
|
+
coastal="coastal"
|
|
96
|
+
blue="blue"
|
|
97
|
+
green="green"
|
|
98
|
+
red="red"
|
|
99
|
+
yellow="yellow"
|
|
100
|
+
pan="pan"
|
|
101
|
+
rededge="rededge"
|
|
102
|
+
nir="nir"
|
|
103
|
+
nir08="nir08"
|
|
104
|
+
nir09="nir09"
|
|
105
|
+
cirrus="cirrus"
|
|
106
|
+
swir16="swir16"
|
|
107
|
+
swir22="swir22"
|
|
108
|
+
lwir="lwir"
|
|
109
|
+
lwir11="lwir11"
|
|
110
|
+
lwir12="lwir12"
|
|
111
|
+
|
|
112
|
+
class VariableType(Enum):
|
|
113
|
+
data="data"
|
|
114
|
+
auxiliary="auxiliary"
|
|
115
|
+
|
|
116
|
+
class DimensionType(Enum):
|
|
117
|
+
spatial="spatial"
|
|
118
|
+
temporal="temporal"
|
|
119
|
+
geometry="geometry"
|
|
120
|
+
|
|
121
|
+
class RasterType(BaseModel):
|
|
122
|
+
source:str
|
|
123
|
+
format:str
|
|
124
|
+
|
|
125
|
+
class Raster(BaseModel):
|
|
126
|
+
type:RasterType
|
|
127
|
+
path:str
|
|
128
|
+
id:str
|
|
129
|
+
|
|
130
|
+
class Axis(Enum):
|
|
131
|
+
x="x"
|
|
132
|
+
y="y"
|
|
133
|
+
z="z"
|
|
134
|
+
t="t"
|
|
135
|
+
|
|
136
|
+
class Indicators(BaseModel):
|
|
137
|
+
time_compacity : float | None = Field(default=None, title="Indicates whether the temporal extend of the temporal slices (groups) are compact or not compared to the cube temporal extend. Computed as follow: 1-range(group rasters) / range(cube rasters).")
|
|
138
|
+
spatial_coverage : float | None = Field(default=None, title="Indicates the proportion of the region of interest that is covered by the input rasters. Computed as follow: area(intersection(union(rasters),roi)) / area(roi))")
|
|
139
|
+
group_lightness : float | None = Field(default=None, title="Indicates the proportion of non overlapping regions between the different input rasters. Computed as follow: area(intersection(union(rasters),roi)) / sum(area(intersection(raster, roi)))")
|
|
140
|
+
time_regularity : float | None = Field(default=None, title="Indicates the regularity of the extends between the temporal slices (groups). Computed as follow: 1-std(inter group temporal gaps)/avg(inter group temporal gaps)")
|
|
141
|
+
|
|
142
|
+
class Group(BaseModel):
|
|
143
|
+
timestamp : int | None = Field(default=None, title="The timestamp of this temporal group.")
|
|
144
|
+
rasters :List[Raster] | None = Field(default=None, title="The rasters belonging to this temporal group.")
|
|
145
|
+
quality_indicators :Indicators | None = Field(default=None, title="Set of indicators for estimating the quality of the datacube group. The indicators are group based.")
|
|
146
|
+
|
|
147
|
+
class Band(BaseModel, extra=Extra.allow):
|
|
148
|
+
name :str = Field(title="The name of the band (e.g., B01, B8, band2, red).", max_length=300)
|
|
149
|
+
common_name :str | None = Field(default=None, title="The name commonly used to refer to the band to make it easier to search for bands across instruments. See the list of accepted common names.")
|
|
150
|
+
description :str | None = Field(default=None, title="Description to fully explain the band. CommonMark 0.29 syntax MAY be used for rich text representation.", max_length=300)
|
|
151
|
+
center_wavelength :float | None = Field(default=None, title="The center wavelength of the band, in micrometers (μm).")
|
|
152
|
+
full_width_half_max :float | None = Field(default=None, title="Full width at half maximum (FWHM). The width of the band, as measured at half the maximum transmission, in micrometers (μm).")
|
|
153
|
+
solar_illumination :float | None = Field(default=None, title="The solar illumination of the band, as measured at half the maximum transmission, in W/m2/micrometers.")
|
|
154
|
+
quality_indicators :Indicators | None = Field(default=None, title="Set of indicators for estimating the quality of the datacube variable (band).")
|
|
155
|
+
|
|
156
|
+
class Asset(BaseModel, extra=Extra.allow):
|
|
157
|
+
name :str | None = Field(default=None, title="Asset's name. But be the same as the key in the `assets` dictionary.", max_length=300)
|
|
158
|
+
href :str | None = Field(default=None, title="Absolute link to the asset object.")
|
|
159
|
+
asset_type :str | None = Field(default=None, title="Type of data (ResourceType)")
|
|
160
|
+
asset_format :str | None = Field(default=None, title="Data format (AssetFormat)")
|
|
161
|
+
storage__requester_pays :bool | None = Field(default=None, title="Is the data requester pays or is it data manager/cloud provider pays. Defaults to false. Whether the requester pays for accessing assets")
|
|
162
|
+
storage__tier :str | None = Field(default=None, title="Cloud Provider Storage Tiers (Standard, Glacier, etc.)")
|
|
163
|
+
storage__platform :str | None = Field(default=None, title="PaaS solutions (ALIBABA, AWS, AZURE, GCP, IBM, ORACLE, OTHER)")
|
|
164
|
+
storage__region :str | None = Field(default=None, title="The region where the data is stored. Relevant to speed of access and inter region egress costs (as defined by PaaS provider)")
|
|
165
|
+
airs__managed :bool | None = Field(default=True, title="Whether the asset is managed by AIRS or not.")
|
|
166
|
+
airs__object_store_bucket :str | None = Field(default=None, title="Object store bucket for the asset object.")
|
|
167
|
+
airs__object_store_key :str | None = Field(default=None, title="Object store key of the asset object.")
|
|
168
|
+
title :str | None = Field(default=None, title="Optional displayed title for clients and users.", max_length=300)
|
|
169
|
+
description :str | None = Field(default=None, title="A description of the Asset providing additional details, such as how it was processed or created. CommonMark 0.29 syntax MAY be used for rich text representation.", max_length=300)
|
|
170
|
+
type :str | None = Field(default=None, title="Optional description of the media type. Registered Media Types are preferred. See MediaType for common media types.", max_length=300)
|
|
171
|
+
roles :List[str] | None = Field(default=None, title="Optional, Semantic roles (i.e. thumbnail, overview, data, metadata) of the asset.", max_length=300)
|
|
172
|
+
extra_fields :Dict[str, Any] | None = Field(default=None, title="Optional, additional fields for this asset. This is used by extensions as a way to serialize and deserialize properties on asset object JSON.")
|
|
173
|
+
gsd :float | None = Field(default=None, title="Ground Sampling Distance (resolution) of the asset")
|
|
174
|
+
eo__bands :List[Band] | None = Field(default=None, title="An array of available bands where each object is a Band Object. If given, requires at least one band.", )
|
|
175
|
+
sar__instrument_mode :str | None = Field(default=None, title="The name of the sensor acquisition mode that is commonly used. This should be the short name, if available. For example, WV for \"Wave mode\" of Sentinel-1 and Envisat ASAR satellites.")
|
|
176
|
+
sar__frequency_band :str | None = Field(default=None, title="The common name for the frequency band to make it easier to search for bands across instruments. See section \"Common Frequency Band Names\" for a list of accepted names.")
|
|
177
|
+
sar__center_frequency :float | None = Field(default=None, title="The center frequency of the instrument, in gigahertz (GHz).")
|
|
178
|
+
sar__polarizations :str | None = Field(default=None, title="Any combination of polarizations.")
|
|
179
|
+
sar__product_type :str | None = Field(default=None, title="The product type, for example SSC, MGD, or SGC")
|
|
180
|
+
sar__resolution_range :float | None = Field(default=None, title="The range resolution, which is the maximum ability to distinguish two adjacent targets perpendicular to the flight path, in meters (m).")
|
|
181
|
+
sar__resolution_azimuth :float | None = Field(default=None, title="The azimuth resolution, which is the maximum ability to distinguish two adjacent targets parallel to the flight path, in meters (m).")
|
|
182
|
+
sar__pixel_spacing_range :float | None = Field(default=None, title="The range pixel spacing, which is the distance between adjacent pixels perpendicular to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type GRD.")
|
|
183
|
+
sar__pixel_spacing_azimuth :float | None = Field(default=None, title="The azimuth pixel spacing, which is the distance between adjacent pixels parallel to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type GRD.")
|
|
184
|
+
sar__looks_range :float | None = Field(default=None, title="Number of range looks, which is the number of groups of signal samples (looks) perpendicular to the flight path.")
|
|
185
|
+
sar__looks_azimuth :float | None = Field(default=None, title="Number of azimuth looks, which is the number of groups of signal samples (looks) parallel to the flight path.")
|
|
186
|
+
sar__looks_equivalent_number :float | None = Field(default=None, title="The equivalent number of looks (ENL).")
|
|
187
|
+
sar__observation_direction :str | None = Field(default=None, title="Antenna pointing direction relative to the flight trajectory of the satellite, either left or right.")
|
|
188
|
+
proj__epsg :int | None = Field(default=None, title="EPSG code of the datasource.")
|
|
189
|
+
proj__wkt2 :str | None = Field(default=None, title="PROJJSON object representing the Coordinate Reference System (CRS) that the proj:geometry and proj:bbox fields represent.")
|
|
190
|
+
proj__geometry :Any | None = Field(default=None, title="Defines the footprint of this Item.")
|
|
191
|
+
proj__bbox :List[float] | None = Field(default=None, title="Bounding box of the Item in the asset CRS in 2 or 3 dimensions.")
|
|
192
|
+
proj__centroid :Any | None = Field(default=None, title="Coordinates representing the centroid of the Item (in lat/long).")
|
|
193
|
+
proj__shape :List[float] | None = Field(default=None, title="Number of pixels in Y and X directions for the default grid.")
|
|
194
|
+
proj__transform :List[float] | None = Field(default=None, title="The affine transformation coefficients for the default grid.")
|
|
195
|
+
|
|
196
|
+
class Properties(BaseModel, extra=Extra.allow):
|
|
197
|
+
datetime :Datetime | None = Field(default=None, title="datetime associated with this item. If None, a start_datetime and end_datetime must be supplied.")
|
|
198
|
+
start_datetime :Datetime | None = Field(default=None, title="Optional start datetime, part of common metadata. This value will override any start_datetime key in properties.")
|
|
199
|
+
end_datetime :Datetime | None = Field(default=None, title="Optional end datetime, part of common metadata. This value will override any end_datetime key in properties.")
|
|
200
|
+
programme :str | None = Field(default=None, title="Name of the programme")
|
|
201
|
+
constellation :str | None = Field(default=None, title="Name of the constellation")
|
|
202
|
+
instrument :str | None = Field(default=None, title="Name of the instrument")
|
|
203
|
+
sensor :str | None = Field(default=None, title="Name of the sensor")
|
|
204
|
+
sensor_type :str | None = Field(default=None, title="Type of sensor")
|
|
205
|
+
gsd :float | None = Field(default=None, title="Ground Sampling Distance (resolution)")
|
|
206
|
+
data_type :str | None = Field(default=None, title="Type of data")
|
|
207
|
+
item_type :str | None = Field(default=None, title="Type of data (ResourceType)")
|
|
208
|
+
item_format :str | None = Field(default=None, title="Data format (ItemFormat)")
|
|
209
|
+
main_asset_format :str | None = Field(default=None, title="Data format of the main asset (AssetFormat)")
|
|
210
|
+
observation_type :str | None = Field(default=None, title="Type of observation (ObservationType)")
|
|
211
|
+
data_coverage :float | None = Field(default=None, title="Estimate of data cover")
|
|
212
|
+
water_coverage :float | None = Field(default=None, title="Estimate of water cover")
|
|
213
|
+
locations :List[str] | None = Field(default=None, title="List of locations covered by the item")
|
|
214
|
+
create_datetime :int | None = Field(default=None, title="Date of item creation in the catalog, managed by the ARLAS Item Registration Service")
|
|
215
|
+
update_datetime :int | None = Field(default=None, title="Update date of the item in the catalog, managed by the ARLAS Item Registration Service")
|
|
216
|
+
view__off_nadir :float | None = Field(default=None, title="The angle from the sensor between nadir (straight down) and the scene center. Measured in degrees (0-90).")
|
|
217
|
+
view__incidence_angle :float | None = Field(default=None, title="The incidence angle is the angle between the vertical (normal) to the intercepting surface and the line of sight back to the satellite at the scene center. Measured in degrees (0-90).")
|
|
218
|
+
view__azimuth :float | None = Field(default=None, title="Viewing azimuth angle. The angle measured from the sub-satellite point (point on the ground below the platform) between the scene center and true north. Measured clockwise from north in degrees (0-360).")
|
|
219
|
+
view__sun_azimuth :float | None = Field(default=None, title="Sun azimuth angle. From the scene center point on the ground, this is the angle between truth north and the sun. Measured clockwise in degrees (0-360).")
|
|
220
|
+
view__sun_elevation :float | None = Field(default=None, title="Sun elevation angle. The angle from the tangent of the scene center point to the sun. Measured from the horizon in degrees (-90-90). Negative values indicate the sun is below the horizon, e.g. sun elevation of -10° means the data was captured during nautical twilight.")
|
|
221
|
+
storage__requester_pays :bool | None = Field(default=None, title="Is the data requester pays or is it data manager/cloud provider pays. Defaults to false. Whether the requester pays for accessing assets")
|
|
222
|
+
storage__tier :str | None = Field(default=None, title="Cloud Provider Storage Tiers (Standard, Glacier, etc.)")
|
|
223
|
+
storage__platform :str | None = Field(default=None, title="PaaS solutions (ALIBABA, AWS, AZURE, GCP, IBM, ORACLE, OTHER)")
|
|
224
|
+
storage__region :str | None = Field(default=None, title="The region where the data is stored. Relevant to speed of access and inter region egress costs (as defined by PaaS provider)")
|
|
225
|
+
eo__cloud_cover :float | None = Field(default=None, title="Estimate of cloud cover.")
|
|
226
|
+
eo__snow_cover :float | None = Field(default=None, title="Estimate of snow and ice cover.")
|
|
227
|
+
eo__bands :List[Band] | None = Field(default=None, title="An array of available bands where each object is a Band Object. If given, requires at least one band.")
|
|
228
|
+
processing__expression :str | None = Field(default=None, title="An expression or processing chain that describes how the data has been processed. Alternatively, you can also link to a processing chain with the relation type processing-expression (see below).")
|
|
229
|
+
processing__lineage :str | None = Field(default=None, title="Lineage Information provided as free text information about the how observations were processed or models that were used to create the resource being described NASA ISO.")
|
|
230
|
+
processing__level :str | None = Field(default=None, title="The name commonly used to refer to the processing level to make it easier to search for product level across collections or items. The short name must be used (only L, not Level).")
|
|
231
|
+
processing__facility :str | None = Field(default=None, title="The name of the facility that produced the data. For example, Copernicus S1 Core Ground Segment - DPA for product of Sentinel-1 satellites.")
|
|
232
|
+
processing__software :Dict[str,str] | None = Field(default=None, title="A dictionary with name/version for key/value describing one or more softwares that produced the data.")
|
|
233
|
+
dc3__quality_indicators :Indicators | None = Field(default=None, title="Set of indicators for estimating the quality of the datacube based on the composition. The indicators are group based. A cube indicator is the product of its corresponding group indicator.")
|
|
234
|
+
dc3__composition :List[Group] | None = Field(default=None, title="List of raster groups used for elaborating the cube temporal slices.")
|
|
235
|
+
dc3__number_of_chunks :int | None = Field(default=None, title="Number of chunks (if zarr or similar partitioned format) within the cube.")
|
|
236
|
+
dc3__chunk_weight :int | None = Field(default=None, title="Weight of a chunk (number of bytes).")
|
|
237
|
+
dc3__fill_ratio :float | None = Field(default=None, title="1: the cube is full, 0 the cube is empty, in between the cube is partially filled.")
|
|
238
|
+
cube__dimensions :Dict[str, DimensionType] | None = Field(default=None, title="Uniquely named dimensions of the datacube.")
|
|
239
|
+
cube__variables :Dict[str, VariableType] | None = Field(default=None, title="Uniquely named variables of the datacube.")
|
|
240
|
+
sar__instrument_mode :str | None = Field(default=None,title="The name of the sensor acquisition mode that is commonly used. This should be the short name, if available. For example, WV for \"Wave mode\" of Sentinel-1 and Envisat ASAR satellites.")
|
|
241
|
+
sar__frequency_band :str | None = Field(default=None,title="The common name for the frequency band to make it easier to search for bands across instruments. See section \"Common Frequency Band Names\" for a list of accepted names.")
|
|
242
|
+
sar__center_frequency :float | None = Field(default=None, title="The center frequency of the instrument, in gigahertz (GHz).")
|
|
243
|
+
sar__polarizations :str | None = Field(default=None,title="Any combination of polarizations.")
|
|
244
|
+
sar__product_type :str | None = Field(default=None,title="The product type, for example SSC, MGD, or SGC")
|
|
245
|
+
sar__resolution_range :float | None = Field(default=None, title="The range resolution, which is the maximum ability to distinguish two adjacent targets perpendicular to the flight path, in meters (m).")
|
|
246
|
+
sar__resolution_azimuth :float | None = Field(default=None, title="The azimuth resolution, which is the maximum ability to distinguish two adjacent targets parallel to the flight path, in meters (m).")
|
|
247
|
+
sar__pixel_spacing_range :float | None = Field(default=None, title="The range pixel spacing, which is the distance between adjacent pixels perpendicular to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type GRD.")
|
|
248
|
+
sar__pixel_spacing_azimuth :float | None = Field(default=None, title="The azimuth pixel spacing, which is the distance between adjacent pixels parallel to the flight path, in meters (m). Strongly RECOMMENDED to be specified for products of type GRD.")
|
|
249
|
+
sar__looks_range :float | None = Field(default=None, title="Number of range looks, which is the number of groups of signal samples (looks) perpendicular to the flight path.")
|
|
250
|
+
sar__looks_azimuth :float | None = Field(default=None, title="Number of azimuth looks, which is the number of groups of signal samples (looks) parallel to the flight path.")
|
|
251
|
+
sar__looks_equivalent_number :float | None = Field(default=None, title="The equivalent number of looks (ENL).")
|
|
252
|
+
sar__observation_direction :str | None = Field(default=None, title="Antenna pointing direction relative to the flight trajectory of the satellite, either left or right.")
|
|
253
|
+
proj__epsg :int | None = Field(default=None, title="EPSG code of the datasource.")
|
|
254
|
+
proj__wkt2 :str | None = Field(default=None, title="PROJJSON object representing the Coordinate Reference System (CRS) that the proj:geometry and proj:bbox fields represent.")
|
|
255
|
+
proj__geometry :Any | None = Field(default=None, title="Defines the footprint of this Item.")
|
|
256
|
+
proj__bbox :List[float] | None = Field(default=None, title="Bounding box of the Item in the asset CRS in 2 or 3 dimensions.")
|
|
257
|
+
proj__centroid :Any | None = Field(default=None, title="Coordinates representing the centroid of the Item (in lat/long).")
|
|
258
|
+
proj__shape :List[float] | None = Field(default=None, title="Number of pixels in Y and X directions for the default grid.")
|
|
259
|
+
proj__transform :List[float] | None = Field(default=None, title="The affine transformation coefficients for the default grid.")
|
|
260
|
+
generated__has_overview :bool | None = Field(default=False, title="Whether the item has an overview or not.")
|
|
261
|
+
generated__has_thumbnail :bool | None = Field(default=False, title="Whether the item has a thumbnail or not.")
|
|
262
|
+
generated__has_metadata :bool | None = Field(default=False, title="Whether the item has a metadata file or not.")
|
|
263
|
+
generated__has_data :bool | None = Field(default=False, title="Whether the item has a data file or not.")
|
|
264
|
+
generated__has_cog :bool | None = Field(default=False, title="Whether the item has a cog or not.")
|
|
265
|
+
generated__has_zarr :bool | None = Field(default=False, title="Whether the item has a zarr or not.")
|
|
266
|
+
generated__date_keywords :List[str] | None = Field(default=None, title="A list of keywords indicating clues on the date")
|
|
267
|
+
generated__day_of_week :int | None = Field(default=None, title="Day of week.")
|
|
268
|
+
generated__day_of_year :int | None = Field(default=None, title="Day of year.")
|
|
269
|
+
generated__hour_of_day :int | None = Field(default=None, title="Hour of day.")
|
|
270
|
+
generated__minute_of_day :int | None = Field(default=None, title="Minute of day.")
|
|
271
|
+
generated__month :int | None = Field(default=None, title="Month")
|
|
272
|
+
generated__year :int | None = Field(default=None, title="Year")
|
|
273
|
+
generated__season :str | None = Field(default=None, title="Season")
|
|
274
|
+
generated__tltrbrbl :List[List[float]]| None = Field(default=None, title="The coordinates of the top left, top right, bottom right, bottom left corners of the item.")
|
|
275
|
+
generated__band_common_names :List[str] | None = Field(default=None, title="List of the band common names.")
|
|
276
|
+
generated__band_names :List[str] | None = Field(default=None, title="List of the band names.")
|
|
277
|
+
generated__geohash2 :str | None = Field(default=None, title="Geohash on the first two characters.")
|
|
278
|
+
generated__geohash3 :str | None = Field(default=None, title="Geohash on the first three characters.")
|
|
279
|
+
generated__geohash4 :str | None = Field(default=None, title="Geohash on the first four characters.")
|
|
280
|
+
generated__geohash5 :str | None = Field(default=None, title="Geohash on the first five characters.")
|
|
281
|
+
|
|
282
|
+
class Item(BaseModel, extra=Extra.allow):
|
|
283
|
+
collection :str | None = Field(default=None, title="Name of the collection the item belongs to.", max_length=300)
|
|
284
|
+
catalog :str | None = Field(default=None, title="Name of the catalog the item belongs to.", max_length=300)
|
|
285
|
+
id :str | None = Field(default=None, title="Provider identifier. Must be unique within the STAC.", max_length=300)
|
|
286
|
+
geometry :Dict[str, Any] | None = Field(default=None, title="Defines the full footprint of the asset represented by this item, formatted according to `RFC 7946, section 3.1 (GeoJSON) <https://tools.ietf.org/html/rfc7946>`_")
|
|
287
|
+
bbox :List[float] | None = Field(default=None, title="Bounding Box of the asset represented by this item using either 2D or 3D geometries. The length of the array must be 2*n where n is the number of dimensions. Could also be None in the case of a null geometry.")
|
|
288
|
+
centroid :List[float] | None = Field(default=None, title="Coordinates (lon/lat) of the geometry's centroid.")
|
|
289
|
+
assets :Dict[str, Asset] | None = Field(default=None, title="A dictionary mapping string keys to Asset objects. All Asset values in the dictionary will have their owner attribute set to the created Item.")
|
|
290
|
+
properties :Properties | None = Field(default=None, title="Item properties")
|