Source code for rastervision.core.data.vector_source.geojson_vector_source_config

from typing import TYPE_CHECKING, List, Union
from rastervision.core.data.vector_source import (VectorSourceConfig,
                                                  GeoJSONVectorSource)
from rastervision.pipeline.config import register_config, Field

if TYPE_CHECKING:
    from rastervision.core.data import (ClassConfig, CRSTransformer)


def geojson_vector_source_config_upgrader(cfg_dict: dict,
                                          version: int) -> dict:
    if version == 7:
        cfg_dict['uris'] = cfg_dict.pop('uri', [])
    if version == 12:
        # removed in version 13
        cfg_dict.pop('ignore_crs_field', None)
    return cfg_dict


[docs]@register_config( 'geojson_vector_source', upgrader=geojson_vector_source_config_upgrader) class GeoJSONVectorSourceConfig(VectorSourceConfig): """Configure a :class:`.GeoJSONVectorSource`.""" uris: Union[str, List[str]] = Field( ..., description='URI(s) of GeoJSON file(s).')
[docs] def build(self, class_config: 'ClassConfig', crs_transformer: 'CRSTransformer', use_transformers: bool = True) -> GeoJSONVectorSource: if use_transformers: transformers = [ tf.build(class_config=class_config) for tf in self.transformers ] else: transformers = [] return GeoJSONVectorSource( uris=self.uris, crs_transformer=crs_transformer, vector_transformers=transformers)