AR1/docs/import/raster.md

4.5 KiB

Raster Data Import

Import raster data from files, URLs, or cloud storage.

Overview

Raster data import supports multiple formats and import methods for grid-based spatial data.

Supported Formats

GeoTIFF

  • Extension: .tif, .tiff, .gtif
  • Description: Georeferenced TIFF format
  • Features: Full support for multi-band rasters, overviews, compression

Cloud Optimized GeoTIFF (COG)

  • Extension: .tif, .tiff
  • Description: Cloud-optimized GeoTIFF format
  • Features: Optimized for cloud storage and streaming
  • Benefits: Efficient access to large rasters

Other Formats

  • JPEG2000: .jp2, .j2k
  • PNG: .png (with world file)
  • NetCDF: .nc, .nc4
  • HDF: .hdf, .h5

Import Methods

File Upload

Upload raster files directly:

  1. Navigate to raster upload page
  2. Select file or drag and drop
  3. Add optional description
  4. Configure import options
  5. Click "Upload"

File Size Limit: Configurable (default: 100MB+)

URL Import

Import from web-accessible URLs:

  1. Navigate to URL import page
  2. Enter raster URL
  3. Configure import options
  4. Optionally schedule import
  5. Click "Import"

S3 Bucket Import

Import from AWS S3 buckets:

  1. Navigate to S3 import page
  2. Configure AWS credentials
  3. Select bucket and file
  4. Configure import mode
  5. Click "Import"

Import Modes:

  • Serve COG: Register as remote COG (no download)
  • Download PostGIS: Download and import to PostGIS

GeoServer Import

Import from GeoServer WCS:

  1. Navigate to GeoServer import page
  2. Select workspace and layer
  3. Configure import options
  4. Click "Import"

Import Process

Step 1: File Validation

Raster file is validated:

  • Format detection
  • GDAL availability check
  • File integrity verification
  • Metadata extraction

Step 2: Metadata Extraction

Metadata extracted using GDAL:

  • Spatial reference system (SRID)
  • Bounding box
  • Pixel size
  • Band count
  • Data type
  • NoData values

Step 3: PostGIS Import

Raster imported into PostGIS using raster2pgsql:

raster2pgsql -s {srid} -t {tile_size} {file} {schema}.{table} | psql

Options:

  • Tile Size: Default 256x256 pixels
  • Schema: Default 'public'
  • Table Name: Auto-generated or specified
  • SRID: Detected from file or specified

Step 4: Registration

Raster registered in system:

  • Metadata stored in aurora_raster_layers table
  • Layer name assigned
  • Access permissions set
  • Preview generation

Configuration Options

Tile Size

Configure raster tiling:

  • 256x256: Default, good for most cases
  • 512x512: Larger tiles, fewer database rows
  • 128x128: Smaller tiles, more database rows

Import Mode

For S3/URL imports:

  • Serve COG: Register remote COG, no local storage
  • Download PostGIS: Download and import to PostGIS

Compression

Configure raster compression:

  • None: No compression
  • JPEG: Lossy compression
  • LZW: Lossless compression
  • Deflate: Lossless compression

Example: GeoTIFF Upload

# Via API
curl -X POST "https://example.com/raster_upload.php" \
  -F "raster_file=@elevation.tif" \
  -F "description=Digital elevation model" \
  -F "tile_size=256x256"

Example: S3 Import

# Via API
curl -X POST "https://example.com/raster_bucket_import_api.php" \
  -d "url=s3://bucket/path/to/raster.tif" \
  -d "mode=download_postgis" \
  -d "aws_access_key_id=..." \
  -d "aws_secret_access_key=..."

Cloud Optimized GeoTIFF (COG)

COG format provides:

  • Efficient Streaming: Access specific regions without full download
  • Cloud Storage: Optimized for S3, Azure, GCS
  • Performance: Fast access to large rasters
  • Cost Effective: Reduced bandwidth usage

Creating COGs

Use GDAL to create COG:

gdal_translate input.tif output.tif \
  -of COG \
  -co COMPRESS=LZW \
  -co TILED=YES

Troubleshooting

Common Issues

GDAL not available

  • Install GDAL: apt-get install gdal-bin (Ubuntu)
  • Verify: gdalinfo --version
  • Check PATH configuration

Large file timeout

  • Increase PHP execution time
  • Use background import
  • Consider chunked upload

SRID not detected

  • Check raster metadata
  • Specify SRID manually
  • Verify projection information

Memory issues

  • Increase PHP memory limit
  • Use tile-based processing
  • Consider resampling large rasters