raster-integrity 0.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. raster_integrity-0.0.2/.editorconfig +21 -0
  2. raster_integrity-0.0.2/.github/ISSUE_TEMPLATE/bug_report.md +25 -0
  3. raster_integrity-0.0.2/.github/ISSUE_TEMPLATE/config.yml +10 -0
  4. raster_integrity-0.0.2/.github/ISSUE_TEMPLATE/feature_request.md +18 -0
  5. raster_integrity-0.0.2/.github/workflows/docs-build.yml +55 -0
  6. raster_integrity-0.0.2/.github/workflows/docs.yml +41 -0
  7. raster_integrity-0.0.2/.github/workflows/installation.yml +31 -0
  8. raster_integrity-0.0.2/.github/workflows/macos.yml +43 -0
  9. raster_integrity-0.0.2/.github/workflows/pypi.yml +43 -0
  10. raster_integrity-0.0.2/.github/workflows/pypi_prod.yml +41 -0
  11. raster_integrity-0.0.2/.github/workflows/ubuntu.yml +48 -0
  12. raster_integrity-0.0.2/.github/workflows/windows.yml +35 -0
  13. raster_integrity-0.0.2/.gitignore +107 -0
  14. raster_integrity-0.0.2/.pre-commit-config.yaml +32 -0
  15. raster_integrity-0.0.2/AUTHORS.rst +13 -0
  16. raster_integrity-0.0.2/LICENSE +22 -0
  17. raster_integrity-0.0.2/MANIFEST.in +7 -0
  18. raster_integrity-0.0.2/PKG-INFO +85 -0
  19. raster_integrity-0.0.2/README.md +54 -0
  20. raster_integrity-0.0.2/data/.gitignore +6 -0
  21. raster_integrity-0.0.2/data/classified.asc +1163 -0
  22. raster_integrity-0.0.2/data/classified.asc.aux.xml +15 -0
  23. raster_integrity-0.0.2/data/classified.jpg +0 -0
  24. raster_integrity-0.0.2/data/classified.jpg.aux.xml +23 -0
  25. raster_integrity-0.0.2/data/classified.jpg.db +0 -0
  26. raster_integrity-0.0.2/data/classified.jpg.tsq +0 -0
  27. raster_integrity-0.0.2/data/classified.jpg.tsr +0 -0
  28. raster_integrity-0.0.2/data/classified.png +0 -0
  29. raster_integrity-0.0.2/data/classified.png.aux.xml +16 -0
  30. raster_integrity-0.0.2/data/classified.tif +0 -0
  31. raster_integrity-0.0.2/docs/authors.rst +1 -0
  32. raster_integrity-0.0.2/docs/changelog.md +11 -0
  33. raster_integrity-0.0.2/docs/contributing.md +114 -0
  34. raster_integrity-0.0.2/docs/examples/intro.ipynb +56 -0
  35. raster_integrity-0.0.2/docs/faq.md +1 -0
  36. raster_integrity-0.0.2/docs/index.md +19 -0
  37. raster_integrity-0.0.2/docs/installation.md +21 -0
  38. raster_integrity-0.0.2/docs/overrides/main.html +11 -0
  39. raster_integrity-0.0.2/docs/setup.md +4 -0
  40. raster_integrity-0.0.2/docs/usage.md +7 -0
  41. raster_integrity-0.0.2/mkdocs.yml +85 -0
  42. raster_integrity-0.0.2/pyproject.toml +82 -0
  43. raster_integrity-0.0.2/raster_integrity/__init__.py +1 -0
  44. raster_integrity-0.0.2/raster_integrity/integrity.py +45 -0
  45. raster_integrity-0.0.2/raster_integrity/setup.py +122 -0
  46. raster_integrity-0.0.2/raster_integrity/technique_factory.py +92 -0
  47. raster_integrity-0.0.2/raster_integrity/techniques/__init__.py +0 -0
  48. raster_integrity-0.0.2/raster_integrity/techniques/archiving.py +99 -0
  49. raster_integrity-0.0.2/raster_integrity/techniques/file_hash.py +73 -0
  50. raster_integrity-0.0.2/raster_integrity/techniques/merkle_tree_hash.py +262 -0
  51. raster_integrity-0.0.2/raster_integrity/techniques/technique.py +17 -0
  52. raster_integrity-0.0.2/raster_integrity/techniques/timestamping.py +174 -0
  53. raster_integrity-0.0.2/raster_integrity/verify.py +55 -0
  54. raster_integrity-0.0.2/raster_integrity.egg-info/PKG-INFO +85 -0
  55. raster_integrity-0.0.2/raster_integrity.egg-info/SOURCES.txt +66 -0
  56. raster_integrity-0.0.2/raster_integrity.egg-info/dependency_links.txt +1 -0
  57. raster_integrity-0.0.2/raster_integrity.egg-info/entry_points.txt +2 -0
  58. raster_integrity-0.0.2/raster_integrity.egg-info/requires.txt +11 -0
  59. raster_integrity-0.0.2/raster_integrity.egg-info/top_level.txt +1 -0
  60. raster_integrity-0.0.2/requirements-dev.txt +31 -0
  61. raster_integrity-0.0.2/requirements.txt +5 -0
  62. raster_integrity-0.0.2/setup.cfg +4 -0
  63. raster_integrity-0.0.2/tests/__init__.py +1 -0
  64. raster_integrity-0.0.2/tests/techniques/test_archiving.py +232 -0
  65. raster_integrity-0.0.2/tests/techniques/test_file_hash.py +225 -0
  66. raster_integrity-0.0.2/tests/techniques/test_merkle_tree_hash.py +692 -0
  67. raster_integrity-0.0.2/tests/techniques/test_timestamping.py +371 -0
  68. raster_integrity-0.0.2/tests/test_raster_integrity.py +288 -0
