Skip to main content

Comprehensive LULC change analysis with Pontius-Aldwaik intensity methodology. Generate 24+ types of publication-ready scientific visualizations from raw raster data in minutes. Complete workflow automation with memory optimization for large datasets. Perfect for researchers, environmental scientists, and GIS analysts.

Project description

๐ŸŒ LULC Package - Land Use Land Cover Intensity Analysis

PyPI version Python 3.8+ License: MIT Downloads

The most comprehensive Python library for rigorous LULC change analysis. Generate 24+ types of publication-ready scientific visualizations in minutes using the peer-reviewed Pontius-Aldwaik intensity methodology.

๐ŸŽฏ Perfect for: Environmental Scientists โ€ข GIS Analysts โ€ข PhD Students โ€ข Researchers โ€ข Policy Analysts โ€ข Conservation Organizations


โœจ Why Choose LULC Package?

  • ๐Ÿ”ฌ Scientifically Rigorous: Exact implementation of peer-reviewed Pontius-Aldwaik methodology
  • โšก Performance Optimized: Memory-efficient processing handles >1GB rasters in <60 seconds
  • ๐ŸŽจ 24+ Visualization Types: Publication-ready plots with academic formatting standards
  • ๐Ÿ“Š Complete Analysis: Interval, Category, and Transition-level intensity analysis
  • ๐Ÿš€ Zero Learning Curve: Full analysis in just 3 lines of code
  • ๐Ÿง  Memory Smart: Advanced chunking and parallel processing for large datasets
  • ๐Ÿ“š Automated Workflows: Complete pipeline from raw rasters to scientific reports

๐Ÿš€ Installation

pip install landuse-intensity-analysis

Requirements: Python 3.8+ โ€ข numpy โ€ข pandas โ€ข matplotlib โ€ข rasterio โ€ข plotly


โšก Quick Start - Complete Analysis in 3 Lines

import landuse_intensity as lui

# Complete analysis with auto-detection of years from filenames
analyzer = lui.ContingencyTable.from_files([
    "landuse_2000.tiff", 
    "landuse_2010.tiff", 
    "landuse_2020.tiff"
])

# Generate all 24+ visualizations and scientific report
results = analyzer.intensity_analysis()

# Export publication-ready outputs
lui.export_complete_report(results, output_dir="my_analysis/")

Result: 24+ publication-ready visualizations + comprehensive scientific report in seconds!


๐ŸŽฏ Real-World Tutorial - Rio de Janeiro Analysis

Experience the full power with our executable tutorial using real data:

# Navigate to examples directory  
cd example_data

# Run complete analysis (generates 29 outputs in <60 seconds)
python tutorial_executavel.py

What you get:

  • โœ… 8 Interval-level intensity plots
  • โœ… 8 Category-level intensity plots
  • โœ… 8 Transition-level intensity plots
  • โœ… 5+ Interactive Sankey diagrams
  • โœ… Spatial change maps and hotspots
  • โœ… HTML + PNG outputs
  • โœ… Scientific interpretation and insights

๐Ÿ”ฌ Scientific Methodology

This package implements the Pontius-Aldwaik Intensity Analysis framework - the gold standard for LULC change analysis, providing three rigorous analytical levels:

๐Ÿ“ˆ Interval Level Analysis

  • Overall rate of change across time periods
  • Temporal patterns and acceleration/deceleration detection
  • Statistical significance testing

๐Ÿ“Š Category Level Analysis

  • Category-specific gain/loss patterns
  • Systematic vs. random change detection
  • Land use class vulnerability assessment

๐Ÿ”„ Transition Level Analysis

  • Pairwise transition intensities
  • Systematic transition identification
  • Change pathway prioritization

