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