Skip to content

Commit

Permalink
Merge branch 'main' into gergo/allowUnsupportedUnits
Browse files Browse the repository at this point in the history
  • Loading branch information
JR-Morgan authored Sep 7, 2023
2 parents bd35fb5 + 4931c95 commit 9d2fd5b
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 143 deletions.
28 changes: 7 additions & 21 deletions src/specklepy/objects/GIS/CRS.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,12 @@
class CRS(Base, speckle_type="Objects.GIS.CRS"):
"""A Coordinate Reference System stored in wkt format"""

def __init__(
self,
name: Optional[str] = None,
authority_id: Optional[str] = None,
wkt: Optional[str] = None,
units: Optional[str] = None,
units_native: Optional[str] = None,
offset_x: Optional[float] = None,
offset_y: Optional[float] = None,
rotation: Optional[float] = None,
**kwargs
) -> None:
super().__init__(**kwargs)
name: Optional[str] = None
authority_id: Optional[str] = None
wkt: Optional[str] = None
units_native: Optional[str] = None
offset_x: Optional[float] = None
offset_y: Optional[float] = None
rotation: Optional[float] = None

self.name = name
self.authority_id = authority_id
self.wkt = wkt
self.units = units or "m"
self.units_native = units_native
self.offset_x = offset_x
self.offset_y = offset_y
self.rotation = rotation

109 changes: 29 additions & 80 deletions src/specklepy/objects/GIS/geometry.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,99 +6,48 @@

class GisPolygonGeometry(Base, speckle_type="Objects.GIS.PolygonGeometry", detachable={"displayValue"}):
"""GIS Polygon Geometry"""

def __init__(
self,
boundary: Optional[Union[Polyline, Arc, Line, Circle, Polycurve]] = None,
voids: Optional[List[Union[Polyline, Arc, Line, Circle, Polycurve]] ] = None,
displayValue: Optional[List[Mesh]] = None,
units: Optional[str] = None,
**kwargs
) -> None:
super().__init__(**kwargs)

self.boundary = boundary
self.voids = voids
self.displayValue = displayValue
self.units = units or "m"
boundary: Optional[Union[Polyline, Arc, Line, Circle, Polycurve]] = None
voids: Optional[List[Union[Polyline, Arc, Line, Circle, Polycurve]] ] = None
displayValue: Optional[List[Mesh]] = None

class GisPolygonElement(Base, speckle_type="Objects.GIS.PolygonElement"):
"""GIS Polygon element"""

def __init__(
self,
geometry: Optional[List[GisPolygonGeometry]] = None,
attributes: Optional[Base] = None,
units: Optional[str] = None,
**kwargs
) -> None:
super().__init__(**kwargs)

self.geometry = geometry
self.attributes = attributes
self.units = units or "m"
geometry: Optional[List[GisPolygonGeometry]] = None
attributes: Optional[Base] = None

class GisLineElement(Base, speckle_type="Objects.GIS.LineElement"):
"""GIS Polyline element"""

def __init__(
self,
geometry: Optional[List[Union[Polyline, Arc, Line, Circle, Polycurve]]] = None,
attributes: Optional[Base] = None,
units: Optional[str] = None,
**kwargs
) -> None:
super().__init__(**kwargs)

self.geometry = geometry
self.attributes = attributes
self.units = units or "m"

geometry: Optional[List[Union[Polyline, Arc, Line, Circle, Polycurve]]] = None,
attributes: Optional[Base] = None,

class GisPointElement(Base, speckle_type="Objects.GIS.PointElement"):
"""GIS Point element"""

def __init__(
self,
geometry: Optional[List[Point]] = None,
attributes: Optional[Base] = None,
units: Optional[str] = None,
**kwargs
) -> None:
super().__init__(**kwargs)

self.geometry = geometry
self.attributes = attributes
self.units = units or "m"

geometry: Optional[List[Point]] = None,
attributes: Optional[Base] = None,

class GisRasterElement(Base, speckle_type="Objects.GIS.RasterElement", detachable={"displayValue"}):
"""GIS Raster element"""