๐Ÿ”ฌ Key Publications

  • Pontius Jr., R.G. & Aldwaik, S.Z. (2012). "Intensity analysis to unify measurements of size and stationarity of land changes." Landscape and Urban Planning, 106(1), 103-114.
  • Aldwaik, S.Z. & Pontius Jr., R.G. (2012). "Map errors that could account for deviations from a uniform intensity of land change." Environmental Modelling & Software, 31, 36-49.

๐ŸŽจ Comprehensive Visualization Gallery

Core Analysis Plots

import landuse_intensity as lui

# Generate all visualization types
lui.plot_sankey(data, output_dir="plots/")                    # Transition flow diagrams
lui.plot_transition_matrix_heatmap(data, save_path="matrix.png")  # Change matrices
lui.plot_intensity_analysis(results, output_dir="analysis/")      # Complete intensity plots
lui.plot_spatial_changes(data_t1, data_t2, save_path="spatial.png")  # Spatial change maps

Available Plot Types (24+)

  • ๐ŸŒŠ Sankey Diagrams: Single-step, multi-step, energy-style transitions
  • ๐Ÿ”ฅ Heatmaps: Transition matrices, correlation matrices, intensity matrices
  • ๐Ÿ“Š Bar Charts: Loss/gain analysis, category intensities, temporal patterns
  • ๐Ÿ—บ๏ธ Spatial Maps: Change detection, persistence mapping, hotspot analysis
  • ๐Ÿ“ˆ Line Plots: Temporal trends, trajectory analysis, rate comparisons
  • ๐ŸŽฏ Scatter Plots: Category relationships, transition correlations
  • ๐Ÿ“‹ Summary Tables: Statistical summaries, validation reports, metadata

๐Ÿš€ Advanced Features & Architecture

Memory-Optimized Processing

# Handles large rasters efficiently
config = lui.AnalysisConfiguration(
    max_memory_gb=4.0,           # Automatic memory management
    block_size=1000,             # Chunked processing
    use_multiprocessing=True     # Parallel computation
)

analyzer = lui.ContingencyTable.from_files(files, config=config)

Clean Architecture Pattern

# Factory pattern for different analyzers
factory = lui.AnalyzerFactory()
intensity_analyzer = factory.create_analyzer("intensity")
persistence_analyzer = factory.create_analyzer("persistence")
trajectory_analyzer = factory.create_analyzer("trajectory")

# Manager for complex workflows
manager = lui.AnalyzerManager()
manager.add_dataset("2000", data_2000)
manager.add_dataset("2010", data_2010) 
manager.add_dataset("2020", data_2020)
results = manager.run_comprehensive_analysis()

Automated Reporting

# Generate complete scientific report
lui.create_complete_analysis_report(
    results, 
    output_dir="./publication_ready/",
    include_metadata=True,
    export_formats=['html', 'pdf', 'xlsx']
)

๐ŸŒ Real-World Applications

Brazilian Amazon Deforestation

# Monitor deforestation patterns in the Amazon
amazon_data = lui.load_amazon_tiles(["2018", "2019", "2020", "2021"])
deforestation_analysis = lui.analyze_forest_loss(amazon_data)

Urban Expansion Analysis

# Track urban growth in megacities
urban_growth = lui.analyze_urban_expansion(
    landsat_stack=["city_2000.tiff", "city_2010.tiff", "city_2020.tiff"],
    focus_classes=['urban', 'suburban', 'rural']
)

Agricultural Land Use Changes

# Agricultural expansion analysis
ag_analysis = lui.analyze_agricultural_transitions(
    crop_maps=crop_classification_stack,
    climate_data=precipitation_data
)

โšก Performance & Benchmarks

Memory Optimization

  • Large Datasets: Processes 1GB+ rasters using <2GB RAM
  • Chunked Processing: Automatic block-wise computation for unlimited dataset sizes
  • Parallel Computing: Multi-core processing reduces analysis time by 60-80%

Speed Benchmarks

Dataset Size Processing Time Memory Usage Outputs Generated
500x500 px <10 seconds <500MB 24+ plots
2000x2000 px <45 seconds <1.5GB Complete analysis
5000x5000 px <3 minutes <2GB Full report

