Commit bee0b152 authored by Daniel Scheffler's avatar Daniel Scheffler
Browse files

Fixed issue#3 (typing).S

parent 7b940f12
Pipeline #1230 passed with stages
in 6 minutes and 4 seconds
...@@ -7,7 +7,7 @@ import pyproj ...@@ -7,7 +7,7 @@ import pyproj
import numpy as np import numpy as np
from shapely.geometry import Polygon from shapely.geometry import Polygon
from shapely.ops import transform from shapely.ops import transform
from typing import Union, TypeVar, TYPE_CHECKING from typing import Union # noqa F401 # flake8 issue
try: try:
from osgeo import osr from osgeo import osr
...@@ -20,9 +20,6 @@ from .projection import get_proj4info, proj4_to_dict ...@@ -20,9 +20,6 @@ from .projection import get_proj4info, proj4_to_dict
__author__ = "Daniel Scheffler" __author__ = "Daniel Scheffler"
if TYPE_CHECKING:
_T_xycoords = TypeVar(Union[tuple, np.ndarray])
def transform_utm_to_wgs84(easting, northing, zone, south=False): def transform_utm_to_wgs84(easting, northing, zone, south=False):
# ''' returns lon, lat, altitude ''' # ''' returns lon, lat, altitude '''
...@@ -124,7 +121,7 @@ def transform_coordArray(prj_src, prj_tgt, Xarr, Yarr, Zarr=None): ...@@ -124,7 +121,7 @@ def transform_coordArray(prj_src, prj_tgt, Xarr, Yarr, Zarr=None):
def mapXY2imXY(mapXY, gt): def mapXY2imXY(mapXY, gt):
# type: (tuple, Union[list, tuple]) -> _T_xycoords # type: (tuple, Union[list, tuple]) -> Union[tuple, np.ndarray]
"""Translates given geo coordinates into pixel locations according to the given image geotransform. """Translates given geo coordinates into pixel locations according to the given image geotransform.
:param mapXY: <tuple, np.ndarray> The geo coordinates to be translated in the form (x,y) or as np.ndarray [Nx1]. :param mapXY: <tuple, np.ndarray> The geo coordinates to be translated in the form (x,y) or as np.ndarray [Nx1].
...@@ -144,7 +141,7 @@ def mapXY2imXY(mapXY, gt): ...@@ -144,7 +141,7 @@ def mapXY2imXY(mapXY, gt):
def imXY2mapXY(imXY, gt): def imXY2mapXY(imXY, gt):
# type: (tuple, Union[list, tuple]) -> _T_xycoords # type: (tuple, Union[list, tuple]) -> Union[tuple, np.ndarray]
"""Translates given pixel locations into geo coordinates according to the given image geotransform. """Translates given pixel locations into geo coordinates according to the given image geotransform.
:param imXY: <tuple, np.ndarray> The image coordinates to be translated in the form (x,y) or as np.ndarray [Nx1]. :param imXY: <tuple, np.ndarray> The image coordinates to be translated in the form (x,y) or as np.ndarray [Nx1].
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from typing import TYPE_CHECKING, Union, TypeVar from typing import Union # noqa F401 # flake8 issue
try: try:
from osgeo import osr from osgeo import osr
except ImportError: except ImportError:
...@@ -11,9 +11,6 @@ from .coord_trafo import transform_utm_to_wgs84 ...@@ -11,9 +11,6 @@ from .coord_trafo import transform_utm_to_wgs84
__author__ = "Daniel Scheffler" __author__ = "Daniel Scheffler"
if TYPE_CHECKING:
_T_mapinfo_out = TypeVar(Union[list, None])
def geotransform2mapinfo(gt, prj): def geotransform2mapinfo(gt, prj):
"""Builds an ENVI geo info from given GDAL GeoTransform and Projection (compatible with UTM and LonLat projections). """Builds an ENVI geo info from given GDAL GeoTransform and Projection (compatible with UTM and LonLat projections).
...@@ -49,7 +46,7 @@ def geotransform2mapinfo(gt, prj): ...@@ -49,7 +46,7 @@ def geotransform2mapinfo(gt, prj):
def mapinfo2geotransform(map_info): def mapinfo2geotransform(map_info):
# type: (list) -> _T_mapinfo_out # type: (list) -> Union[list, None]
"""Builds GDAL GeoTransform tuple from an ENVI geo info. """Builds GDAL GeoTransform tuple from an ENVI geo info.
:param map_info: ENVI geo info (list), e.g., ['UTM', 1, 1, 192585.0, 5379315.0, 30.0, 30.0, 41, 'North', 'WGS-84'] :param map_info: ENVI geo info (list), e.g., ['UTM', 1, 1, 192585.0, 5379315.0, 30.0, 30.0, 41, 'North', 'WGS-84']
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
import re import re
import pyproj import pyproj
from typing import Union, TypeVar, TYPE_CHECKING from typing import Union # noqa F401 # flake8 issue
# custom # custom
try: try:
...@@ -16,9 +16,6 @@ from ..environment import gdal_env ...@@ -16,9 +16,6 @@ from ..environment import gdal_env
__author__ = "Daniel Scheffler" __author__ = "Daniel Scheffler"
if TYPE_CHECKING:
_T_prj1 = TypeVar(Union[None, int, str])
_T_prj2 = TypeVar(Union[str, int, dict])
# try to set GDAL_DATA if unnot set or invalid # try to set GDAL_DATA if unnot set or invalid
gdal_env.try2set_GDAL_DATA() gdal_env.try2set_GDAL_DATA()
...@@ -72,7 +69,7 @@ def proj4_to_WKT(proj4str): ...@@ -72,7 +69,7 @@ def proj4_to_WKT(proj4str):
def prj_equal(prj1, prj2): def prj_equal(prj1, prj2):
# type: (_T_prj1, _T_prj1) -> bool # type: (Union[None, int, str], Union[None, int, str]) -> bool
"""Checks if the given two projections are equal. """Checks if the given two projections are equal.
:param prj1: projection 1 (WKT or 'epsg:1234' or <EPSG_int>) :param prj1: projection 1 (WKT or 'epsg:1234' or <EPSG_int>)
...@@ -85,7 +82,7 @@ def prj_equal(prj1, prj2): ...@@ -85,7 +82,7 @@ def prj_equal(prj1, prj2):
def isProjectedOrGeographic(prj): def isProjectedOrGeographic(prj):
# type: (_T_prj2) -> TypeVar(Union[str, None]) # type: (Union[str, int, dict]) -> Union[str, None]
""" """
:param prj: accepts EPSG, Proj4 and WKT projections :param prj: accepts EPSG, Proj4 and WKT projections
...@@ -135,7 +132,7 @@ def EPSG2WKT(EPSG_code): ...@@ -135,7 +132,7 @@ def EPSG2WKT(EPSG_code):
def WKT2EPSG(wkt, epsgfile=''): def WKT2EPSG(wkt, epsgfile=''):
# type: (str) -> TypeVar(Union[int, None]) # type: (str) -> Union[int, None]
""" Transform a WKT string to an EPSG code """ Transform a WKT string to an EPSG code
:param wkt: WKT definition :param wkt: WKT definition
:param epsgfile: the proj.4 epsg file (automatically located if no path is provided) :param epsgfile: the proj.4 epsg file (automatically located if no path is provided)
...@@ -193,7 +190,7 @@ def get_UTMzone(ds=None, prj=None): ...@@ -193,7 +190,7 @@ def get_UTMzone(ds=None, prj=None):
def get_prjLonLat(fmt='wkt'): def get_prjLonLat(fmt='wkt'):
# type: (str) -> TypeVar(Union[str, dict]) # type: (str) -> Union[str, dict]
"""Returns standard geographic projection (EPSG 4326) in the WKT or PROJ4 format. """Returns standard geographic projection (EPSG 4326) in the WKT or PROJ4 format.
:param fmt: <str> target format - 'WKT' or 'PROJ4' :param fmt: <str> target format - 'WKT' or 'PROJ4'
""" """
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import numpy as np import numpy as np
from typing import TypeVar
# custom # custom
from shapely.geometry import shape, mapping, box, Polygon from shapely.geometry import shape, mapping, box
from shapely.geometry import Polygon # noqa F401 # flake8 issue
try: try:
from osgeo import ogr from osgeo import ogr
...@@ -20,8 +20,6 @@ from ...dtypes.conversion import get_dtypeStr, dTypeDic_NumPy2GDAL ...@@ -20,8 +20,6 @@ from ...dtypes.conversion import get_dtypeStr, dTypeDic_NumPy2GDAL
__author__ = "Daniel Scheffler" __author__ = "Daniel Scheffler"
_T_polygon = TypeVar(Polygon)
def shapelyImPoly_to_shapelyMapPoly_withPRJ(shapelyImPoly, gt, prj): def shapelyImPoly_to_shapelyMapPoly_withPRJ(shapelyImPoly, gt, prj):
# ACTUALLY PRJ IS NOT NEEDED BUT THIS FUNCTION RETURNS OTHER VALUES THAN shapelyImPoly_to_shapelyMapPoly # ACTUALLY PRJ IS NOT NEEDED BUT THIS FUNCTION RETURNS OTHER VALUES THAN shapelyImPoly_to_shapelyMapPoly
...@@ -49,7 +47,7 @@ def shapelyBox2BoxYX(shapelyBox, coord_type='image'): ...@@ -49,7 +47,7 @@ def shapelyBox2BoxYX(shapelyBox, coord_type='image'):
def get_boxImXY_from_shapelyPoly(shapelyPoly, im_gt): def get_boxImXY_from_shapelyPoly(shapelyPoly, im_gt):
# type: (_T_polygon, tuple) -> list # type: (Polygon, tuple) -> list
"""Converts each vertex coordinate of a shapely polygon into image coordinates corresponding to the given """Converts each vertex coordinate of a shapely polygon into image coordinates corresponding to the given
geotransform without respect to invalid image coordinates. Those must be filtered later. geotransform without respect to invalid image coordinates. Those must be filtered later.
:param shapelyPoly: <shapely.Polygon> :param shapelyPoly: <shapely.Polygon>
......
...@@ -3,18 +3,16 @@ ...@@ -3,18 +3,16 @@
import math import math
import warnings import warnings
import numpy as np import numpy as np
from typing import TypeVar, Union from typing import Union # noqa F401 # flake8 issue
from geopandas import GeoDataFrame from geopandas import GeoDataFrame
from shapely.geometry import shape, Polygon, box, Point, MultiPolygon from shapely.geometry import shape, Polygon, box, Point
from shapely.geometry import MultiPolygon # noqa F401 # flake8 issue
from ..coord_trafo import mapYX2imYX from ..coord_trafo import mapYX2imYX
from ..coord_grid import find_nearest_grid_coord from ..coord_grid import find_nearest_grid_coord
__author__ = "Daniel Scheffler" __author__ = "Daniel Scheffler"
_T_polygon = TypeVar(Polygon)
_T_multipoly_poly = Union[TypeVar(Polygon), TypeVar(MultiPolygon)]
def get_overlap_polygon(poly1, poly2, v=False): def get_overlap_polygon(poly1, poly2, v=False):
""" Returns a dict with the overlap of two shapely.Polygon() objects, the overlap percentage and the overlap area. """ Returns a dict with the overlap of two shapely.Polygon() objects, the overlap percentage and the overlap area.
...@@ -127,7 +125,7 @@ def polyVertices_outside_poly(inner_poly, outer_poly): ...@@ -127,7 +125,7 @@ def polyVertices_outside_poly(inner_poly, outer_poly):
def fill_holes_within_poly(poly): def fill_holes_within_poly(poly):
# type: (_T_multipoly_poly) -> _T_polygon # type: (Union[Polygon, MultiPolygon]) -> Polygon
"""Fills the holes within a shapely Polygon or MultiPolygon and returns a Polygon with only the outer boundary. """Fills the holes within a shapely Polygon or MultiPolygon and returns a Polygon with only the outer boundary.
:param poly: <shapely.geometry.Polygon, shapely.geometry.MultiPolygon>, shapely.geometry.GeometryCollection> :param poly: <shapely.geometry.Polygon, shapely.geometry.MultiPolygon>, shapely.geometry.GeometryCollection>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment