[![Documentation Status](https://readthedocs.org/projects/pyramids-gis/badge/?version=latest)](https://pyramids-gis.readthedocs.io/en/latest/?badge=latest)
[![Python Versions](https://img.shields.io/pypi/pyversions/pyramids-gis.png)](https://img.shields.io/pypi/pyversions/pyramids-gis)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/MAfarrag/Hapi.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/MAfarrag/Hapi/context:python)
![GitHub last commit](https://img.shields.io/github/last-commit/MAfarrag/pyramids)
![GitHub forks](https://img.shields.io/github/forks/MAfarrag/pyramids?style=social)
![GitHub Repo stars](https://img.shields.io/github/stars/MAfarrag/pyramids?style=social)
[![codecov](https://codecov.io/gh/Serapieum-of-alex/pyramids/branch/main/graph/badge.svg?token=g0DV4dCa8N)](https://codecov.io/gh/Serapieum-of-alex/pyramids)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/5e3aa4d0acc843d1a91caf33545ecf03)](https://www.codacy.com/gh/Serapieum-of-alex/pyramids/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Serapieum-of-alex/pyramids&utm_campaign=Badge_Grade)
![GitHub commits since latest release (by SemVer including pre-releases)](https://img.shields.io/github/commits-since/mafarrag/pyramids/0.5.0?include_prereleases&style=plastic)
![GitHub last commit](https://img.shields.io/github/last-commit/mafarrag/pyramids)
Current release info
====================
| Name | Downloads | Version | Platforms |
|----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [![Conda Recipe](https://img.shields.io/badge/recipe-pyramids-green.svg)](https://anaconda.org/conda-forge/pyramids) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pyramids.svg)](https://anaconda.org/conda-forge/pyramids) [![Downloads](https://pepy.tech/badge/pyramids-gis)](https://pepy.tech/project/pyramids-gis) [![Downloads](https://pepy.tech/badge/pyramids-gis/month)](https://pepy.tech/project/pyramids-gis) [![Downloads](https://pepy.tech/badge/pyramids-gis/week)](https://pepy.tech/project/pyramids-gis) ![PyPI - Downloads](https://img.shields.io/pypi/dd/pyramids-gis?color=blue&style=flat-square) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/pyramids.svg)](https://anaconda.org/conda-forge/pyramids) [![PyPI version](https://badge.fury.io/py/pyramids-gis.svg)](https://badge.fury.io/py/pyramids-gis) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/pyramids.svg)](https://anaconda.org/conda-forge/pyramids) [![Join the chat at https://gitter.im/Hapi-Nile/Hapi](https://badges.gitter.im/Hapi-Nile/Hapi.svg)](https://gitter.im/Hapi-Nile/Hapi?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) |
pyramids - GIS utility package
=====================================================================
**pyramids** is a GIS utility package using gdal, ....
pyramids
![1](/docs/source/_images/package-work-flow/overall.png)
Main Features
-------------
- GIS modules to enable the modeler to fully prepare the meteorological inputs and do all the preprocessing
needed to build the model (align rasters with the DEM), in addition to various methods to manipulate and
convert different forms of distributed data (rasters, NetCDF, shapefiles)
Future work
-------------
- Developing a DEM processing module for generating the river network at different DEM spatial resolutions.
Installing pyramids
===============
Installing `pyramids` from the `conda-forge` channel can be achieved by:
```
conda install -c conda-forge pyramids=0.7.0
```
It is possible to list all the versions of `pyramids` available on your platform with:
```
conda search pyramids --channel conda-forge
```
## Install from GitHub
to install the last development to time, you can install the library from GitHub
```
pip install git+https://github.com/Serapieum-of-alex/pyramids
```
## pip
to install the last release, you can easily use pip
```
pip install pyramids-gis==0.7.0
```
Quick start
===========
```
>>> import pyramids
```
=======
History
=======
0.1.0 (2022-05-24)
------------------
* First release on PyPI.
0.2.9 (2022-12-19)
------------------
* Use environment.yaml and requirements.txt instead of pyproject.toml and replace poetry env by conda env
0.2.10 (2022-12-25)
------------------
* lock numpy version to 1.23.5 as conda-forge can not install 1.24.0
0.2.11 (2022-12-27)
------------------
* fix bug in pypi package names in requirements.txt file
0.2.11 (2023-01-14)
------------------
* add utils module for functions dealing with compressing files, and others utility functions
0.3.0 (2023-01-23)
------------------
* add array module to deal with any array operations.
* add openDataset, getEPSG create SpatialReference, and setNoDataValue utility function, getCellCoords, ...
* add rasterToPolygon, PolygonToRaster, rasterToGeoDataFrame, conversion between ogr DataSource and GeoDataFrame.
0.3.1 (2023-01-25)
------------------
* add pyarrow to use parquet data type for saving dataframes and geodataframes
* add H3 indexing package, and add new module indexing with functions to convert geometries to indices back and forth.
* fix bug in calculating pivot point of the netcdf file
* rasterToDataFrame function will create geometries of the cells only based on the add_geometry parameter.
0.3.2 (2023-01-29)
------------------
* refactor code
* add documentation
* fix creating memory driver with compression in _createDataset
0.3.3 (2023-02-06)
------------------
* fix bug in reading the ogr drivers catalog for the vector class
* fix bug in creating rasterLike in the asciiToRaster method
0.4.0 (2023-04-11)
------------------
* Restructure the whole package to two main objects Dataset and FeatureCollection
* Add class for multiple Dataset "DataCube".
* Link both Dataset and FeatureCollection to convert between raster and vector data types.
* Remove rasterio and netcdf from dependencies and depend only on gdal.
* Test read rasters/netcdf from virtual file systems (aws, compressed)
* Add dunder methods for all classes.
* add plotting functionality and cleopatra (plotting package) as an optional package.
* remove loops and replace it with ufunc from numpy.
0.4.1 (2023-04-23)
------------------
* adjust all spatial operation functions to work with multi-band rasters.
* use gdal exceptions to capture runtime error of not finding the the file.
* add cluster method to dataset class.
* time_stamp attribute returns None if there is no time_stamp.
* restructure the no_data_value related functions.
* plot function can plot rgb image for multi-band rasters.
* to_file detect the driver type from the extension in the path.
0.4.2 (2023-04-27)
------------------
* fix bug in plotting dataset without specifying the band
* fix bug in passing ot not passing band index in case of multi band rasters
* change the bounds in to_dataset method to total_bounds tp get the bbox of the whole geometries in the gdf
* add convert_longitude method to convert longitude to range between -180 and 180
0.5.0 (2023-10-01)
------------------
Dataset
"""""""
* The dtype attribute is not initialized in the __init__, but initialized when using the dtype property.
* Create band_names setter method.
* add gdal_dtype, numpy_dtype, and dtype attribute to change between the dtype (data type general name), and the corresponding data type in numpy and gdal.
* Create color_table attribute, getter & setter property to set a symbology (assign color to different values in each band).
* The read_array method returns array with the same type as the dtype of the first band in the raster.
* add a setter method to the band_names property.
* The methods (create_driver_from_scratch, get_band_names) is converted to private method.
* The no_data_value check the dtype before setting any value.
* The convert_longitude used the gdal.Wrap method instead of making the calculation step by step.
* The to_polygon is converted to _band_to_polygon private method used in the clusters method.
* The to_geodataframe is converted to to_feature_collection. change the backend of the function to use the crop function is a vector mask is given.
* the to_crs takes an extra parameter "inplace".
* The locate_points is converted to map_to_array_coordinates.
* Create array_to_map_coordinates to translate the array indices into real map coordinates.
DataCube
""""""""
* rename the read_separate_files to read_multiple_files, and enable it to use regex strings to filter files in a given directory.
* rename read_dataset to open_datacube.
* rename the data attribute to values
FeatureCollection
"""""""""""""""""
* Add a pivot_point attribute to return the top left corner/first coordinates of the polygon.
* Add a layers_count property to return the number of layers in the file.
* Add a layer_names property to return the layers names.
* Add a column property to return column names.
* Add the file_name property to store the file name.
* Add the dtypes property to retrieve the data types of the columns in the file.
* Rename bounds to total_bounds.
* The _gdf_to_ds can convert the GeoDataFrame to a ogr.DataSource and to a gdal.Dataset.
* The create_point method returns a shapely point object or a GeoDataFrame if an epsg number is given.
0.5.1 (2023-11-27)
------------------
Dataset
"""""""
* revert the convert_longitude method to not use the gdal_wrap method as it is not working with the new version of gdal (newer tan 3.7.1).
* bump up versions.
0.5.2 (2023-12-27)
------------------
Dataset
"""""""
* add _iloc method to get the gdal band object by index.
* add stats method to calculate the statistics of the raster bands.
0.5.3 (2023-12-28)
------------------
Dataset
"""""""
* Introduce a new parameter touch to the crop method in the Dataset to enable considering the cells that most of the
cell lies inside the mask, not only the cells that lie entirely inside the mask.
* Introduce a new parameter inplace to the crop method in the Dataset to enable replacing the dataset object with the
new cropped dataset.
* Adjust the stats method to take a mask to calculate the stats inside this mask.
0.5.4 (2023-12-31)
------------------
Dataset
"""""""
* fix the un-updated array dimension bug in the crop method when the mask is a vector mask and the touch parameter is
True.
0.5.5 (2024-01-04)
------------------
Dataset
"""""""
* Count domain cells for a specific band.
0.5.6 (2024-01-09)
------------------
Dataset
"""""""
* create `create_overviews`, `recreate_overview`, `read_overview_array` methods, and `overview_count` attribute to
handle overviews.
* The `plot` method takes an extra parameters `overviews` and `overview_index` to enable plotting overviews instead
of the real values in the bands.
0.6.0 (2024-02-24)
------------------
* move the dem module to a separate package "digital-rivers".
0.7.0 (2024-06-01)
------------------
* install viz, dev, all packages through pip.
* create a separate module for the netcdf files.
* add configuration file and module for setting gdal configurations.
AbstractDataset
"""""""
* add `meta_data` property to return the metadata of the dataset.
* add `access` property to indicate the access mode of the dataset.
Dataset
"""""""
* add extra parameter `file_i` to the `read_file` method to read a specific file in a compressed file.
* initialize the `GDAL_TIFF_INTERNAL_MASK` configuration to `No`
* the add the `access` parameter to the constructor to set the access mode of the dataset.
* add the `band_units` property to return the units of the bands.
* the `__str__` and the `__repr__` methods return string numpy like data type (instead of the gdal constant) of the
dataset.
* add `meta_data` property setter to set any key:value as a metadata of the dataset.
* add `scale` and `offset` properties to set the scale and offset of the bands.
* add `copy` method to copy the dataset to memory.
* add `get_attribute_table`set_attribute_table` method to get/set the attribute table of a specific band.
* the `plot` method uses the rgb bands defined in the dataset plotting (if exist).
* add `create` method to create a new dataset from scratch.
* add `write_array` method to write an array to an existing dataset.
* add `get_mask` method to get the mask of a dataset band.
* add `band_color` method to get the color assigned to a specific band (RGB).
* add `get_band_by_color` method to get the band index by its color.
* add `get_histogram` method to get/calculate the histogram of a specific band.
* the `read_array` method takes and extra parameter `window` to lazily read a `window` of the raster, the window is
[xoff, yoff, x-window, y-window], the `window` can also be a geodataframe.
* add `get_block_arrangement` method divide the raster into tiles based on the block size.
* add tiff file writing options (compression/tile/tile_length)
* add `close` method to flush to desk and close a dataset.
* add `add_band` method to add an array as a band to an existing dataset.
* rename `pivot_point` to `top_left_corner` in the `create` method.
* the `to_file` method return a `Dataset` object pointing to the saved dataset rather than the need to re-read the
saved dataset after you save it.
Datacube
""""""""
* the `Datacube` is moved to a separate module `datacube`.
NetCDF
"""""""
* move all the netcdf related functions to a separate module `netcdf`.
FeatureCollection
"""""""""""""""""
* rename the `pivot_point` to `top_left_corner`
Deprecated
""""""""""
*Cropping a raster using a polygon is done now directly using gdal.wrap nand the the `_crop_with_polygon_by_rasterizing`
is deprecated.
* rename the interpolation method `nearest neighbour` to `nearest neighbor`.
Raw data
{
"_id": null,
"home_page": "https://github.com/Serapieum-of-alex/pyramids",
"name": "pyramids-gis",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "GIS, gdal",
"author": "Mostafa Farrag",
"author_email": "moah.farag@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/64/c8/f1c618c77ff626097e910f637e8499a69f6c803b32cce15574c07392c5f9/pyramids_gis-0.7.0.tar.gz",
"platform": null,
"description": "[![Documentation Status](https://readthedocs.org/projects/pyramids-gis/badge/?version=latest)](https://pyramids-gis.readthedocs.io/en/latest/?badge=latest)\n[![Python Versions](https://img.shields.io/pypi/pyversions/pyramids-gis.png)](https://img.shields.io/pypi/pyversions/pyramids-gis)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/MAfarrag/Hapi.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/MAfarrag/Hapi/context:python)\n\n![GitHub last commit](https://img.shields.io/github/last-commit/MAfarrag/pyramids)\n![GitHub forks](https://img.shields.io/github/forks/MAfarrag/pyramids?style=social)\n![GitHub Repo stars](https://img.shields.io/github/stars/MAfarrag/pyramids?style=social)\n[![codecov](https://codecov.io/gh/Serapieum-of-alex/pyramids/branch/main/graph/badge.svg?token=g0DV4dCa8N)](https://codecov.io/gh/Serapieum-of-alex/pyramids)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/5e3aa4d0acc843d1a91caf33545ecf03)](https://www.codacy.com/gh/Serapieum-of-alex/pyramids/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Serapieum-of-alex/pyramids&utm_campaign=Badge_Grade)\n\n![GitHub commits since latest release (by SemVer including pre-releases)](https://img.shields.io/github/commits-since/mafarrag/pyramids/0.5.0?include_prereleases&style=plastic)\n![GitHub last commit](https://img.shields.io/github/last-commit/mafarrag/pyramids)\n\nCurrent release info\n====================\n\n| Name | Downloads | Version | Platforms |\n|----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [![Conda Recipe](https://img.shields.io/badge/recipe-pyramids-green.svg)](https://anaconda.org/conda-forge/pyramids) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pyramids.svg)](https://anaconda.org/conda-forge/pyramids) [![Downloads](https://pepy.tech/badge/pyramids-gis)](https://pepy.tech/project/pyramids-gis) [![Downloads](https://pepy.tech/badge/pyramids-gis/month)](https://pepy.tech/project/pyramids-gis) [![Downloads](https://pepy.tech/badge/pyramids-gis/week)](https://pepy.tech/project/pyramids-gis) ![PyPI - Downloads](https://img.shields.io/pypi/dd/pyramids-gis?color=blue&style=flat-square) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/pyramids.svg)](https://anaconda.org/conda-forge/pyramids) [![PyPI version](https://badge.fury.io/py/pyramids-gis.svg)](https://badge.fury.io/py/pyramids-gis) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/pyramids.svg)](https://anaconda.org/conda-forge/pyramids) [![Join the chat at https://gitter.im/Hapi-Nile/Hapi](https://badges.gitter.im/Hapi-Nile/Hapi.svg)](https://gitter.im/Hapi-Nile/Hapi?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) |\n\npyramids - GIS utility package\n=====================================================================\n**pyramids** is a GIS utility package using gdal, ....\n\npyramids\n\n![1](/docs/source/_images/package-work-flow/overall.png)\n\nMain Features\n-------------\n\n- GIS modules to enable the modeler to fully prepare the meteorological inputs and do all the preprocessing\n needed to build the model (align rasters with the DEM), in addition to various methods to manipulate and\n convert different forms of distributed data (rasters, NetCDF, shapefiles)\n\nFuture work\n-------------\n\n- Developing a DEM processing module for generating the river network at different DEM spatial resolutions.\n\nInstalling pyramids\n===============\n\nInstalling `pyramids` from the `conda-forge` channel can be achieved by:\n\n```\nconda install -c conda-forge pyramids=0.7.0\n```\n\nIt is possible to list all the versions of `pyramids` available on your platform with:\n\n```\nconda search pyramids --channel conda-forge\n```\n\n## Install from GitHub\n\nto install the last development to time, you can install the library from GitHub\n\n```\npip install git+https://github.com/Serapieum-of-alex/pyramids\n```\n\n## pip\n\nto install the last release, you can easily use pip\n\n```\npip install pyramids-gis==0.7.0\n```\n\nQuick start\n===========\n\n```\n >>> import pyramids\n```\n\n\n=======\nHistory\n=======\n\n0.1.0 (2022-05-24)\n------------------\n\n* First release on PyPI.\n\n0.2.9 (2022-12-19)\n------------------\n\n* Use environment.yaml and requirements.txt instead of pyproject.toml and replace poetry env by conda env\n\n0.2.10 (2022-12-25)\n------------------\n\n* lock numpy version to 1.23.5 as conda-forge can not install 1.24.0\n\n0.2.11 (2022-12-27)\n------------------\n\n* fix bug in pypi package names in requirements.txt file\n\n0.2.11 (2023-01-14)\n------------------\n\n* add utils module for functions dealing with compressing files, and others utility functions\n\n0.3.0 (2023-01-23)\n------------------\n\n* add array module to deal with any array operations.\n* add openDataset, getEPSG create SpatialReference, and setNoDataValue utility function, getCellCoords, ...\n* add rasterToPolygon, PolygonToRaster, rasterToGeoDataFrame, conversion between ogr DataSource and GeoDataFrame.\n\n0.3.1 (2023-01-25)\n------------------\n* add pyarrow to use parquet data type for saving dataframes and geodataframes\n* add H3 indexing package, and add new module indexing with functions to convert geometries to indices back and forth.\n* fix bug in calculating pivot point of the netcdf file\n* rasterToDataFrame function will create geometries of the cells only based on the add_geometry parameter.\n\n0.3.2 (2023-01-29)\n------------------\n* refactor code\n* add documentation\n* fix creating memory driver with compression in _createDataset\n\n0.3.3 (2023-02-06)\n------------------\n* fix bug in reading the ogr drivers catalog for the vector class\n* fix bug in creating rasterLike in the asciiToRaster method\n\n0.4.0 (2023-04-11)\n------------------\n* Restructure the whole package to two main objects Dataset and FeatureCollection\n* Add class for multiple Dataset \"DataCube\".\n* Link both Dataset and FeatureCollection to convert between raster and vector data types.\n* Remove rasterio and netcdf from dependencies and depend only on gdal.\n* Test read rasters/netcdf from virtual file systems (aws, compressed)\n* Add dunder methods for all classes.\n* add plotting functionality and cleopatra (plotting package) as an optional package.\n* remove loops and replace it with ufunc from numpy.\n\n0.4.1 (2023-04-23)\n------------------\n* adjust all spatial operation functions to work with multi-band rasters.\n* use gdal exceptions to capture runtime error of not finding the the file.\n* add cluster method to dataset class.\n* time_stamp attribute returns None if there is no time_stamp.\n* restructure the no_data_value related functions.\n* plot function can plot rgb image for multi-band rasters.\n* to_file detect the driver type from the extension in the path.\n\n0.4.2 (2023-04-27)\n------------------\n* fix bug in plotting dataset without specifying the band\n* fix bug in passing ot not passing band index in case of multi band rasters\n* change the bounds in to_dataset method to total_bounds tp get the bbox of the whole geometries in the gdf\n* add convert_longitude method to convert longitude to range between -180 and 180\n\n0.5.0 (2023-10-01)\n------------------\nDataset\n\"\"\"\"\"\"\"\n* The dtype attribute is not initialized in the __init__, but initialized when using the dtype property.\n* Create band_names setter method.\n* add gdal_dtype, numpy_dtype, and dtype attribute to change between the dtype (data type general name), and the corresponding data type in numpy and gdal.\n* Create color_table attribute, getter & setter property to set a symbology (assign color to different values in each band).\n* The read_array method returns array with the same type as the dtype of the first band in the raster.\n* add a setter method to the band_names property.\n* The methods (create_driver_from_scratch, get_band_names) is converted to private method.\n* The no_data_value check the dtype before setting any value.\n* The convert_longitude used the gdal.Wrap method instead of making the calculation step by step.\n* The to_polygon is converted to _band_to_polygon private method used in the clusters method.\n* The to_geodataframe is converted to to_feature_collection. change the backend of the function to use the crop function is a vector mask is given.\n* the to_crs takes an extra parameter \"inplace\".\n* The locate_points is converted to map_to_array_coordinates.\n* Create array_to_map_coordinates to translate the array indices into real map coordinates.\n\nDataCube\n\"\"\"\"\"\"\"\"\n* rename the read_separate_files to read_multiple_files, and enable it to use regex strings to filter files in a given directory.\n* rename read_dataset to open_datacube.\n* rename the data attribute to values\n\nFeatureCollection\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n* Add a pivot_point attribute to return the top left corner/first coordinates of the polygon.\n* Add a layers_count property to return the number of layers in the file.\n* Add a layer_names property to return the layers names.\n* Add a column property to return column names.\n* Add the file_name property to store the file name.\n* Add the dtypes property to retrieve the data types of the columns in the file.\n* Rename bounds to total_bounds.\n* The _gdf_to_ds can convert the GeoDataFrame to a ogr.DataSource and to a gdal.Dataset.\n* The create_point method returns a shapely point object or a GeoDataFrame if an epsg number is given.\n\n0.5.1 (2023-11-27)\n------------------\nDataset\n\"\"\"\"\"\"\"\n* revert the convert_longitude method to not use the gdal_wrap method as it is not working with the new version of gdal (newer tan 3.7.1).\n* bump up versions.\n\n0.5.2 (2023-12-27)\n------------------\nDataset\n\"\"\"\"\"\"\"\n* add _iloc method to get the gdal band object by index.\n* add stats method to calculate the statistics of the raster bands.\n\n0.5.3 (2023-12-28)\n------------------\nDataset\n\"\"\"\"\"\"\"\n* Introduce a new parameter touch to the crop method in the Dataset to enable considering the cells that most of the\ncell lies inside the mask, not only the cells that lie entirely inside the mask.\n* Introduce a new parameter inplace to the crop method in the Dataset to enable replacing the dataset object with the\nnew cropped dataset.\n* Adjust the stats method to take a mask to calculate the stats inside this mask.\n\n0.5.4 (2023-12-31)\n------------------\nDataset\n\"\"\"\"\"\"\"\n* fix the un-updated array dimension bug in the crop method when the mask is a vector mask and the touch parameter is\nTrue.\n\n\n0.5.5 (2024-01-04)\n------------------\nDataset\n\"\"\"\"\"\"\"\n* Count domain cells for a specific band.\n\n\n0.5.6 (2024-01-09)\n------------------\nDataset\n\"\"\"\"\"\"\"\n* create `create_overviews`, `recreate_overview`, `read_overview_array` methods, and `overview_count` attribute to\nhandle overviews.\n* The `plot` method takes an extra parameters `overviews` and `overview_index` to enable plotting overviews instead\nof the real values in the bands.\n\n\n0.6.0 (2024-02-24)\n------------------\n* move the dem module to a separate package \"digital-rivers\".\n\n\n0.7.0 (2024-06-01)\n------------------\n* install viz, dev, all packages through pip.\n* create a separate module for the netcdf files.\n* add configuration file and module for setting gdal configurations.\n\nAbstractDataset\n\"\"\"\"\"\"\"\n* add `meta_data` property to return the metadata of the dataset.\n* add `access` property to indicate the access mode of the dataset.\n\n\nDataset\n\"\"\"\"\"\"\"\n* add extra parameter `file_i` to the `read_file` method to read a specific file in a compressed file.\n* initialize the `GDAL_TIFF_INTERNAL_MASK` configuration to `No`\n* the add the `access` parameter to the constructor to set the access mode of the dataset.\n* add the `band_units` property to return the units of the bands.\n* the `__str__` and the `__repr__` methods return string numpy like data type (instead of the gdal constant) of the\ndataset.\n* add `meta_data` property setter to set any key:value as a metadata of the dataset.\n* add `scale` and `offset` properties to set the scale and offset of the bands.\n* add `copy` method to copy the dataset to memory.\n* add `get_attribute_table`set_attribute_table` method to get/set the attribute table of a specific band.\n* the `plot` method uses the rgb bands defined in the dataset plotting (if exist).\n* add `create` method to create a new dataset from scratch.\n* add `write_array` method to write an array to an existing dataset.\n* add `get_mask` method to get the mask of a dataset band.\n* add `band_color` method to get the color assigned to a specific band (RGB).\n* add `get_band_by_color` method to get the band index by its color.\n* add `get_histogram` method to get/calculate the histogram of a specific band.\n* the `read_array` method takes and extra parameter `window` to lazily read a `window` of the raster, the window is\n[xoff, yoff, x-window, y-window], the `window` can also be a geodataframe.\n* add `get_block_arrangement` method divide the raster into tiles based on the block size.\n* add tiff file writing options (compression/tile/tile_length)\n* add `close` method to flush to desk and close a dataset.\n* add `add_band` method to add an array as a band to an existing dataset.\n* rename `pivot_point` to `top_left_corner` in the `create` method.\n* the `to_file` method return a `Dataset` object pointing to the saved dataset rather than the need to re-read the\nsaved dataset after you save it.\n\nDatacube\n\"\"\"\"\"\"\"\"\n* the `Datacube` is moved to a separate module `datacube`.\n\nNetCDF\n\"\"\"\"\"\"\"\n* move all the netcdf related functions to a separate module `netcdf`.\n\nFeatureCollection\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n* rename the `pivot_point` to `top_left_corner`\n\nDeprecated\n\"\"\"\"\"\"\"\"\"\"\n*Cropping a raster using a polygon is done now directly using gdal.wrap nand the the `_crop_with_polygon_by_rasterizing`\nis deprecated.\n* rename the interpolation method `nearest neighbour` to `nearest neighbor`.\n",
"bugtrack_url": null,
"license": "GNU General Public License v3",
"summary": "GIS utility package",
"version": "0.7.0",
"project_urls": {
"Homepage": "https://github.com/Serapieum-of-alex/pyramids"
},
"split_keywords": [
"gis",
" gdal"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "07e938e75626592e7b6a4ba14727dc79ac77450b85838222204fe0cd87f203c8",
"md5": "9366c2e3d0fb097eefc448c688459a76",
"sha256": "acc3bc62193e733f803fb565bb9674bac9beda8ba634052e26bd0aecea20559a"
},
"downloads": -1,
"filename": "pyramids_gis-0.7.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9366c2e3d0fb097eefc448c688459a76",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 110385,
"upload_time": "2024-07-12T12:20:49",
"upload_time_iso_8601": "2024-07-12T12:20:49.754823Z",
"url": "https://files.pythonhosted.org/packages/07/e9/38e75626592e7b6a4ba14727dc79ac77450b85838222204fe0cd87f203c8/pyramids_gis-0.7.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "64c8f1c618c77ff626097e910f637e8499a69f6c803b32cce15574c07392c5f9",
"md5": "d1db73e9d7c1bb912c9c250e7dffb620",
"sha256": "763ba486551cdd25f859ae8bb42376a5b918d63f469cdb0353514f374da7117a"
},
"downloads": -1,
"filename": "pyramids_gis-0.7.0.tar.gz",
"has_sig": false,
"md5_digest": "d1db73e9d7c1bb912c9c250e7dffb620",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 112804,
"upload_time": "2024-07-12T12:20:51",
"upload_time_iso_8601": "2024-07-12T12:20:51.630212Z",
"url": "https://files.pythonhosted.org/packages/64/c8/f1c618c77ff626097e910f637e8499a69f6c803b32cce15574c07392c5f9/pyramids_gis-0.7.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-12 12:20:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Serapieum-of-alex",
"github_project": "pyramids",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "pyramids-gis"
}