Automated Optimization

# Auto-detection and configuration
config = lui.AnalysisConfiguration.auto_optimize(
    raster_files=['large_raster_1.tiff', 'large_raster_2.tiff'],
    available_memory_gb=8.0
)
# Automatically selects optimal chunk size, processing strategy

๐Ÿ“‚ Output Organization

All analyses are automatically organized into professional directory structures:

analysis_results/
โ”œโ”€โ”€ plots/
โ”‚   โ”œโ”€โ”€ interval_analysis/          # Temporal change plots
โ”‚   โ”œโ”€โ”€ category_analysis/          # Class-specific analyses  
โ”‚   โ”œโ”€โ”€ transition_analysis/        # Pairwise transitions
โ”‚   โ”œโ”€โ”€ sankey_diagrams/           # Flow visualizations
โ”‚   โ”œโ”€โ”€ spatial_maps/              # Geographic change maps
โ”‚   โ””โ”€โ”€ summary_plots/             # Overview visualizations
โ”œโ”€โ”€ tables/
โ”‚   โ”œโ”€โ”€ transition_matrices.xlsx   # All transition data
โ”‚   โ”œโ”€โ”€ intensity_analysis.xlsx    # Statistical results
โ”‚   โ””โ”€โ”€ summary_statistics.xlsx    # Key metrics
โ”œโ”€โ”€ reports/
โ”‚   โ”œโ”€โ”€ analysis_summary.html      # Interactive report
โ”‚   โ”œโ”€โ”€ methodology_notes.pdf      # Scientific documentation
โ”‚   โ””โ”€โ”€ validation_report.json     # Quality assessment
โ””โ”€โ”€ data/
    โ”œโ”€โ”€ contingency_tables/         # Core analysis matrices
    โ”œโ”€โ”€ processed_rasters/          # Cleaned input data
    โ””โ”€โ”€ metadata.json              # Analysis configuration

๐Ÿงช Data Validation & Quality Control

Built-in Validation

# Comprehensive data validation
validation = lui.validate_raster_stack([
    'landuse_2000.tiff', 
    'landuse_2010.tiff', 
    'landuse_2020.tiff'
])

if validation.is_valid:
    print("โœ… Data validation passed!")
else:
    print(f"โŒ Issues found: {validation.issues}")

Quality Checks Include

  • โœ… Spatial alignment and CRS consistency
  • โœ… Temporal sequence validation
  • โœ… Class consistency across time periods
  • โœ… NoData and missing value handling
  • โœ… Statistical outlier detection
  • โœ… Memory requirement estimation

๐Ÿ“š Example Data & Tutorials

Rio de Janeiro Case Study (Included)

# Load included example data
rio_data = lui.load_example_data("rio_de_janeiro")
print(f"Available years: {list(rio_data.keys())}")  # [2000, 2001, 2002, 2003, 2004]

# Quick analysis with real data
results = lui.run_comprehensive_analysis(
    data_stack=rio_data,
    output_dir="./rio_analysis/",
    class_names=['Water', 'Forest', 'Agriculture', 'Urban', 'Other']
)

Interactive Tutorials

  1. Basic Analysis: example_data/tutorial_basic.py
  2. Advanced Processing: example_data/tutorial_advanced.py
  3. Large Dataset Handling: example_data/tutorial_big_data.py
  4. Custom Visualization: example_data/tutorial_plotting.py

๐Ÿ› ๏ธ Professional Development

PyPI-Ready Package

This package follows all modern Python packaging standards:

# Development installation
git clone https://github.com/ils15/LandUse-Intensity-Analysis.git
cd LandUse-Intensity-Analysis
pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Code quality
black landuse_intensity/
flake8 landuse_intensity/
mypy landuse_intensity/

