Ejemplo n.º 1
0
def test_simple_feature():
    sftb = SimpleFeatureTypeBuilder()
    sftb.set_name("TestPointType")
    sftb.add(AttributeDescriptor.point("the_geom", False))
    sftb.add(AttributeDescriptor.big_integer("big_int", True))
    sftb.add(AttributeDescriptor.string("string", True))
    sftb.add(AttributeDescriptor.byte("byte", False))
    sftb.add(AttributeDescriptor.float("float", True))
    sft = sftb.build_feature_type()

    big_number = 123123123123123123123123123
    sfb = SimpleFeatureBuilder(sft)
    sfb.set_attr("the_geom", Point(1, 1))
    sfb.set_attr("big_int", big_number)
    sfb.set_attr("string", "test value")
    sfb.set_attr("byte", 38)
    feature = sfb.build("fid1")

    assert feature.get_id() == "fid1"
    assert feature.get_type() is sft
    assert feature.get_feature_type() is sft
    assert feature.get_default_geometry() == Point(1, 1)
    assert feature.get_attribute_count() == 5
    assert feature.get_attribute("string") == "test value"
    assert feature.get_attribute(1) == big_number
    attrs = feature.get_attributes()
    assert attrs[0] == Point(1, 1)
    assert attrs[1] == big_number
    assert attrs[2] == "test value"
    assert attrs[3] == 38
    assert attrs[4] is None

    feature_dict = feature.to_dict()
    assert feature_dict["id"] == "fid1"
    assert feature_dict["the_geom"] == Point(1, 1)
    assert feature_dict["string"] == "test value"
    assert feature_dict["byte"] == 38
    assert feature_dict["big_int"] == big_number
