forked from natcap/pygeoprocessing
-
Notifications
You must be signed in to change notification settings - Fork 0
/
__init__.py
83 lines (74 loc) · 3.09 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
"""pygeoprocessing: geoprocessing routines for GIS.
__init__ module imports all the geoprocessing functions into this namespace.
"""
import logging
import types
try:
from importlib.metadata import PackageNotFoundError
from importlib.metadata import version
except ImportError:
from importlib_metadata import version
from importlib_metadata import PackageNotFoundError
from . import geoprocessing
from .geoprocessing import _assert_is_valid_pixel_size
from .geoprocessing import align_and_resize_raster_stack
from .geoprocessing import align_bbox
from .geoprocessing import array_equals_nodata
from .geoprocessing import build_overviews
from .geoprocessing import calculate_disjoint_polygon_set
from .geoprocessing import choose_dtype
from .geoprocessing import choose_nodata
from .geoprocessing import convolve_2d
from .geoprocessing import create_raster_from_bounding_box
from .geoprocessing import create_raster_from_vector_extents
from .geoprocessing import distance_transform_edt
from .geoprocessing import get_gis_type
from .geoprocessing import get_raster_info
from .geoprocessing import get_vector_info
from .geoprocessing import interpolate_points
from .geoprocessing import iterblocks
from .geoprocessing import mask_raster
from .geoprocessing import merge_bounding_box_list
from .geoprocessing import new_raster_from_base
from .geoprocessing import numpy_array_to_raster
from .geoprocessing import raster_calculator
from .geoprocessing import raster_map
from .geoprocessing import raster_reduce
from .geoprocessing import raster_to_numpy_array
from .geoprocessing import rasterize
from .geoprocessing import ReclassificationMissingValuesError
from .geoprocessing import reclassify_raster
from .geoprocessing import reproject_vector
from .geoprocessing import shapely_geometry_to_vector
from .geoprocessing import stitch_rasters
from .geoprocessing import transform_bounding_box
from .geoprocessing import warp_raster
from .geoprocessing import zonal_statistics
from .geoprocessing_core import calculate_slope
from .geoprocessing_core import raster_band_percentile
from .slurm_utils import log_warning_if_gdal_will_exhaust_slurm_memory
try:
__version__ = version('pygeoprocessing')
except PackageNotFoundError:
# package is not installed
pass
# Programmatically defining __all__ based on what's been imported.
# Thus, the imports are the source of truth for __all__.
__all__ = ('calculate_slope', 'raster_band_percentile',
'ReclassificationMissingValuesError')
exclude_set = {'log_warning_if_gdal_will_exhaust_slurm_memory'}
for attrname in [k for k in locals().keys()]:
try:
if (isinstance(getattr(geoprocessing, attrname), types.FunctionType)
and attrname not in exclude_set):
__all__ += (attrname,)
except AttributeError:
pass
LOGGER = logging.getLogger(__name__)
LOGGER.addHandler(logging.NullHandler()) # silence logging by default
# these are bit masks for the known PyGeoprocessing types
UNKNOWN_TYPE = 0
RASTER_TYPE = 1
VECTOR_TYPE = 2
# Check GDAL's cache max vs SLURM memory if we're on slurm.
log_warning_if_gdal_will_exhaust_slurm_memory()