Exemple #1
0
def test_geofeature_from_raster_returns_a_valid_feature(raster, request):
    raster = request.getfixturevalue(raster)
    properties = OrderedDict([('prop1', 1), ('prop2', '2'),
                              ('prop3', datetime(2018, 4, 25, 11, 18))])
    feature = GeoFeature.from_raster(raster, properties=properties)
    assert feature.properties == properties
    assert feature.raster() == raster
    assert feature.raster().footprint() == feature.geometry
Exemple #2
0
def test_geofeature_with_raster_copy_with(request):
    raster = request.getfixturevalue("test_raster_with_url")
    properties = OrderedDict([('prop1', 1), ('prop2', '2'),
                              ('prop3', datetime(2018, 4, 25, 11, 18))])
    feature = GeoFeature.from_raster(raster, properties=properties)
    feature_copy = feature.copy_with()
    assert feature == feature_copy
    assert id(feature.raster()) != id(feature_copy.raster())
    assert id(feature.properties) != id(feature_copy.properties)
Exemple #3
0
def test_geofeature_from_raster_to_record_should_not_have___object(
        raster, request):
    raster = request.getfixturevalue(raster)
    properties = OrderedDict([('prop1', 1), ('prop2', '2'),
                              ('prop3', datetime(2018, 4, 25, 11, 18))])
    feature = GeoFeature.from_raster(raster, properties=properties)
    feature_record = feature.to_record(feature.crs)
    for _, asset in feature_record['assets'].items():
        assert '__object' not in asset
Exemple #4
0
def test_geofeature_with_raster_copy_with_updates_properties(request):
    raster = request.getfixturevalue("test_raster_with_url")
    properties = OrderedDict([('prop1', 1), ('prop2', '2')])
    feature = GeoFeature.from_raster(raster, properties=properties)
    new_properties = OrderedDict([('prop2', 1), ('prop3', '2')])
    feature_copy = feature.copy_with(properties=new_properties)
    assert feature != feature_copy
    assert feature.raster() == feature_copy.raster()
    assert id(feature.raster()) != id(feature_copy.raster())

    assert feature_copy.properties == {'prop1': 1, 'prop2': 1, 'prop3': '2'}
Exemple #5
0
def test_geofeature_from_multi_rasters_returns_a_valid_feature(request):
    rasters = [
        request.getfixturevalue("test_raster_with_url"),
        request.getfixturevalue("test_raster_with_url")
    ]
    raster = GeoMultiRaster(rasters)
    properties = OrderedDict([('prop1', 1), ('prop2', '2'),
                              ('prop3', datetime(2018, 4, 25, 11, 18))])
    feature = GeoFeature.from_raster(raster, properties=properties)
    assert feature.properties == properties
    assert feature.raster() == raster
    assert feature.raster() == GeoRaster2.from_rasters(rasters)
Exemple #6
0
def test_geofeature_from_record_for_a_record_with_raster(raster, request):
    raster = request.getfixturevalue(raster)
    properties = OrderedDict([('prop1', 1), ('prop2', '2'),
                              ('prop3', datetime(2018, 4, 25, 11, 18))])
    feature = GeoFeature.from_raster(raster, properties=properties)
    feature2 = GeoFeature.from_record(feature.to_record(feature.crs),
                                      feature.crs)
    assert feature.raster() == feature2.raster()
    assert feature.geometry == feature2.geometry
    assert feature2.to_record(feature2.crs)['properties'] == feature.to_record(
        feature.crs)['properties']
    assert feature2.crs == feature2.raster().crs
Exemple #7
0
def test_geofeature_from_raster_serializes_with_assets(raster, request):
    raster = request.getfixturevalue(raster)
    properties = OrderedDict([('prop1', 1), ('prop2', '2'),
                              ('prop3', datetime(2018, 4, 25, 11, 18))])
    feature = GeoFeature.from_raster(raster, properties=properties)
    assert mapping(feature)["assets"] == {
        '0': {
            'href': raster._filename,
            'bands': raster.band_names,
            'type': RASTER_TYPE,
            'product': 'visual'
        }
    }
Exemple #8
0
 def from_georasters(cls, georasters):
     """Builds new FeatureCollection from a sequence of :py:class:`~telluric.georaster.GeoRaster2` objects."""
     return cls(
         [GeoFeature.from_raster(raster, {}) for raster in georasters])