Continuous Integration

  • โœ… Automated testing on Python 3.8, 3.9, 3.10, 3.11, 3.12
  • โœ… Code quality checks (Black, flake8, mypy)
  • โœ… Documentation building and deployment
  • โœ… PyPI automated publishing

๐Ÿ”ง Advanced Configuration

Custom Analysis Workflows

# Create custom analysis pipeline
pipeline = lui.AnalysisPipeline([
    lui.processors.DataValidator(),
    lui.processors.SpatialAligner(), 
    lui.processors.IntensityCalculator(),
    lui.processors.VisualizationGenerator(),
    lui.processors.ReportExporter()
])

results = pipeline.run(input_data, config=custom_config)

Integration with Popular Libraries

# Works seamlessly with popular geospatial libraries
import geopandas as gpd
import rasterio
import xarray as xr

# Direct integration
gdf = gpd.read_file("study_area.shp")
masked_analysis = lui.analyze_within_boundaries(raster_stack, gdf)

# xarray integration  
ds = xr.open_dataset("climate_data.nc")
climate_aware_analysis = lui.analyze_with_climate(land_use_data, ds)

๐ŸŒ Community & Support

Getting Help

Contributing

We welcome contributions! See our Contributing Guide for details.

  1. Fork the project
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -am 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ Citation & License

Citation

If you use this library in your research, please cite:

@software{landuse_intensity_analysis_2025,
  title = {LULC Package: Land Use Land Cover Intensity Analysis},
  author = {LULC Package Contributors},
  url = {https://github.com/ils15/LandUse-Intensity-Analysis},
  version = {2.0.0a6},
  year = {2025},
  doi = {10.5281/zenodo.XXXXXXX}
}

License

This project is licensed under the MIT License - see the LICENSE file for details.


๐ŸŽฏ Version History

Latest Release: 2.0.0a6 (September 2025)

  • โœ… Complete architecture redesign with Clean Architecture pattern
  • โœ… 24+ visualization types with publication-ready outputs
  • โœ… Advanced memory optimization for large datasets
  • โœ… Automated workflow system with factory patterns
  • โœ… Comprehensive validation and quality control
  • โœ… Professional PyPI packaging and CI/CD

Previous Versions

  • 2.0.0a5: Enhanced visualization system
  • 1.x.x: Legacy implementation

๐Ÿš€ Ready to Analyze Land Use Changes?

Start your analysis in minutes:

pip install landuse-intensity-analysis

Transform your raw raster data into actionable scientific insights today! ๐ŸŒ


Developed with โค๏ธ for the scientific community

Supporting environmental research, conservation efforts, and evidence-based policy making worldwide.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

landuse_intensity_analysis-2.0.0a7.tar.gz (117.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

landuse_intensity_analysis-2.0.0a7-py3-none-any.whl (134.9 kB view details)

Uploaded Python 3

File details

Details for the file landuse_intensity_analysis-2.0.0a7.tar.gz.

File metadata

File hashes

Hashes for landuse_intensity_analysis-2.0.0a7.tar.gz
Algorithm Hash digest
SHA256 829968795a99d3445fd30aa8e102060192ee2118270256bdf22c3ecdff3d5ab6
MD5 a08fa3b76c557cb6a0a13880b90f1df2
BLAKE2b-256 bbc56dc6b4f305c57db2a0e67b36aaa7b01eb0873d9d1b153656f7e8e87b502c

See more details on using hashes here.

File details

Details for the file landuse_intensity_analysis-2.0.0a7-py3-none-any.whl.

File metadata

File hashes

Hashes for landuse_intensity_analysis-2.0.0a7-py3-none-any.whl
Algorithm Hash digest
SHA256 daa9a5b3dc5c53e9b675bc672eed8adc7fb782e64678cdaae68ee21969d6ed08
MD5 582219853d37733d0d69c464160a2066
BLAKE2b-256 dbc9650a79804f974a25a501209e0b0a17011caaf2d1f397e4a9404e2e6c1c93

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page