Skip to main content

A python library that generates fake geospatial data

Project description

https://badge.fury.io/py/fauxgeo.png https://travis-ci.org/wbierbower/fauxgeo.png?branch=master Documentation Status

A python library that generates simple OSGeo-supported rasters and vectors. The primary purpose for this library is to help test geoprocessing functions.

Requirements

fauxgeo 0.1.1 requires

  • NumPy

  • GDAL

  • affine == 1.0

Installation

pip install fauxgeo

Features

  • Raster Class

  • TestRaster Class

  • RasterFactory Class

Usage

The Raster Class

raster = Raster('path/to/geotiff')
raster.uri  # equals '/path/to/geotiff'
raster.get_band(1)  # returns 2d numpy array
raster.get_bands()  # returns 3d numpy array
raster.get_nodata()  # returns nodata value
raster.shape()  # returns 2-tuple (rows, cols)

The TestRaster Class

import numpy as np
from affine import Affine
import gdal

# set arguments
array = np.ones((3, 3))
affine = Affine.identity()
proj = 4326
datatype = gdal.GDT_Float64
nodata_val = -9999.0

# uses tempfile to create temporary file
test_raster = TestRaster(array, affine, proj, datatype, nodata_val)

# same functions as Raster class
raster.get_band(1)  # returns 2d numpy array
raster.get_bands()  # returns 3d numpy array
raster.get_nodata()  # returns nodata value
raster.shape()  # returns 2-tuple (rows, cols)

del test_raster  # cleans up temporary file on object deletion or program exit

The RasterFactory Class

from affine import Affine
import gdal

# set arguments
shape = (3, 3)
affine = Affine.identity()
proj = 4326
datatype = gdal.GDT_Float64
nodata_val = -9999

# initialize factory
factory = RasterFactory(proj, datatype, nodata_val, shape[0], shape[1], affine=affine)

# create test rasters
test_raster_1 = factory.uniform(5)  # returns raster with 1 band filled with 5's
test_raster_2 = factory.alternating(0, 1)
test_raster_3 = factory.random()
test_raster_4 = factory.horizontal_ramp(1, 10)  # interpolated from 1 to 10 across columns

Tests

python setup.py test

Planning

  • Add basic visualization functionality

  • Add Vector, TestVector, and VectorFactory classes

  • Add sample/default arguments for Raster classes to simplify raster creation

Notes

  • Look into object deletion depending on scope

History

0.1.1 (2015-03-15)

  • Raster, TestRaster, and RasterFactory classes added

0.1.0 (2015-01-21)

  • First release on PyPI.

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

fauxgeo-0.1.2.tar.gz (14.0 kB view hashes)

Uploaded Source

Supported by

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