Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Rasterio reads and writes geospatial raster datasets

License

NotificationsYou must be signed in to change notification settings

rasterio/rasterio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rasterio reads and writes geospatial raster data.

https://img.shields.io/pypi/v/rasterio

Geographic information systems use GeoTIFF and other formats to organize andstore gridded, or raster, datasets. Rasterio reads and writes these formats andprovides a Python API based on N-D arrays.

Rasterio 1.4 works with Python >= 3.9, Numpy >= 1.24, and GDAL >= 3.5. Officialbinary packages for Linux, macOS, and Windows with most built-in format driversplus HDF5, netCDF, and OpenJPEG2000 are available on PyPI.

Read the documentation for more details:https://rasterio.readthedocs.io/.

Example

Here's an example of some basic features that Rasterio provides. Three bandsare read from an image and averaged to produce something like a panchromaticband. This new band is then written to a new single band TIFF.

importnumpyasnpimportrasterio# Read raster bands directly to Numpy arrays.#withrasterio.open('tests/data/RGB.byte.tif')assrc:r,g,b=src.read()# Combine arrays in place. Expecting that the sum will# temporarily exceed the 8-bit integer range, initialize it as# a 64-bit float (the numpy default) array. Adding other# arrays to it in-place converts those arrays "up" and# preserves the type of the total array.total=np.zeros(r.shape)forbandinr,g,b:total+=bandtotal/=3# Write the product as a raster band to a new 8-bit file. For# the new file's profile, we start with the meta attributes of# the source file, but then change the band count to 1, set the# dtype to uint8, and specify LZW compression.profile=src.profileprofile.update(dtype=rasterio.uint8,count=1,compress='lzw')withrasterio.open('example-total.tif','w',**profile)asdst:dst.write(total.astype(rasterio.uint8),1)

The output:

http://farm6.staticflickr.com/5501/11393054644_74f54484d9_z_d.jpg

API Overview

Rasterio gives access to properties of a geospatial raster file.

withrasterio.open('tests/data/RGB.byte.tif')assrc:print(src.width,src.height)print(src.crs)print(src.transform)print(src.count)print(src.indexes)# Printed:# (791, 718)# {u'units': u'm', u'no_defs': True, u'ellps': u'WGS84', u'proj': u'utm', u'zone': 18}# Affine(300.0379266750948, 0.0, 101985.0,#        0.0, -300.041782729805, 2826915.0)# 3# [1, 2, 3]

A rasterio dataset also provides methods for getting read/write windows (likeextended array slices) given georeferenced coordinates.

withrasterio.open('tests/data/RGB.byte.tif')assrc:window=src.window(*src.bounds)print(window)print(src.read(window=window).shape)# Printed:# Window(col_off=0.0, row_off=0.0, width=791.0000000000002, height=718.0)# (3, 718, 791)

Rasterio CLI

Rasterio's command line interface, named "rio", is documented atcli.rst. Itsrioinsp command opens the hood of any raster dataset so you can poke aroundusing Python.

$ rio insp tests/data/RGB.byte.tifRasterio 0.10 Interactive Inspector (Python 3.4.1)Type "src.meta", "src.read(1)", or "help(src)" for more information.>>> src.name'tests/data/RGB.byte.tif'>>> src.closedFalse>>> src.shape(718, 791)>>> src.crs{'init': 'epsg:32618'}>>> b, g, r= src.read()>>> bmasked_array(data = [[-- -- -- ..., -- -- --] [-- -- -- ..., -- -- --] [-- -- -- ..., -- -- --] ..., [-- -- -- ..., -- -- --] [-- -- -- ..., -- -- --] [-- -- -- ..., -- -- --]],             mask = [[ True  True  True ...,  True  True  True] [ True  True  True ...,  True  True  True] [ True  True  True ...,  True  True  True] ..., [ True  True  True ...,  True  True  True] [ True  True  True ...,  True  True  True] [ True  True  True ...,  True  True  True]],       fill_value = 0)>>> np.nanmin(b), np.nanmax(b), np.nanmean(b)(0, 255, 29.94772668847656)

Rio Plugins

Rio provides the ability to create subcommands using plugins. Seecli.rstfor more information on building plugins.

See theplugin registryfor a list of available plugins.

Installation

Seedocs/installation.rst

Support

The primary forum for questions about installation and usage of Rasterio ishttps://rasterio.groups.io/g/main. The authors and other users will answerquestions when they have expertise to share and time to explain. Please takethe time to craft a clear question and be patient about responses.

Please do not bring these questions to Rasterio's issue tracker, which we wantto reserve for bug reports and other actionable issues.

Development and Testing

SeeCONTRIBUTING.rst.

Documentation

Seedocs/.

License

SeeLICENSE.txt.

Authors

The rasterio project was begun at Mapbox and was transferred to the rasterio Github organization in October 2021.

SeeAUTHORS.txt.

Changes

SeeCHANGES.txt.

Who is Using Rasterio?

Seehere.


[8]ページ先頭

©2009-2025 Movatter.jp