Ejemplo n.º 2
0
def test_simple_feature_type():
    sftb = SimpleFeatureTypeBuilder()
    sftb.set_name("TestKitchenSinkType")
    sftb.set_namespace_uri("http://www.example.org")
    sftb.set_srs("EPSG:4326")
    sftb.add(AttributeDescriptor.point("the_geom", False))
    sftb.add(AttributeDescriptor.big_decimal("big_decimal", True))
    sftb.add(AttributeDescriptor.big_decimal_array("big_decimal_array"))
    sftb.add(AttributeDescriptor.big_integer("big_integer"))
    sftb.add(AttributeDescriptor.big_integer_array("big_integer_array"))
    sftb.add(AttributeDescriptor.boolean("boolean"))
    sftb.add(AttributeDescriptor.boolean_array("boolean_array"))
    sftb.add(AttributeDescriptor.primitive_boolean_array("prim_boolean_array"))
    sftb.add(AttributeDescriptor.float("float"))
    sftb.add(AttributeDescriptor.float_array("float_array"))
    sftb.add(AttributeDescriptor.primitive_float_array("prim_float_array"))
    sftb.add(AttributeDescriptor.double("double"))
    sftb.add(AttributeDescriptor.double_array("double_array"))
    sftb.add(AttributeDescriptor.primitive_double_array("prim_double_array"))
    sftb.add(AttributeDescriptor.byte("byte"))
    sftb.add(AttributeDescriptor.byte_array("byte_array"))
    sftb.add(AttributeDescriptor.primitive_byte_array("prim_byte_array"))
    sftb.add(AttributeDescriptor.short("short"))
    sftb.add(AttributeDescriptor.short_array("short_array"))
    sftb.add(AttributeDescriptor.primitive_short_array("prim_short_array"))
    sftb.add(AttributeDescriptor.integer("integer"))
    sftb.add(AttributeDescriptor.integer_array("integer_array"))
    sftb.add(AttributeDescriptor.primitive_int_array("prim_int_array"))
    sftb.add(AttributeDescriptor.long("long"))
    sftb.add(AttributeDescriptor.long_array("long_array"))
    sftb.add(AttributeDescriptor.primitive_long_array("prim_long_array"))
    sftb.add(AttributeDescriptor.string("string"))
    sftb.add(AttributeDescriptor.string_array("string_array"))
    sftb.add(AttributeDescriptor.date("date"))
    sftb.add(AttributeDescriptor.date_array("date_array"))
    sftb.add(AttributeDescriptor.calendar("calendar"))
    sftb.add(AttributeDescriptor.calendar_array("calendar_array"))
    sftb.add(AttributeDescriptor.point_array("point_array"))
    sftb.add(AttributeDescriptor.multi_point("multi_point"))
    sftb.add(AttributeDescriptor.multi_point_array("multi_point_array"))
    sftb.add(AttributeDescriptor.line_string("line_string"))
    sftb.add(AttributeDescriptor.line_string_array("line_string_array"))
    sftb.add(AttributeDescriptor.multi_line_string("multi_line_string"))
    sftb.add(
        AttributeDescriptor.multi_line_string_array("multi_line_string_array"))
    sftb.add(AttributeDescriptor.polygon("polygon"))
    sftb.add(AttributeDescriptor.polygon_array("polygon_array"))
    sftb.add(AttributeDescriptor.multi_polygon("multi_polygon"))
    sftb.add(AttributeDescriptor.multi_polygon_array("multi_polygon_array"))
    sftb.add(AttributeDescriptor.geometry_collection("geometry_collection"))
    sftb.add(
        AttributeDescriptor.geometry_collection_array(
            "geometry_collection_array"))
    sftb.add(AttributeDescriptor.geometry("geometry"))
    sftb.add(AttributeDescriptor.geometry_array("geometry_array"))
    sft = sftb.build_feature_type()

    assert sft.get_type_name() == "TestKitchenSinkType"
    check_attribute(sft, "the_geom", False, PointType)
    check_attribute(sft, "big_decimal", True, BigDecimalType)
    check_attribute(sft, "big_decimal_array", False, BigDecimalArrayType)
    check_attribute(sft, "big_integer", False, BigIntegerType)
    check_attribute(sft, "big_integer_array", False, BigIntegerArrayType)
    check_attribute(sft, "boolean", False, BooleanType)
    check_attribute(sft, "boolean_array", False, BooleanArrayType)
    check_attribute(sft, "prim_boolean_array", False,
                    PrimitiveBooleanArrayType)
    check_attribute(sft, "float", False, FloatType)
    check_attribute(sft, "float_array", False, FloatArrayType)
    check_attribute(sft, "prim_float_array", False, PrimitiveFloatArrayType)
    check_attribute(sft, "double", False, DoubleType)
    check_attribute(sft, "double_array", False, DoubleArrayType)
    check_attribute(sft, "prim_double_array", False, PrimitiveDoubleArrayType)
    check_attribute(sft, "byte", False, ByteType)
    check_attribute(sft, "byte_array", False, ByteArrayType)
    check_attribute(sft, "prim_byte_array", False, PrimitiveByteArrayType)
    check_attribute(sft, "short", False, ShortType)
    check_attribute(sft, "short_array", False, ShortArrayType)
    check_attribute(sft, "prim_short_array", False, PrimitiveShortArrayType)
    check_attribute(sft, "integer", False, IntegerType)
    check_attribute(sft, "integer_array", False, IntegerArrayType)
    check_attribute(sft, "prim_int_array", False, PrimitiveIntArrayType)
    check_attribute(sft, "long", False, LongType)
    check_attribute(sft, "long_array", False, LongArrayType)
    check_attribute(sft, "prim_long_array", False, PrimitiveLongArrayType)
    check_attribute(sft, "string", False, StringType)
    check_attribute(sft, "string_array", False, StringArrayType)
    check_attribute(sft, "date", False, DateType)
    check_attribute(sft, "date_array", False, DateArrayType)
    check_attribute(sft, "calendar", False, CalendarType)
    check_attribute(sft, "calendar_array", False, CalendarArrayType)
    check_attribute(sft, "point_array", False, PointArrayType)
    check_attribute(sft, "multi_point", False, MultiPointType)
    check_attribute(sft, "multi_point_array", False, MultiPointArrayType)
    check_attribute(sft, "line_string", False, LineStringType)
    check_attribute(sft, "line_string_array", False, LineStringArrayType)
    check_attribute(sft, "multi_line_string", False, MultiLineStringType)
    check_attribute(sft, "multi_line_string_array", False,
                    MultiLineStringArrayType)
    check_attribute(sft, "polygon", False, PolygonType)
    check_attribute(sft, "polygon_array", False, PolygonArrayType)
    check_attribute(sft, "multi_polygon", False, MultiPolygonType)
    check_attribute(sft, "multi_polygon_array", False, MultiPolygonArrayType)
    check_attribute(sft, "geometry_collection", False, GeometryCollectionType)
    check_attribute(sft, "geometry_collection_array", False,
                    GeometryCollectionArrayType)
    check_attribute(sft, "geometry", False, GeometryType)
    check_attribute(sft, "geometry_array", False, GeometryArrayType)

    # Get Attribute by index
    assert sft.get_attribute(2).descriptor == "big_decimal_array"
    assert sft.get_attribute(15).descriptor == "byte_array"

    # Get non-existent attribute
    assert sft.get_attribute("nonexistent") is None
