From 34de2928ae483016c208cc69a97cc5fa074f4b4c Mon Sep 17 00:00:00 2001 From: KatKatKateryna Date: Fri, 28 Jul 2023 13:56:09 +0100 Subject: [PATCH 1/8] non-geometry GIS class --- src/specklepy/objects/GIS/geometry.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/specklepy/objects/GIS/geometry.py b/src/specklepy/objects/GIS/geometry.py index 2d66f6c..dff3b39 100644 --- a/src/specklepy/objects/GIS/geometry.py +++ b/src/specklepy/objects/GIS/geometry.py @@ -102,3 +102,16 @@ class GisRasterElement(Base, speckle_type="Objects.GIS.RasterElement", detachabl self.displayValue = displayValue self.units = units or "m" +class GisNonGeometryElement(Base, speckle_type="Objects.GIS.NonGeometryElement"): + """GIS Point element""" + + def __init__( + self, + attributes: Optional[Base] = None, + units: Optional[str] = None, + **kwargs + ) -> None: + super().__init__(**kwargs) + + self.attributes = attributes + self.units = units or "m" From 5ac85c541b56c53e18bb79db353027aed6f37351 Mon Sep 17 00:00:00 2001 From: KatKatKateryna Date: Fri, 25 Aug 2023 18:28:06 +0100 Subject: [PATCH 2/8] add Topography class --- src/specklepy/objects/GIS/geometry.py | 32 +++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/specklepy/objects/GIS/geometry.py b/src/specklepy/objects/GIS/geometry.py index dff3b39..e1ac8f3 100644 --- a/src/specklepy/objects/GIS/geometry.py +++ b/src/specklepy/objects/GIS/geometry.py @@ -102,6 +102,38 @@ class GisRasterElement(Base, speckle_type="Objects.GIS.RasterElement", detachabl self.displayValue = displayValue self.units = units or "m" +class GisTopography(GisRasterElement, speckle_type="Objects.GIS.GisTopography", 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" + class GisNonGeometryElement(Base, speckle_type="Objects.GIS.NonGeometryElement"): """GIS Point element""" From 0cb6c7f682caf05d7dc7842e8ee7c7e6faa31354 Mon Sep 17 00:00:00 2001 From: KatKatKateryna Date: Mon, 4 Sep 2023 16:17:48 +0100 Subject: [PATCH 3/8] add metrics keyword for Connector Action --- src/specklepy/logging/metrics.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/specklepy/logging/metrics.py b/src/specklepy/logging/metrics.py index 089c135..795b665 100644 --- a/src/specklepy/logging/metrics.py +++ b/src/specklepy/logging/metrics.py @@ -24,6 +24,7 @@ METRICS_TRACKER = None # actions SDK = "SDK Actions" +CONNECTOR = "Connector Action" RECEIVE = "Receive" SEND = "Send" From 8bd46e4e641ce41a08d00b630fa9652abfc1832b Mon Sep 17 00:00:00 2001 From: KatKatKateryna Date: Mon, 4 Sep 2023 19:57:36 +0100 Subject: [PATCH 4/8] Revert "add metrics keyword for Connector Action" This reverts commit 0cb6c7f682caf05d7dc7842e8ee7c7e6faa31354. --- src/specklepy/logging/metrics.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/specklepy/logging/metrics.py b/src/specklepy/logging/metrics.py index 795b665..089c135 100644 --- a/src/specklepy/logging/metrics.py +++ b/src/specklepy/logging/metrics.py @@ -24,7 +24,6 @@ METRICS_TRACKER = None # actions SDK = "SDK Actions" -CONNECTOR = "Connector Action" RECEIVE = "Receive" SEND = "Send" From 703ceaf369515bee0eab2445844baf61eac8797e Mon Sep 17 00:00:00 2001 From: KatKatKateryna Date: Tue, 5 Sep 2023 15:02:47 +0100 Subject: [PATCH 5/8] naming --- src/specklepy/objects/GIS/geometry.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/specklepy/objects/GIS/geometry.py b/src/specklepy/objects/GIS/geometry.py index e1ac8f3..af1cca0 100644 --- a/src/specklepy/objects/GIS/geometry.py +++ b/src/specklepy/objects/GIS/geometry.py @@ -103,7 +103,7 @@ class GisRasterElement(Base, speckle_type="Objects.GIS.RasterElement", detachabl self.units = units or "m" class GisTopography(GisRasterElement, speckle_type="Objects.GIS.GisTopography", detachable={"displayValue"}): - """GIS Raster element""" + """GIS Raster element with 3d Topography representation""" def __init__( self, @@ -135,7 +135,7 @@ class GisTopography(GisRasterElement, speckle_type="Objects.GIS.GisTopography", self.units = units or "m" class GisNonGeometryElement(Base, speckle_type="Objects.GIS.NonGeometryElement"): - """GIS Point element""" + """GIS Table feature""" def __init__( self, From 5e2fbaa7c2f16d21ec47c78c8521ce9cea70d6be Mon Sep 17 00:00:00 2001 From: KatKatKateryna Date: Wed, 6 Sep 2023 11:14:46 +0100 Subject: [PATCH 6/8] replace init for GIS classes --- src/specklepy/objects/GIS/CRS.py | 29 ++---- src/specklepy/objects/GIS/geometry.py | 144 +++++--------------------- src/specklepy/objects/GIS/layers.py | 71 ++++++------- 3 files changed, 61 insertions(+), 183 deletions(-) diff --git a/src/specklepy/objects/GIS/CRS.py b/src/specklepy/objects/GIS/CRS.py index b21b6c5..c449530 100644 --- a/src/specklepy/objects/GIS/CRS.py +++ b/src/specklepy/objects/GIS/CRS.py @@ -5,26 +5,13 @@ from specklepy.objects import Base 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: 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 diff --git a/src/specklepy/objects/GIS/geometry.py b/src/specklepy/objects/GIS/geometry.py index af1cca0..b692fa5 100644 --- a/src/specklepy/objects/GIS/geometry.py +++ b/src/specklepy/objects/GIS/geometry.py @@ -6,144 +6,48 @@ from deprecated import deprecated 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""" - 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" - class GisNonGeometryElement(Base, speckle_type="Objects.GIS.NonGeometryElement"): """GIS Table feature""" - - def __init__( - self, - attributes: Optional[Base] = None, - units: Optional[str] = None, - **kwargs - ) -> None: - super().__init__(**kwargs) - - self.attributes = attributes - self.units = units or "m" + + attributes: Optional[Base] = None + diff --git a/src/specklepy/objects/GIS/layers.py b/src/specklepy/objects/GIS/layers.py index 092316a..c17ff37 100644 --- a/src/specklepy/objects/GIS/layers.py +++ b/src/specklepy/objects/GIS/layers.py @@ -28,29 +28,22 @@ class Layer(Base, detachable={"features"}): 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"}, + collectionType = "VectorLayer"): + """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 @property @deprecated(version="2.14", reason="Use elements") @@ -61,29 +54,23 @@ class VectorLayer(Collection, detachable={"elements"}, speckle_type="Objects.GIS 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"}, + collectionType = "RasterLayer"): + """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 + @property @deprecated(version="2.14", reason="Use elements") From 5ac9d80cbc02de84e98f91aaf736dfce2d8ec1c3 Mon Sep 17 00:00:00 2001 From: KatKatKateryna Date: Wed, 6 Sep 2023 11:28:55 +0100 Subject: [PATCH 7/8] fix --- src/specklepy/objects/GIS/layers.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/specklepy/objects/GIS/layers.py b/src/specklepy/objects/GIS/layers.py index c17ff37..92db79b 100644 --- a/src/specklepy/objects/GIS/layers.py +++ b/src/specklepy/objects/GIS/layers.py @@ -32,8 +32,7 @@ class VectorLayer( Collection, detachable={"elements"}, speckle_type="Objects.GIS.VectorLayer", - serialize_ignore={"features"}, - collectionType = "VectorLayer"): + serialize_ignore={"features"}): """GIS Vector Layer""" @@ -44,6 +43,7 @@ class VectorLayer( attributes: Optional[Base] = None geomType: Optional[str] = "None" renderer: Optional[Dict[str, Any]] = None + collectionType = "VectorLayer" @property @deprecated(version="2.14", reason="Use elements") @@ -58,8 +58,7 @@ class RasterLayer( Collection, detachable={"elements"}, speckle_type="Objects.GIS.RasterLayer", - serialize_ignore={"features"}, - collectionType = "RasterLayer"): + serialize_ignore={"features"}): """GIS Raster Layer""" @@ -70,6 +69,7 @@ class RasterLayer( elements: Optional[List[Base]] = None geomType: Optional[str] = "None" renderer: Optional[Dict[str, Any]] = None + collectionType = "RasterLayer" @property From 8244e3ecc7fdf168716a995c6998fefa2731c7c4 Mon Sep 17 00:00:00 2001 From: KatKatKateryna Date: Wed, 6 Sep 2023 11:31:54 +0100 Subject: [PATCH 8/8] remove redundant units --- src/specklepy/objects/GIS/CRS.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/specklepy/objects/GIS/CRS.py b/src/specklepy/objects/GIS/CRS.py index c449530..746f442 100644 --- a/src/specklepy/objects/GIS/CRS.py +++ b/src/specklepy/objects/GIS/CRS.py @@ -8,7 +8,6 @@ class CRS(Base, speckle_type="Objects.GIS.CRS"): 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