@@ -0,0 +1,21 @@
1
+ # http://editorconfig.org
2
+
3
+ root = true
4
+
5
+ [*]
6
+ indent_style = space
7
+ indent_size = 4
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+ charset = utf-8
11
+ end_of_line = lf
12
+
13
+ [*.bat]
14
+ indent_style = tab
15
+ end_of_line = crlf
16
+
17
+ [LICENSE]
18
+ insert_final_newline = false
19
+
20
+ [Makefile]
21
+ indent_style = tab
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Create a bug report to help us improve
4
+ labels: bug
5
+ ---
6
+
7
+ <!-- Please search existing issues to avoid creating duplicates. -->
8
+
9
+ ### Environment Information
10
+
11
+ - raster_integrity version:
12
+ - Python version:
13
+ - Operating System:
14
+
15
+ ### Description
16
+
17
+ Describe what you were trying to get done.
18
+ Tell us what happened, what went wrong, and what you expected to happen.
19
+
20
+ ### What I Did
21
+
22
+ ```
23
+ Paste the command(s) you ran and the output.
24
+ If there was a crash, please include the traceback here.
25
+ ```
@@ -0,0 +1,10 @@
1
+ contact_links:
2
+ - name: Ask questions
3
+ url: https://github.com/wdedulle/raster_integrity/discussions/categories/q-a
4
+ about: Please ask and answer questions here.
5
+ - name: Ideas
6
+ url: https://github.com/wdedulle/raster_integrity/discussions/categories/ideas
7
+ about: Please share your ideas here.
8
+ - name: Ask questions from the GIS community
9
+ url: https://gis.stackexchange.com
10
+ about: To get answers from questions in the GIS community, please ask and answer questions here.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Submit a feature request to help us improve
4
+ labels: Feature Request
5
+ ---
6
+
7
+ <!-- Please search existing issues to avoid creating duplicates. -->
8
+
9
+ ### Description
10
+
11
+ Describe the feature (e.g., new functions/tutorials) you would like to propose.
12
+ Tell us what can be achieved with this new feature and what's the expected outcome.
13
+
14
+ ### Source code
15
+
16
+ ```
17
+ Paste your source code here if have sample code to share.
18
+ ```
@@ -0,0 +1,55 @@
1
+ name: docs-build
2
+ on:
3
+ pull_request:
4
+ branches:
5
+ - main
6
+ - master
7
+
8
+ jobs:
9
+ deploy:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+ with:
14
+ fetch-depth: 0
15
+ - uses: actions/setup-python@v5
16
+ with:
17
+ python-version: "3.15"
18
+
19
+ - name: Install GDAL
20
+ run: |
21
+ python -m pip install --upgrade pip
22
+ pip install --find-links=https://girder.github.io/large_image_wheels --no-cache GDAL pyproj
23
+ - name: Test GDAL installation
24
+ run: |
25
+ python -c "from osgeo import gdal"
26
+ gdalinfo --version
27
+ - name: Install dependencies
28
+ run: |
29
+ pip install --no-cache-dir Cython
30
+ pip install -r requirements.txt -r requirements-dev.txt
31
+ pip install .
32
+ - name: Discover typos with codespell
33
+ run: codespell --skip="*.csv,*.geojson,*.json,*.js,*.html,*cff,*.pdf,./.git" --ignore-words-list="aci,hist"
34
+ - name: PKG-TEST
35
+ run: |
36
+ python -m pytest tests/
37
+ - name: Build docs
38
+ run: |
39
+ mkdocs build
40
+ # - name: Deploy to Netlify
41
+ # uses: nwtgck/actions-netlify@v2.0
42
+ # with:
43
+ # publish-dir: "./site"
44
+ # production-branch: main
45
+
46
+ # github-token: ${{ secrets.GITHUB_TOKEN }}
47
+ # deploy-message: "Deploy from GitHub Actions"
48
+ # enable-pull-request-comment: true
49
+ # enable-commit-comment: false
50
+ # overwrites-pull-request-comment: true
51
+ # env:
52
+ # NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
53
+ # NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
54
+ # timeout-minutes: 10
55
+
@@ -0,0 +1,41 @@
1
+ name: docs
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ permissions:
7
+ contents: write
8
+ jobs:
9
+ deploy:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+ with:
14
+ persist-credentials: true
15
+ fetch-depth: 0
16
+ - uses: actions/setup-python@v5
17
+ with:
18
+ python-version: "3.15"
19
+ - name: Install GDAL
20
+ run: |
21
+ python -m pip install --upgrade pip
22
+ pip install --no-cache-dir Cython
23
+ pip install --find-links=https://girder.github.io/large_image_wheels --no-cache GDAL
24
+ - name: Test GDAL installation
25
+ run: |
26
+ python -c "from osgeo import gdal"
27
+ gdalinfo --version
28
+ - name: Install dependencies
29
+ run: |
30
+ python -m pip install --upgrade pip
31
+ pip install --user --no-cache-dir Cython
32
+ pip install --user -r requirements.txt -r requirements-dev.txt
33
+ pip install .
34
+ - name: Discover typos with codespell
35
+ run: |
36
+ codespell --skip="*.csv,*.geojson,*.json,*.js,*.html,*cff,./.git" --ignore-words-list="aci,hist"
37
+ - name: PKG-TEST
38
+ run: |
39
+ python -m pytest tests/
40
+ - run: mkdocs gh-deploy --force
41
+
@@ -0,0 +1,31 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - main
5
+ - master
6
+ pull_request:
7
+ branches:
8
+ - main
9
+ - master
10
+
11
+
12
+ name: Linux installation
13
+ jobs:
14
+ test-ubuntu:
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ python-version: ["3.15"]
20
+
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ - name: Set up Python
24
+ uses: actions/setup-python@v5
25
+ with:
26
+ python-version: ${{ matrix.python-version }}
27
+
28
+ - name: Install package
29
+ run: pip install .
30
+ - name: Test import
31
+ run: python -c "import raster_integrity; print('raster_integrity import successful')"
@@ -0,0 +1,43 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - main
5
+ - master
6
+ pull_request:
7
+ branches:
8
+ - main
9
+ - master
10
+
11
+ name: macOS build
12
+ jobs:
13
+ test-macOS:
14
+ runs-on: ${{ matrix.os }}
15
+ name: ${{ matrix.os }} (${{ matrix.python-version}})
16
+
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ os: ["macOS-latest"]
21
+ python-version: ["3.15"]
22
+
23
+ steps:
24
+ - name: Checkout code
25
+ uses: actions/checkout@v4
26
+
27
+ - name: Set up Python
28
+ uses: actions/setup-python@v5
29
+ with:
30
+ python-version: ${{ matrix.python-version}}
31
+ - name: Install GDAL
32
+ run: |
33
+ brew install gdal
34
+ - name: Test GDAL installation
35
+ run: |
36
+ gdalinfo --version
37
+ - name: Install dependencies
38
+ run: |
39
+ python -m pip install --upgrade pip
40
+ pip install --no-cache-dir Cython
41
+ pip install -r requirements.txt
42
+ pip install -r requirements-dev.txt
43
+ pip install .
@@ -0,0 +1,43 @@
1
+ name: pypi
2
+
3
+ on:
4
+ release:
5
+ types: [created]
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ deploy:
10
+ runs-on: ubuntu-latest
11
+
12
+ environment:
13
+ name: testpypi
14
+
15
+ permissions:
16
+ id-token: write
17
+
18
+ steps:
19
+ - name: Checkout
20
+ uses: actions/checkout@v4
21
+
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: "3.x"
26
+
27
+ - name: Install dependencies
28
+ run: |
29
+ python -m pip install --upgrade pip
30
+ pip install setuptools wheel build twine
31
+
32
+ - name: Build package
33
+ run: |
34
+ python -m build
35
+
36
+ - name: Check distributions
37
+ run: |
38
+ twine check dist/*
39
+
40
+ - name: Publish to TestPyPI
41
+ uses: pypa/gh-action-pypi-publish@release/v1
42
+ with:
43
+ repository-url: https://test.pypi.org/legacy/
@@ -0,0 +1,41 @@
1
+ name: pypi_prod
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ jobs:
7
+ deploy:
8
+ runs-on: ubuntu-latest
9
+
10
+ environment:
11
+ name: pypi
12
+
13
+ permissions:
14
+ id-token: write
15
+
16
+ steps:
17
+ - name: Checkout
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Set up Python
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: "3.x"
24
+
25
+ - name: Install dependencies
26
+ run: |
27
+ python -m pip install --upgrade pip
28
+ pip install setuptools wheel build twine
29
+
30
+ - name: Build package
31
+ run: |
32
+ python -m build
33
+
34
+ - name: Check distributions
35
+ run: |
36
+ twine check dist/*
37
+
38
+ - name: Publish to TestPyPI
39
+ uses: pypa/gh-action-pypi-publish@release/v1
40
+ with:
41
+ repository-url: https://upload.pypi.org/legacy/
@@ -0,0 +1,48 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - main
5
+ - master
6
+ pull_request:
7
+ branches:
8
+ - main
9
+ - master
10
+
11
+ name: Linux build
12
+ jobs:
13
+ py-check:
14
+ runs-on: ${{ matrix.config.os }}
15
+ name: ${{ matrix.config.os }} (${{ matrix.config.py }})
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ config:
20
+ - { os: ubuntu-latest, py: "3.9" }
21
+ - { os: ubuntu-latest, py: "3.10" }
22
+ - { os: ubuntu-latest, py: "3.11" }
23
+ - { os: ubuntu-latest, py: "3.12" }
24
+ steps:
25
+ - name: Checkout Code
26
+ uses: actions/checkout@v4
27
+ - name: Setup Python
28
+ uses: actions/setup-python@v5
29
+ with:
30
+ python-version: ${{ matrix.config.py }}
31
+ - name: Install GDAL
32
+ run: |
33
+ python -m pip install --upgrade pip
34
+ pip install --no-cache-dir Cython
35
+ pip install --find-links=https://girder.github.io/large_image_wheels --no-cache GDAL
36
+ - name: Test GDAL installation
37
+ run: |
38
+ python -c "from osgeo import gdal"
39
+ gdalinfo --version
40
+ - name: Install dependencies
41
+ run: |
42
+ pip install --user -r requirements.txt
43
+ pip install --user -r requirements-dev.txt
44
+ pip install .
45
+ - name: PKG-TEST
46
+ run: |
47
+ python -m pytest tests/
48
+
@@ -0,0 +1,35 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - main
5
+ - master
6
+ pull_request:
7
+ branches:
8
+ - main
9
+ - master
10
+
11
+ name: Windows build
12
+ jobs:
13
+ test-windows:
14
+ runs-on: windows-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - name: Install miniconda
18
+ uses: conda-incubator/setup-miniconda@v2
19
+ with:
20
+ auto-activate-base: true
21
+ python-version: "3.15"
22
+
23
+ - name: Install GDAL
24
+ run: conda install -c conda-forge gdal --yes
25
+ - name: Test GDAL installation
26
+ run: |
27
+ python -c "from osgeo import gdal"
28
+ gdalinfo --version
29
+ - name: Install dependencies
30
+ run: |
31
+ python -m pip install --upgrade pip
32
+ pip install --no-cache-dir Cython
33
+ pip install -r requirements.txt
34
+ pip install -r requirements-dev.txt
35
+ pip install .
@@ -0,0 +1,107 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ private/
4
+ *.py[cod]
5
+ *$py.class
6
+
7
+ # C extensions
8
+ *.so
9
+
10
+ # Distribution / packaging
11
+ .Python
12
+ env/
13
+ build/
14
+ develop-eggs/
15
+ dist/
16
+ downloads/
17
+ private/
18
+ eggs/
19
+ .eggs/
20
+ lib/
21
+ lib64/
22
+ parts/
23
+ sdist/
24
+ var/
25
+ wheels/
26
+ *.egg-info/
27
+ .installed.cfg
28
+ *.egg
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ .hypothesis/
50
+ .pytest_cache/
51
+
52
+ # Translations
53
+ *.mo
54
+ *.pot
55
+
56
+ # Django stuff:
57
+ *.log
58
+ local_settings.py
59
+
60
+ # Flask stuff:
61
+ instance/
62
+ .webassets-cache
63
+
64
+ # Scrapy stuff:
65
+ .scrapy
66
+
67
+ # Sphinx documentation
68
+ docs/_build/
69
+
70
+ # PyBuilder
71
+ target/
72
+
73
+ # Jupyter Notebook
74
+ .ipynb_checkpoints
75
+
76
+ # pyenv
77
+ .python-version
78
+
79
+ # celery beat schedule file
80
+ celerybeat-schedule
81
+
82
+ # SageMath parsed files
83
+ *.sage.py
84
+
85
+ # dotenv
86
+ .env
87
+
88
+ # virtualenv
89
+ .venv
90
+ venv/
91
+ ENV/
92
+
93
+ # Spyder project settings
94
+ .spyderproject
95
+ .spyproject
96
+
97
+ # Rope project settings
98
+ .ropeproject
99
+
100
+ # mkdocs documentation
101
+ /site
102
+
103
+ # mypy
104
+ .mypy_cache/
105
+
106
+ # IDE settings
107
+ .vscode/
@@ -0,0 +1,32 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v6.0.0
4
+ hooks:
5
+ - id: check-toml
6
+ - id: check-yaml
7
+ - id: end-of-file-fixer
8
+ types: [python]
9
+ - id: trailing-whitespace
10
+ - id: requirements-txt-fixer
11
+ - id: check-added-large-files
12
+ args: ["--maxkb=10240"]
13
+
14
+ - repo: https://github.com/psf/black-pre-commit-mirror
15
+ rev: 26.10.1
16
+ hooks:
17
+ - id: black-jupyter
18
+
19
+ - repo: https://github.com/codespell-project/codespell
20
+ rev: v2.4.3
21
+ hooks:
22
+ - id: codespell
23
+ args:
24
+ [
25
+ "--ignore-words-list=aci,hist",
26
+ "--skip=*.csv,*.geojson,*.json,*.yml*.js,*.html,*cff,*.pdf, requirements*",
27
+ ]
28
+
29
+ - repo: https://github.com/kynan/nbstripout
30
+ rev: 0.9.1
31
+ hooks:
32
+ - id: nbstripout
@@ -0,0 +1,13 @@
1
+ =======
2
+ Credits
3
+ =======
4
+
5
+ Development Lead
6
+ ----------------
7
+
8
+ * Dedulle Wim <wim.dedulle@proton.me>
9
+
10
+ Contributors
11
+ ------------
12
+
13
+ None yet. Why not be the first?
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026, Dedulle Wim
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
@@ -0,0 +1,7 @@
1
+ include LICENSE
2
+ include README.md
3
+ include requirements.txt
4
+
5
+ recursive-exclude * __pycache__
6
+ recursive-exclude * *.py[co]
7
+
@@ -0,0 +1,85 @@
1
+ Metadata-Version: 2.4
2
+ Name: raster_integrity
3
+ Version: 0.0.2
4
+ Summary: Technical methods for checking the integrity of raster data
5
+ Author-email: Dedulle Wim <wim.dedulle@proton.me>
6
+ License: MIT License
7
+ Project-URL: Homepage, https://github.com/wdedulle/raster_integrity
8
+ Keywords: raster_integrity
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Natural Language :: English
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Requires-Python: >=3.8
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ License-File: AUTHORS.rst
21
+ Requires-Dist: bagit
22
+ Requires-Dist: cryptography
23
+ Requires-Dist: numpy
24
+ Requires-Dist: pymerkle
25
+ Requires-Dist: rfc3161_client
26
+ Provides-Extra: all
27
+ Requires-Dist: raster_integrity[extra]; extra == "all"
28
+ Provides-Extra: extra
29
+ Requires-Dist: pandas; extra == "extra"
30
+ Dynamic: license-file
31
+
32
+ # raster_integrity
33
+
34
+
35
+ [![image](https://img.shields.io/pypi/v/raster_integrity.svg)](https://pypi.python.org/pypi/raster_integrity)
36
+ [![image](https://img.shields.io/conda/vn/conda-forge/raster_integrity.svg)](https://anaconda.org/conda-forge/raster_integrity)
37
+
38
+ [![image](https://pyup.io/repos/github/wdedulle/raster_integrity/shield.svg)](https://pyup.io/repos/github/wdedulle/raster_integrity)
39
+
40
+
41
+ **Technical methods for checking the integrity of raster data**
42
+
43
+
44
+ - Free software: MIT License
45
+ - Documentation: https://wdedulle.github.io/raster_integrity
46
+
47
+
48
+ ## Features
49
+
50
+ - Setting up metadata for raster files: it includes common and custom raster information.
51
+ ```shell
52
+ python .\raster_integrity\setup.py -f .\data\classified.xyz -m "used_for"="classification for AI"
53
+ ```
54
+
55
+ - Creating integrity hash
56
+ ```shell
57
+ python .\raster_integrity\integrity.py -i .\data\classified.jpg -t me
58
+ 8eb3bdddc021b045622f9811ff925d132ad6274f0bba6546dcbf6014dac19bdf
59
+ ```
60
+ - Archive all artefacts with its integrity hash
61
+ ```shell
62
+ python .\raster_integrity\integrity.py -i .\data\classified.jpg -t ba -a root_hash=8eb3bdddc021b045622f9811ff925d132ad6274f0bba6546dcbf6014dac19bdf
63
+ .\data\classified_bagit
64
+ ```
65
+ - Seal the tagmanifest with timestamping
66
+ ```shell
67
+ python .\raster_integrity\integrity.py -i .\data\classified_bagit\tagmanifest-sha256.txt -t ts -a tsr_name=.\data\tagmanifest_cassified_jpg
68
+ .\data\tagmanifest_cassified_jpg.tsr
69
+ ```
70
+
71
+ - Verification - To Be
72
+ ```shell
73
+ python .\raster_integrity\verify.py -a file=.\data\classified_bagit\tagmanifest-sha256.txt -t ts -s .\data\classified.jpg.tsr
74
+ python .\raster_integrity\verify.py -a root_hash=8eb3bdddc021b045622f9811ff925d132ad6274f0bba6546dcbf6014dac19bdf -t me -s .\data\classified.jpg
75
+ ```
76
+
77
+ ## Required package
78
+ GDAL: Geospatial Data Abstraction Library version 3.13.3
79
+ ### Installation for Python 3.15
80
+ Wheel packages can be found at https://github.com/cgohlke/geospatial-wheels/releases
81
+
82
+ This a specific GDAL version 3.13.3 installation for Windows AMD64 with Python version 3.15.*
83
+ ```
84
+ pip install https://github.com/cgohlke/geospatial-wheels/releases/download/v2026.8.20/gdal-3.13.3-cp315-cp315-win_amd64.whl
85
+ ```