def __init__(
self,
band_count: Optional[int] = None,
band_names: Optional[List[str]] = None,
x_origin: Optional[float] = None,
y_origin: Optional[float] = None,
x_size: Optional[int] = None,
y_size: Optional[int] = None,
x_resolution: Optional[float] = None,
y_resolution: Optional[float] = None,
noDataValue: Optional[List[float]] = None,
displayValue: Optional[List[Mesh]] = None,
units: Optional[str] = None,
**kwargs
) -> None:
super().__init__(**kwargs)

self.band_count = band_count
self.band_names = band_names
self.x_origin = x_origin
self.y_origin = y_origin
self.x_size = x_size
self.y_size = y_size
self.x_resolution = x_resolution
self.y_resolution = y_resolution
self.noDataValue = noDataValue
self.displayValue = displayValue
self.units = units or "m"
band_count: Optional[int] = None
band_names: Optional[List[str]] = None
x_origin: Optional[float] = None
y_origin: Optional[float] = None
x_size: Optional[int] = None
y_size: Optional[int] = None
x_resolution: Optional[float] = None
y_resolution: Optional[float] = None
noDataValue: Optional[List[float]] = None
displayValue: Optional[List[Mesh]] = None

class GisTopography(GisRasterElement, speckle_type="Objects.GIS.GisTopography", detachable={"displayValue"}):
"""GIS Raster element with 3d Topography representation"""

class GisNonGeometryElement(Base, speckle_type="Objects.GIS.NonGeometryElement"):
"""GIS Table feature"""

attributes: Optional[Base] = None

71 changes: 29 additions & 42 deletions src/specklepy/objects/GIS/layers.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,29 +28,22 @@ def __init__(
self.geomType = geomType
self.renderer = renderer or {}

class VectorLayer(Collection, detachable={"elements"}, speckle_type="Objects.GIS.VectorLayer", serialize_ignore={"features"}):
class VectorLayer(
Collection,
detachable={"elements"},
speckle_type="Objects.GIS.VectorLayer",
serialize_ignore={"features"}):

"""GIS Vector Layer"""

def __init__(
self,
name: Optional[str]=None,
crs: Optional[CRS]=None,
units: Optional[str] = None,
elements: Optional[List[Base]] = None,
attributes: Optional[Base] = None,
geomType: Optional[str] = None,
renderer: Optional[Dict[str, Any]] = None,
**kwargs
) -> None:
super().__init__(**kwargs)
self.name = name or ""
self.crs = crs
self.units = units
self.elements = elements or []
self.attributes = attributes
self.geomType = geomType or "None"
self.renderer = renderer or {}
self.collectionType = "VectorLayer"
name: Optional[str]=None
crs: Optional[CRS]=None
units: Optional[str] = None
elements: Optional[List[Base]] = None
attributes: Optional[Base] = None
geomType: Optional[str] = "None"
renderer: Optional[Dict[str, Any]] = None
collectionType = "VectorLayer"

@property
@deprecated(version="2.14", reason="Use elements")
Expand All @@ -61,29 +54,23 @@ def features(self) -> Optional[List[Base]]:
def features(self, value: Optional[List[Base]]) -> None:
self.elements = value

class RasterLayer(Collection, detachable={"elements"}, speckle_type="Objects.GIS.RasterLayer", serialize_ignore={"features"}):
class RasterLayer(
Collection,
detachable={"elements"},
speckle_type="Objects.GIS.RasterLayer",
serialize_ignore={"features"}):

"""GIS Raster Layer"""

def __init__(
self,
name: Optional[str] = None,
crs: Optional[CRS]=None,
units: Optional[str] = None,
rasterCrs: Optional[CRS]=None,
elements: Optional[List[Base]] = None,
geomType: Optional[str] = None,
renderer: Optional[Dict[str, Any]] = None,
**kwargs
) -> None:
super().__init__(**kwargs)
self.name = name or ""
self.crs = crs
self.units = units
self.rasterCrs = rasterCrs
self.elements = elements or []
self.geomType = geomType or "None"
self.renderer = renderer or {}
self.collectionType = "RasterLayer"
name: Optional[str] = None
crs: Optional[CRS]=None
units: Optional[str] = None
rasterCrs: Optional[CRS]=None
elements: Optional[List[Base]] = None
geomType: Optional[str] = "None"
renderer: Optional[Dict[str, Any]] = None
collectionType = "RasterLayer"


@property
@deprecated(version="2.14", reason="Use elements")
Expand Down

0 comments on commit 9d2fd5b

Please sign in to comment.