summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-29 13:36:48 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-29 13:36:48 +0000
commitc65c276f5dc7b5c616542bd16d6334c0cd04f714 (patch)
tree3ed8140d659225ce6780f38400fe959f9c45d510
parent49a535f4b002f1a38beb6810b181e288b21646a6 (diff)
automatic import of python-geotiff
-rw-r--r--.gitignore1
-rw-r--r--python-geotiff.spec734
-rw-r--r--sources1
3 files changed, 736 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..18e4274 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/geotiff-0.2.9.tar.gz
diff --git a/python-geotiff.spec b/python-geotiff.spec
new file mode 100644
index 0000000..ee7519e
--- /dev/null
+++ b/python-geotiff.spec
@@ -0,0 +1,734 @@
+%global _empty_manifest_terminate_build 0
+Name: python-geotiff
+Version: 0.2.9
+Release: 1
+Summary: A noGDAL tool for reading and writing geotiff files
+License: GNU Lesser General Public License v2 or later (LGPLv2+)
+URL: https://github.com/Open-Source-Agriculture/geotiff
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/87/03/0c458cc00b9f6a212eb8c02564ed490ef76bac950177415bf471d9448b7a/geotiff-0.2.9.tar.gz
+BuildArch: noarch
+
+Requires: python3-numpy
+Requires: python3-pyproj
+Requires: python3-tifffile
+Requires: python3-zarr
+Requires: python3-pytest
+
+%description
+# geotiff
+
+A noGDAL tool for reading geotiff files
+
+WARNING this package is under development and some features are unstable. Use with caution.
+
+Please support this project be giving it a [star on GitHub](https://github.com/Open-Source-Agriculture/geotiff)!
+
+### What is noGDAL?
+
+**[noGDAL](https://kipling.medium.com/nogdal-e5b60b114a1c)** is a philosophy for developing geospatial programs in python without using GDAL.
+
+### Installation
+
+Installing this package is as easy as:
+
+```
+pip install geotiff
+```
+
+There is also an Anaconda-based package available, published on [conda-forge](https://conda-forge.org/):
+
+```
+conda install -c conda-forge python-geotiff
+```
+
+For local development from sources, you can install geotiff with its development requirements using:
+
+```
+git clone git@github.com:KipCrossing/geotiff.git
+cd geotiff
+pip install -e .[dev]
+```
+
+### Usage
+
+#### Making the GeoTiff object
+
+```python
+from geotiff import GeoTiff
+
+geo_tiff = GeoTiff(tiff_file)
+```
+
+This will detect the crs code. If it's 'user defined' and you know what it should be, you may supply a crs code:
+
+```python
+geo_tiff = GeoTiff(tiff_file, crs_code=4326)
+```
+
+By default, the coordinates will be in WGS 84, however they can be specified by using the `as_crs` param:
+
+```python
+geo_tiff = GeoTiff(tiff_file, as_crs=7844)
+```
+
+Or you can use the original crs by setting `as_crs` to `None`:
+
+```python
+geo_tiff = GeoTiff(tiff_file, as_crs=None)
+```
+
+
+If the geotiff file has multiple bands, you can specify which band to use:
+
+```python
+geo_tiff = GeoTiff(tiff_file, band=1)
+```
+
+The default band is 0
+
+
+Get information (properties) about the geotiff:
+
+```python
+# the original crs code
+geo_tiff.crs_code
+# the current crs code
+geo_tiff.as_crs
+# the shape of the tiff
+geo_tiff.tif_shape
+# the bounding box in the as_crs CRS
+geo_tiff.tif_bBox
+# the bounding box as WGS 84
+geo_tiff.tif_bBox_wgs_84
+# the bounding box in the as_crs converted coordinates
+geo_tiff.tif_bBox_converted
+```
+
+Get coordinates of a point/pixel:
+
+```python
+i=5
+j=6
+# in the as_crs coords
+geo_tiff.get_coords(i, j)
+# in WGS 84 coords
+geo_tiff.get_wgs_84_coords(i, j)
+```
+
+#### Read the data
+
+To read the data, use the `.read()` method. This will return a [zarr](https://zarr.readthedocs.io/en/stable/api/core.html) array as often geotiff files cannot fit into memory.
+
+```python
+zarr_array = geo_tiff.read()
+```
+
+If you are confident that the data will fit into memory, you can convert it to a numpy array:
+
+```python
+import numpy as np
+
+array = np.array(zarr_array)
+```
+
+#### Read a section of a large tiff
+
+In many cases, you are only interested in a section of the tiff. For convenience, you can use the `.read_box()` method. This will return a numpy array.
+
+WARNING: This will fail if the box you are using is too large and the data cannot fit into memory.
+
+```python
+from geotiff import GeoTiff
+
+# in WGS 84
+area_box = [(138.632071411, -32.447310785), (138.644218874, -32.456979174)]
+geo_tiff = GeoTiff(tiff_file)
+array = geo_tiff.read_box(area_box)
+```
+
+*Note:* For the `area_box`, use the same crs as `as_crs`.
+
+In some cases, you may want some extra points/pixels around the outside of your `area_box`. This may be useful if you want to interpolate to points near the area_box boundary. To achieve this, use the `outer_points` param:
+
+array = geo_tiff.read_box(area_box, outer_points=2)
+
+This will get 2 extra perimeters of points around the outside of the the `area_box`.
+
+#### Getting bounding box information
+
+There are also some helper methods to get the bounding box of the resulting cut array:
+
+```python
+# col and row indexes of the cut area
+int_box = geo_tiff.get_int_box(area_box)
+# lon and lat coords of the cut points/pixels
+wgs_84_box = geo_tiff.get_bBox_wgs_84(area_box)
+```
+
+Again, you can also get bounding box for an extra n layers of points/pixels that directly surround the `area_box`:
+
+```python
+# col and row indexes of the cut area
+int_box = geo_tiff.get_int_box(area_box, outer_points = 2)
+# lon and lat coords of the cut points/pixels
+wgs_84_box = geo_tiff.get_bBox_wgs_84(area_box, outer_points = 2)
+```
+
+#### Get coordinates of a point/pixel
+
+You may want to get the coordinates of a value in your array:
+
+```python
+i=int_box[0][0] + 5
+j=int_box[0][1] + 6
+geo_tiff.get_wgs_84_coords(i, j)
+```
+
+#### Get coordinates of an array
+
+You may want to simply get all the coordinates in the array:
+
+```python
+array = geo_tiff.read_box(area_box, outer_points=2)
+lon_array, lat_array = geo_tiff.get_coord_arrays(area_box, outer_points=2)
+```
+
+This will return two arrays that are in the same shape as the array from the `read_box()` method. The output coords will be in the `as_crs` crs.
+
+If your tiff file is small and can fit into memory, simply:
+
+```python
+lon_array, lat_array = geo_tiff.get_coord_arrays()
+```
+
+### Contributing
+
+If you would like to contribute to this project, please fork this repo and make a PR with your patches.
+
+You can join the conversation by saying hi in the [project discussion board](https://github.com/KipCrossing/geotiff/discussions).
+
+To help users and other contributes, be sure to:
+- make doc blocs if appropriate
+- use typing wherever possible
+- format with black
+
+*Note:* The continuous integration has lint checking with **mypy**, so be sure to check it yourself before making a PR.
+
+### Project Road Map
+
+#### Core Features
+
+- [x] read tiff files (including BigTiff)
+- [ ] write tiff files (including BigTiff)
+- [x] convert between epsg coordinate systems
+- [ ] read a user defined CRS `32767` from tiff file
+- [x] cut a section (bounding box) of the tiff file
+- [x] convert the data to numpy arrays
+
+#### Additional features
+
+- [x] **(50%)** Full test coverage
+- [x] Typing with lint checking using mypy
+- [x] Formatted with black
+- [x] Documentation: doc blocs
+- [ ] Documentation: readthedocs
+
+
+
+
+%package -n python3-geotiff
+Summary: A noGDAL tool for reading and writing geotiff files
+Provides: python-geotiff
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-geotiff
+# geotiff
+
+A noGDAL tool for reading geotiff files
+
+WARNING this package is under development and some features are unstable. Use with caution.
+
+Please support this project be giving it a [star on GitHub](https://github.com/Open-Source-Agriculture/geotiff)!
+
+### What is noGDAL?
+
+**[noGDAL](https://kipling.medium.com/nogdal-e5b60b114a1c)** is a philosophy for developing geospatial programs in python without using GDAL.
+
+### Installation
+
+Installing this package is as easy as:
+
+```
+pip install geotiff
+```
+
+There is also an Anaconda-based package available, published on [conda-forge](https://conda-forge.org/):
+
+```
+conda install -c conda-forge python-geotiff
+```
+
+For local development from sources, you can install geotiff with its development requirements using:
+
+```
+git clone git@github.com:KipCrossing/geotiff.git
+cd geotiff
+pip install -e .[dev]
+```
+
+### Usage
+
+#### Making the GeoTiff object
+
+```python
+from geotiff import GeoTiff
+
+geo_tiff = GeoTiff(tiff_file)
+```
+
+This will detect the crs code. If it's 'user defined' and you know what it should be, you may supply a crs code:
+
+```python
+geo_tiff = GeoTiff(tiff_file, crs_code=4326)
+```
+
+By default, the coordinates will be in WGS 84, however they can be specified by using the `as_crs` param:
+
+```python
+geo_tiff = GeoTiff(tiff_file, as_crs=7844)
+```
+
+Or you can use the original crs by setting `as_crs` to `None`:
+
+```python
+geo_tiff = GeoTiff(tiff_file, as_crs=None)
+```
+
+
+If the geotiff file has multiple bands, you can specify which band to use:
+
+```python
+geo_tiff = GeoTiff(tiff_file, band=1)
+```
+
+The default band is 0
+
+
+Get information (properties) about the geotiff:
+
+```python
+# the original crs code
+geo_tiff.crs_code
+# the current crs code
+geo_tiff.as_crs
+# the shape of the tiff
+geo_tiff.tif_shape
+# the bounding box in the as_crs CRS
+geo_tiff.tif_bBox
+# the bounding box as WGS 84
+geo_tiff.tif_bBox_wgs_84
+# the bounding box in the as_crs converted coordinates
+geo_tiff.tif_bBox_converted
+```
+
+Get coordinates of a point/pixel:
+
+```python
+i=5
+j=6
+# in the as_crs coords
+geo_tiff.get_coords(i, j)
+# in WGS 84 coords
+geo_tiff.get_wgs_84_coords(i, j)
+```
+
+#### Read the data
+
+To read the data, use the `.read()` method. This will return a [zarr](https://zarr.readthedocs.io/en/stable/api/core.html) array as often geotiff files cannot fit into memory.
+
+```python
+zarr_array = geo_tiff.read()
+```
+
+If you are confident that the data will fit into memory, you can convert it to a numpy array:
+
+```python
+import numpy as np
+
+array = np.array(zarr_array)
+```
+
+#### Read a section of a large tiff
+
+In many cases, you are only interested in a section of the tiff. For convenience, you can use the `.read_box()` method. This will return a numpy array.
+
+WARNING: This will fail if the box you are using is too large and the data cannot fit into memory.
+
+```python
+from geotiff import GeoTiff
+
+# in WGS 84
+area_box = [(138.632071411, -32.447310785), (138.644218874, -32.456979174)]
+geo_tiff = GeoTiff(tiff_file)
+array = geo_tiff.read_box(area_box)
+```
+
+*Note:* For the `area_box`, use the same crs as `as_crs`.
+
+In some cases, you may want some extra points/pixels around the outside of your `area_box`. This may be useful if you want to interpolate to points near the area_box boundary. To achieve this, use the `outer_points` param:
+
+array = geo_tiff.read_box(area_box, outer_points=2)
+
+This will get 2 extra perimeters of points around the outside of the the `area_box`.
+
+#### Getting bounding box information
+
+There are also some helper methods to get the bounding box of the resulting cut array:
+
+```python
+# col and row indexes of the cut area
+int_box = geo_tiff.get_int_box(area_box)
+# lon and lat coords of the cut points/pixels
+wgs_84_box = geo_tiff.get_bBox_wgs_84(area_box)
+```
+
+Again, you can also get bounding box for an extra n layers of points/pixels that directly surround the `area_box`:
+
+```python
+# col and row indexes of the cut area
+int_box = geo_tiff.get_int_box(area_box, outer_points = 2)
+# lon and lat coords of the cut points/pixels
+wgs_84_box = geo_tiff.get_bBox_wgs_84(area_box, outer_points = 2)
+```
+
+#### Get coordinates of a point/pixel
+
+You may want to get the coordinates of a value in your array:
+
+```python
+i=int_box[0][0] + 5
+j=int_box[0][1] + 6
+geo_tiff.get_wgs_84_coords(i, j)
+```
+
+#### Get coordinates of an array
+
+You may want to simply get all the coordinates in the array:
+
+```python
+array = geo_tiff.read_box(area_box, outer_points=2)
+lon_array, lat_array = geo_tiff.get_coord_arrays(area_box, outer_points=2)
+```
+
+This will return two arrays that are in the same shape as the array from the `read_box()` method. The output coords will be in the `as_crs` crs.
+
+If your tiff file is small and can fit into memory, simply:
+
+```python
+lon_array, lat_array = geo_tiff.get_coord_arrays()
+```
+
+### Contributing
+
+If you would like to contribute to this project, please fork this repo and make a PR with your patches.
+
+You can join the conversation by saying hi in the [project discussion board](https://github.com/KipCrossing/geotiff/discussions).
+
+To help users and other contributes, be sure to:
+- make doc blocs if appropriate
+- use typing wherever possible
+- format with black
+
+*Note:* The continuous integration has lint checking with **mypy**, so be sure to check it yourself before making a PR.
+
+### Project Road Map
+
+#### Core Features
+
+- [x] read tiff files (including BigTiff)
+- [ ] write tiff files (including BigTiff)
+- [x] convert between epsg coordinate systems
+- [ ] read a user defined CRS `32767` from tiff file
+- [x] cut a section (bounding box) of the tiff file
+- [x] convert the data to numpy arrays
+
+#### Additional features
+
+- [x] **(50%)** Full test coverage
+- [x] Typing with lint checking using mypy
+- [x] Formatted with black
+- [x] Documentation: doc blocs
+- [ ] Documentation: readthedocs
+
+
+
+
+%package help
+Summary: Development documents and examples for geotiff
+Provides: python3-geotiff-doc
+%description help
+# geotiff
+
+A noGDAL tool for reading geotiff files
+
+WARNING this package is under development and some features are unstable. Use with caution.
+
+Please support this project be giving it a [star on GitHub](https://github.com/Open-Source-Agriculture/geotiff)!
+
+### What is noGDAL?
+
+**[noGDAL](https://kipling.medium.com/nogdal-e5b60b114a1c)** is a philosophy for developing geospatial programs in python without using GDAL.
+
+### Installation
+
+Installing this package is as easy as:
+
+```
+pip install geotiff
+```
+
+There is also an Anaconda-based package available, published on [conda-forge](https://conda-forge.org/):
+
+```
+conda install -c conda-forge python-geotiff
+```
+
+For local development from sources, you can install geotiff with its development requirements using:
+
+```
+git clone git@github.com:KipCrossing/geotiff.git
+cd geotiff
+pip install -e .[dev]
+```
+
+### Usage
+
+#### Making the GeoTiff object
+
+```python
+from geotiff import GeoTiff
+
+geo_tiff = GeoTiff(tiff_file)
+```
+
+This will detect the crs code. If it's 'user defined' and you know what it should be, you may supply a crs code:
+
+```python
+geo_tiff = GeoTiff(tiff_file, crs_code=4326)
+```
+
+By default, the coordinates will be in WGS 84, however they can be specified by using the `as_crs` param:
+
+```python
+geo_tiff = GeoTiff(tiff_file, as_crs=7844)
+```
+
+Or you can use the original crs by setting `as_crs` to `None`:
+
+```python
+geo_tiff = GeoTiff(tiff_file, as_crs=None)
+```
+
+
+If the geotiff file has multiple bands, you can specify which band to use:
+
+```python
+geo_tiff = GeoTiff(tiff_file, band=1)
+```
+
+The default band is 0
+
+
+Get information (properties) about the geotiff:
+
+```python
+# the original crs code
+geo_tiff.crs_code
+# the current crs code
+geo_tiff.as_crs
+# the shape of the tiff
+geo_tiff.tif_shape
+# the bounding box in the as_crs CRS
+geo_tiff.tif_bBox
+# the bounding box as WGS 84
+geo_tiff.tif_bBox_wgs_84
+# the bounding box in the as_crs converted coordinates
+geo_tiff.tif_bBox_converted
+```
+
+Get coordinates of a point/pixel:
+
+```python
+i=5
+j=6
+# in the as_crs coords
+geo_tiff.get_coords(i, j)
+# in WGS 84 coords
+geo_tiff.get_wgs_84_coords(i, j)
+```
+
+#### Read the data
+
+To read the data, use the `.read()` method. This will return a [zarr](https://zarr.readthedocs.io/en/stable/api/core.html) array as often geotiff files cannot fit into memory.
+
+```python
+zarr_array = geo_tiff.read()
+```
+
+If you are confident that the data will fit into memory, you can convert it to a numpy array:
+
+```python
+import numpy as np
+
+array = np.array(zarr_array)
+```
+
+#### Read a section of a large tiff
+
+In many cases, you are only interested in a section of the tiff. For convenience, you can use the `.read_box()` method. This will return a numpy array.
+
+WARNING: This will fail if the box you are using is too large and the data cannot fit into memory.
+
+```python
+from geotiff import GeoTiff
+
+# in WGS 84
+area_box = [(138.632071411, -32.447310785), (138.644218874, -32.456979174)]
+geo_tiff = GeoTiff(tiff_file)
+array = geo_tiff.read_box(area_box)
+```
+
+*Note:* For the `area_box`, use the same crs as `as_crs`.
+
+In some cases, you may want some extra points/pixels around the outside of your `area_box`. This may be useful if you want to interpolate to points near the area_box boundary. To achieve this, use the `outer_points` param:
+
+array = geo_tiff.read_box(area_box, outer_points=2)
+
+This will get 2 extra perimeters of points around the outside of the the `area_box`.
+
+#### Getting bounding box information
+
+There are also some helper methods to get the bounding box of the resulting cut array:
+
+```python
+# col and row indexes of the cut area
+int_box = geo_tiff.get_int_box(area_box)
+# lon and lat coords of the cut points/pixels
+wgs_84_box = geo_tiff.get_bBox_wgs_84(area_box)
+```
+
+Again, you can also get bounding box for an extra n layers of points/pixels that directly surround the `area_box`:
+
+```python
+# col and row indexes of the cut area
+int_box = geo_tiff.get_int_box(area_box, outer_points = 2)
+# lon and lat coords of the cut points/pixels
+wgs_84_box = geo_tiff.get_bBox_wgs_84(area_box, outer_points = 2)
+```
+
+#### Get coordinates of a point/pixel
+
+You may want to get the coordinates of a value in your array:
+
+```python
+i=int_box[0][0] + 5
+j=int_box[0][1] + 6
+geo_tiff.get_wgs_84_coords(i, j)
+```
+
+#### Get coordinates of an array
+
+You may want to simply get all the coordinates in the array:
+
+```python
+array = geo_tiff.read_box(area_box, outer_points=2)
+lon_array, lat_array = geo_tiff.get_coord_arrays(area_box, outer_points=2)
+```
+
+This will return two arrays that are in the same shape as the array from the `read_box()` method. The output coords will be in the `as_crs` crs.
+
+If your tiff file is small and can fit into memory, simply:
+
+```python
+lon_array, lat_array = geo_tiff.get_coord_arrays()
+```
+
+### Contributing
+
+If you would like to contribute to this project, please fork this repo and make a PR with your patches.
+
+You can join the conversation by saying hi in the [project discussion board](https://github.com/KipCrossing/geotiff/discussions).
+
+To help users and other contributes, be sure to:
+- make doc blocs if appropriate
+- use typing wherever possible
+- format with black
+
+*Note:* The continuous integration has lint checking with **mypy**, so be sure to check it yourself before making a PR.
+
+### Project Road Map
+
+#### Core Features
+
+- [x] read tiff files (including BigTiff)
+- [ ] write tiff files (including BigTiff)
+- [x] convert between epsg coordinate systems
+- [ ] read a user defined CRS `32767` from tiff file
+- [x] cut a section (bounding box) of the tiff file
+- [x] convert the data to numpy arrays
+
+#### Additional features
+
+- [x] **(50%)** Full test coverage
+- [x] Typing with lint checking using mypy
+- [x] Formatted with black
+- [x] Documentation: doc blocs
+- [ ] Documentation: readthedocs
+
+
+
+
+%prep
+%autosetup -n geotiff-0.2.9
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-geotiff -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.9-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..cfd11ca
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+48717235c88b36821bfd925c97128ea4 geotiff-0.2.9.tar.gz