SceneConfig#
Note
All Configs are derived from rastervision.pipeline.config.Config
, which itself is a pydantic Model.
- pydantic model SceneConfig[source]#
Configure a
Scene
comprising raster data & labels for an AOI.Show JSON schema
{ "title": "SceneConfig", "description": "Configure a :class:`.Scene` comprising raster data & labels for an AOI.\n ", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "raster_source": { "$ref": "#/$defs/RasterSourceConfig" }, "label_source": { "anyOf": [ { "$ref": "#/$defs/LabelSourceConfig" }, { "type": "null" } ], "default": null }, "label_store": { "anyOf": [ { "$ref": "#/$defs/LabelStoreConfig" }, { "type": "null" } ], "default": null }, "aoi_uris": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "List of URIs of GeoJSON files that define the AOIs for the scene. Each polygon defines an AOI which is a piece of the scene that is assumed to be fully labeled and usable for training or validation. The AOIs are assumed to be in EPSG:4326 coordinates.", "title": "Aoi Uris" }, "type_hint": { "const": "scene", "default": "scene", "title": "Type Hint", "type": "string" } }, "$defs": { "LabelSourceConfig": { "additionalProperties": false, "description": "Configure a :class:`.LabelSource`.", "properties": { "type_hint": { "const": "label_source", "default": "label_source", "title": "Type Hint", "type": "string" } }, "title": "LabelSourceConfig", "type": "object" }, "LabelStoreConfig": { "additionalProperties": false, "description": "Configure a :class:`.LabelStore`.", "properties": { "type_hint": { "const": "label_store", "default": "label_store", "title": "Type Hint", "type": "string" } }, "title": "LabelStoreConfig", "type": "object" }, "RasterSourceConfig": { "additionalProperties": false, "description": "Configure a :class:`.RasterSource`.", "properties": { "channel_order": { "anyOf": [ { "items": { "type": "integer" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "The sequence of channel indices to use when reading imagery.", "title": "Channel Order" }, "transformers": { "default": [], "items": { "$ref": "#/$defs/RasterTransformerConfig" }, "title": "Transformers", "type": "array" }, "bbox": { "anyOf": [ { "maxItems": 4, "minItems": 4, "prefixItems": [ { "type": "integer" }, { "type": "integer" }, { "type": "integer" }, { "type": "integer" } ], "type": "array" }, { "type": "null" } ], "default": null, "description": "User-specified bbox in pixel coords in the form (ymin, xmin, ymax, xmax). Useful for cropping the raster source so that only part of the raster is read from.", "title": "Bbox" }, "type_hint": { "const": "raster_source", "default": "raster_source", "title": "Type Hint", "type": "string" } }, "title": "RasterSourceConfig", "type": "object" }, "RasterTransformerConfig": { "additionalProperties": false, "description": "Configure a :class:`.RasterTransformer`.", "properties": { "type_hint": { "const": "raster_transformer", "default": "raster_transformer", "title": "Type Hint", "type": "string" } }, "title": "RasterTransformerConfig", "type": "object" } }, "additionalProperties": false, "required": [ "id", "raster_source" ] }
- Config
extra: str = forbid
validate_assignment: bool = True
- Fields
- field aoi_uris: list[str] | None = None#
List of URIs of GeoJSON files that define the AOIs for the scene. Each polygon defines an AOI which is a piece of the scene that is assumed to be fully labeled and usable for training or validation. The AOIs are assumed to be in EPSG:4326 coordinates.
- field label_source: LabelSourceConfig | None = None#
- field label_store: LabelStoreConfig | None = None#
- field raster_source: RasterSourceConfig [Required]#
- build(class_config: ClassConfig, tmp_dir: str | None = None, use_transformers: bool = True) Scene [source]#
Build an instance of the corresponding type of object using this config.
For example, BackendConfig will build a Backend object. The arguments to this method will vary depending on the type of Config.
- Parameters
class_config (ClassConfig) –
tmp_dir (str | None) –
use_transformers (bool) –
- Return type
- classmethod deserialize(inp: str | dict | Config) Self #
Deserialize Config from a JSON file or dict, upgrading if possible.
If
inp
is already aConfig
, it is returned as is.
- classmethod from_dict(cfg_dict: dict) Self #
Deserialize Config from a dict.
- Parameters
cfg_dict (dict) – Dict to deserialize.
- Return type
Self
- classmethod from_file(uri: str) Self #
Deserialize Config from a JSON file, upgrading if possible.
- Parameters
uri (str) – URI to load from.
- Return type
Self
- recursive_validate_config()#
Recursively validate hierarchies of Configs.
This uses reflection to call validate_config on a hierarchy of Configs using a depth-first pre-order traversal.
- revalidate()#
Re-validate an instantiated Config.
Runs all Pydantic validators plus self.validate_config().
- to_file(uri: str, with_rv_metadata: bool = True) None #
Save a Config to a JSON file, optionally with RV metadata.
- update(pipeline: RVPipelineConfig | None = None) None [source]#
Update any fields before validation.
Subclasses should override this to provide complex default behavior, for example, setting default values as a function of the values of other fields. The arguments to this method will vary depending on the type of Config.
- Parameters
pipeline (RVPipelineConfig | None) –
- Return type
None
- validate_config()#
Validate fields that should be checked after update is called.
This is to complement the builtin validation that Pydantic performs at the time of object construction.