Skip to main content

DigitalArzEngine

DigitalArzEngine is a Python library designed to streamline raster data processing by extending the capabilities of the rasterio library. It provides a suite of tools for efficient geospatial transformations, mosaicing, and analysis, making it ideal for researchers, analysts, and developers working with geospatial raster data.

🚀 Features

  • Mosaicing: Seamlessly merge multiple raster datasets into a unified output.
  • Summary Statistics: Extract key metrics such as minimum, maximum, mean, and standard deviation from raster layers.
  • Reprojection & Resampling: Transform raster datasets to different coordinate systems and resolutions with ease.
  • Clipping & Masking: Apply geometric masks or clip rasters to specific regions of interest.
  • Pixel-wise Analysis: Enable pixel-level operations for customized raster computations.
  • Efficient I/O Handling: Support for reading, writing, and converting between various raster formats.

📦 Installation

To install the library using pip:

pip install digitalarzengine

📚 DataManager Utility Class

The DataManager class is a powerful and modular tool for handling geospatial data using SQLite databases. It supports structured storage of JSON records alongside geometric data (as WKB), with metadata tracking, querying, and integration with GeoPandas.

✅ Benefits and Usage

  • Structured Storage: Stores geospatial records (geometry + attributes) in a portable .db format.
  • Metadata Management: Tracks field names, geometry columns, and record counts.
  • Geometry Support: Accepts and stores geometries as WKB with support for reprojection to EPSG:4326.
  • Integration with GeoPandas: Easily convert the stored data into DataFrames and GeoDataFrames.
  • Custom Query Support: Run filtered SQL queries and retrieve results as structured pandas objects.
  • Extendable Schema: Dynamically add and update fields in your dataset.

🔧 Example Use-Cases

  • Saving extracted geospatial features from remote sensing workflows.
  • Iteratively storing geospatial model outputs with spatial context.
  • Lightweight local spatial database for machine learning input.

🔄 Core Methods

  • add_record, update_record, delete_record, get_record
  • get_data_as_df, get_data_as_gdf, get_gdf_list_under_aoi
  • record_exists, change_key, add_column, update_column
  • Context manager support (with DataManager(...) as dm:)

This utility class is designed to complement the raster processing tools in DigitalArzEngine, making it easier to work with both raster and vector data consistently.


🗃️ DBManager Utility Class

The DBManager class provides a secure and flexible way to interact with PostgreSQL/PostGIS databases. It builds SQLAlchemy engines from settings and supports reading data directly into Pandas or GeoPandas.

✅ Benefits and Usage

  • Secure Configuration: Pulls database credentials from a centralized encrypted config using CryptoUtils.
  • Flexible Access: Supports multiple environments or databases through the from_config method.
  • SQLAlchemy Integration: Simplifies connection management and avoids hardcoding sensitive details.
  • Read GeoData: Loads spatial tables directly into GeoDataFrame using read_postgis.
  • Exclude Geometry When Needed: Supports reading attribute-only tables as plain DataFrames.

🔧 Example Use-Cases

    import os
from digitalarzengine.digitalarzengine_settings import DATA_DIR
from digitalarzengine.adapters.data_manager import DataManager

output_dir = os.path.join(DATA_DIR, 'pak', 'snow_cover/stats')
data_manager = DataManager(output_dir, base_name="snow_cover_normal_data",
                           purpose="snow cover normal data from 2001 to 2024")
data_manager.add_record("key_value", {})
  • Connecting securely to remote geospatial databases for querying.
  • Reading and processing large PostGIS tables as GeoDataFrames.
  • Integrating web dashboards or data pipelines with PostgreSQL/PostGIS backends.

🔄 Core Methods

  • from_config(db_key): Load credentials and settings from DATABASES
  • get_engine(): Return SQLAlchemy engine object
  • read_as_geo_dataframe(): Read spatial data into GeoDataFrame
  • read_as_dataframe(): Read tabular data with option to exclude geometry
  • get_geometry_columns(): Identify spatial fields in the schema

⚙️ Configuration Example

Below is a sample DATABASES configuration dictionary to be placed in digitalarzengine/settings.py:

DATABASES = {
    "drm": {
        "ENGINE": "postgresql+psycopg2",
        "NAME": "drm",
        "USER": "dafast",
        "PASSWORD": "***********************************",
        "HOST": os.getenv("DB_HOST", "localhost"),
        "PORT": "5432",
    }
}

⚠️ Note: The password here is shown encrypted. It should be decrypted using CryptoUtils at runtime.

The DBManager is ideal for scenarios where spatial data needs to be read or processed securely from enterprise databases, complementing local DataManager workflows.

For more advanced usage patterns and custom queries, see the source or documentation site (coming soon).

👨‍💻 Developed by

Ather Ashraf Geospatial Data Scientist and AI Specialist


Metadata

Release files for digitalarzengine 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for digitalarzengine 0.6.0
File Size Uploaded
digitalarzengine-0.6.0.tar.gz 201.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for digitalarzengine 0.6.0
File Interpreter ABI Platform
digitalarzengine-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 428.7 kB

Release files / digitalarzengine-0.6.0.tar.gz

Download URL digitalarzengine-0.6.0.tar.gz
Size 201.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c6b817027cc1cab43c2edc53b8213368af3b48e3c85e1d94e75e8b2d6e3cd4ad
BLAKE2b-256 checksum
How to use checksums
b732a06b79dd90efdbb9e7a14404ceba57575de9f97cf9431f6948aa83bb62e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.9

Release files / digitalarzengine-0.6.0-py3-none-any.whl

Download URL digitalarzengine-0.6.0-py3-none-any.whl
Size 226.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b09fc31a4401f50c3048bc654bc15fed19e6ce8b201604c072afc3203ab772f4
BLAKE2b-256 checksum
How to use checksums
39b1253d87ec583e63146bc0f0bfef4dc5ab3361cf7d775c650dcc429144e0a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.9

Release history Release notifications | RSS feed

0.6.1

2 release files

This release

0.6.0 This release

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.19

2 release files

0.4.18

2 release files

0.4.17

2 release files

0.4.16

2 release files

0.4.15

2 release files

0.4.14

2 release files

0.4.13

2 release files

0.4.12

2 release files

0.4.11

2 release files

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page