Ejemplo n.º 3
0
from shapely.geometry import Point

from pygw.store import DataStoreFactory
from pygw.store.rocksdb import RocksDBOptions
from pygw.geotools import SimpleFeatureTypeBuilder
from pygw.geotools import AttributeDescriptor
from pygw.geotools import FeatureDataAdapter
from pygw.geotools import SimpleFeatureBuilder

# "Point" Type
_point_type_builder = SimpleFeatureTypeBuilder()
_point_type_builder.set_name("TestPointType")
_point_type_builder.add(AttributeDescriptor.point("the_geom"))
_point_type_builder.add(AttributeDescriptor.date("date"))
_point_type_builder.add(AttributeDescriptor.float("flt"))
POINT_TYPE = _point_type_builder.build_feature_type()

# "Point" Type Adapter
POINT_TYPE_ADAPTER = FeatureDataAdapter(POINT_TYPE)

# "Point" Feature builder
POINT_FEATURE_BUILDER = SimpleFeatureBuilder(POINT_TYPE)


def _create_feature(id, geometry, timestamp):
    POINT_FEATURE_BUILDER.set_attr("the_geom", geometry)
    POINT_FEATURE_BUILDER.set_attr("date", datetime.fromtimestamp(timestamp))
    POINT_FEATURE_BUILDER.set_attr("flt", random.uniform(0, 1))
    return POINT_FEATURE_BUILDER.build(id)
Ejemplo n.º 4
0
from pygw.geotools import AttributeDescriptor
from pygw.geotools import FeatureDataAdapter
from pygw.geotools import SimpleFeatureBuilder

# "Point" Type
POINT_TYPE_NAME = "TestPointType"
POINT_GEOMETRY_FIELD = "the_geom"
POINT_TIME_FIELD = "date"
POINT_NUMBER_FIELD = "flt"
POINT_COLOR_FIELD = "color"
POINT_SHAPE_FIELD = "shape"
_point_type_builder = SimpleFeatureTypeBuilder()
_point_type_builder.set_name(POINT_TYPE_NAME)
_point_type_builder.add(AttributeDescriptor.point(POINT_GEOMETRY_FIELD))
_point_type_builder.add(AttributeDescriptor.date(POINT_TIME_FIELD))
_point_type_builder.add(AttributeDescriptor.float(POINT_NUMBER_FIELD))
_point_type_builder.add(AttributeDescriptor.string(POINT_COLOR_FIELD))
_point_type_builder.add(AttributeDescriptor.string(POINT_SHAPE_FIELD))
POINT_TYPE = _point_type_builder.build_feature_type()

# "Point" Type Adapter
POINT_TYPE_ADAPTER = FeatureDataAdapter(POINT_TYPE)

# "Point" Feature builder
POINT_FEATURE_BUILDER = SimpleFeatureBuilder(POINT_TYPE)

COLORS = ['RED', 'GREEN', 'BLUE']
SHAPES = ['SQUARE', 'CIRCLE', 'TRIANGLE', 'RECTANGLE']


def _create_feature(fid, geometry, timestamp):