Skip to main content

Tools for working with Geographical Information System Rasters

Project description

BuildStatus CoverageStatus PyPiVersion PyPiDownloads

The GeoRasters package is a python module that provides a fast and flexible tool to work with GIS raster files. It provides the GeoRaster class, which makes working with rasters quite transparent and easy. In a way it tries to do for rasters what GeoPandas does for geometries.

It includes tools to

  • Merge rasters

  • Plot rasters

  • Extract information from rasters

  • Given a point (lat,lon) find its location in a raster

  • Aggregate rasters to lower resolutions

  • Align two rasters of different sizes to common area and size

  • Get all the geographical information of raster

  • Create GeoTiff files easily

  • Load GeoTiff files as masked numpy rasters

Install

pip install git+git://github.com/ozak/georasters.git
pip install georasters

Example Usage: GeoRasters

import georasters as gr

# Load data
raster = './data/slope.tif'
data = gr.from_file(raster)

# Plot data
data.plot()

# Get some stats
data.mean()
data.sum()
data.std()

# Convert to Pandas DataFrame
df = data.to_pandas()

# Save transformed data to GeoTiff
data2 = data**2
data2.to_tiff('./data2')

# Algebra with rasters
data3 = np.sin(data.raster) / data2
data3.plot()

# Notice that by using the data.raster object,
# you can do any mathematical operation that handles
# Numpy Masked Arrays

# Find value at point (x,y) or at vectors (X,Y)
value = data.map_pixel(x,y)
Value = data.map_pixel(X,Y)

Example Merge GeoRasters:

import georasters as gr
import matplotlib.pyplot as plt

# Import raster
raster = os.path.join(DATA, 'pre1500.tif')
data = gr.from_file(raster)
(xmin,xsize,x,ymax,y,ysize)=data.geot

# Split raster in two
data1 = gr.GeoRaster(data.raster[:data.shape[0]/2,:], data.geot,
                      nodata_value=data.nodata_value, projection=data.projection, datatype=data.datatype)
data2 = gr.GeoRaster(data.raster[data.shape[0]/2:,:], (xmin,xsize,x,ymax+ysize*data.shape[0]/2,y,ysize),
                      nodata_value=data.nodata_value, projection=data.projection, datatype=data.datatype)

# Plot both parts and save them
plt.figure(figsize=(12,8))
data1.plot()
plt.savefig(os.path.join(DATA,'data1.png'), bbox_inches='tight')
./tests/data/data1.png
plt.figure(figsize=(12,8))
data2.plot()
plt.savefig(os.path.join(DATA,'data2.png'), bbox_inches='tight')
./tests/data/data2.png
# Generate merged raster

data3 = data1.union(data2)

# Plot it and save the figure

plt.figure(figsize=(12,8))
data3.plot()
plt.savefig(os.path.join(DATA,'data3.png'), bbox_inches='tight')
./tests/data/data3.png

Another Merge:

Example Usage: Other functions

import georasters as gr

# Get info on raster
NDV, xsize, ysize, GeoT, Projection, DataType = gr.get_geo_info(raster)

# Load raster
data = load_tiff(raster)

# Find location of point (x,y) on raster, e.g. to extract info at that location
col, row = gr.map_pixel(x,y,GeoT[1],GeoT[-1], GeoT[0],GeoT[3])
value = data[row,col]

# Agregate raster by summing over cells in order to increase pixel size by e.g. 10
gr.aggregate(data,NDV,(10,10))

# Align two rasters
data2 = load_tiff(raster2)
(alignedraster_o, alignedraster_a, GeoT_a) = gr.align_rasters(raster, raster2, how=np.mean)

# Create GeoRaster
A=gr.GeoRaster(data, GeoT, nodata_value=NDV)

# Load another raster
NDV, xsize, ysize, GeoT, Projection, DataType = gr.get_geo_info(raster2)
data = load_tiff(raster2)
B=gr.GeoRaster(data2, GeoT, nodata_value=NDV)

# Plot Raster
A.plot()

# Merge both rasters and plot
C=B.merge(A)
C.plot()

Issues

Find a bug? Report it via github issues by providing

  • a link to download the smallest possible raster and vector dataset necessary to reproduce the error

  • python code or command to reproduce the error

  • information on your environment: versions of python, gdal and numpy and system memory

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

georasters-0.4.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

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

georasters-0.4.macosx-10.9-intel.exe (81.4 kB view details)

Uploaded Source

File details

Details for the file georasters-0.4.tar.gz.

File metadata

  • Download URL: georasters-0.4.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for georasters-0.4.tar.gz
Algorithm Hash digest
SHA256 eaecb09d983a9f4cb695c0dc3807c2c60a88576235497206cf5b2692b2ee695d
MD5 f4336e154ab651ac2811c56a97a71613
BLAKE2b-256 ba9d25a657ea4c44a8889b11e4fa0bcf9459fe85d1a7d94d0eaa6cf7a50c1bab

See more details on using hashes here.

File details

Details for the file georasters-0.4.macosx-10.9-intel.exe.

File metadata

File hashes

Hashes for georasters-0.4.macosx-10.9-intel.exe
Algorithm Hash digest
SHA256 11af8dadb6389c475b37405284e72f0924208b23422f44dfcee81981ee5b222d
MD5 1b797815ff68d4da3585d2b360c2fc03
BLAKE2b-256 8bce93afcfeaebd10d9f82ea1f09dd8c3fd9e160dd385d8c4f5f5b2c035c9172

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