Geobricks library to correlate two raster and create statistics and scatter charts.
Project description
Raster Correlation
====================
The library provides an easy way correlate raster of the same size. It returns a json containing statistical outputs and frequencies information to be directly used with Highcharts JS or Matplotlib chart libraries.
# Installation
## Dependencies
The library has different dependencies (see also requirements.txt) click, watchdog, flask, flask-cors, numpy, scipy, pysal, brewer2mpl, rasterio, GeobricksCommon.
## On Ubuntu
```bash
sudo add-apt-repository ppa:ubuntugis/ppa
sudo apt-get update
sudo apt-get install python-numpy libgdal1h gdal-bin libgdal-dev
```
In case of compiling errors for numpy
```bash
sudo apt-get install libblas3gf libc6 libgcc1 libgfortran3 liblapack3gf libstdc++6 build-essential gfortran python-all-dev libatlas-base-dev python-dev
```
In case of compiling errors for scipy
```bash
sudo apt-get install libblas-dev liblapack-dev
```
## Installation
The library is distributed through PyPi and can be installed by typing the following commands in the console:
```
pip -r https://raw.githubusercontent.com/geobricks/geobricks_raster_correlation/master/requirements.txt
pip install GeobricksRasterCorrelation
```
**N.B.** Due to a well known PyPi issue it's not possible to install scipy and pysal through setup.py or requirements.txt
In order to install pysal run the following command
```bash
pip install pysal
```
# Examples
## Library usage
```python
from geobricks_raster_correlation.core.raster_correlation_core import get_correlation
raster_path1 = "path_to_raster1.tif"
raster_path2 = "path_to_raster2.tif"
# Number of bins to be applied to the scatter chart
bins = 300
corr = get_correlation(raster_path1, raster_path2, bins)
print corr
```
## Example with matplotlib
This example generate a correlation chart with matplotlib
```python
from geobricks_raster_correlation.core.raster_correlation_core import get_correlation
from matplotlib import pyplot as plt
from matplotlib.pylab import polyfit, polyval
# input to your raster files
raster_path1 = "path_to_raster1.tif"
raster_path2 = "path_to_raster2.tif"
# Number of sampling bins
bins = 150
corr = get_correlation(raster_path1, raster_path2, bins)
x = []
y = []
colors = []
# print corr['series']
for serie in corr['series']:
colors.append(serie['color'])
for data in serie['data']:
x.append(data[0])
y.append(data[1])
# Adding regression line
(m, b) = polyfit(x, y, 1)
yp = polyval([m, b], x)
plt.plot(x, yp)
# plotting scatter
plt.scatter(x, y, c=colors)
plt.show()
```
The returned json:
* corr['stats'] contains the statistics: slope, p_value, std_err, intercept, r_value
* corr['series'] contains the output series that can be used directly as an Highcharts input or with Matplotlib.
====================
The library provides an easy way correlate raster of the same size. It returns a json containing statistical outputs and frequencies information to be directly used with Highcharts JS or Matplotlib chart libraries.
# Installation
## Dependencies
The library has different dependencies (see also requirements.txt) click, watchdog, flask, flask-cors, numpy, scipy, pysal, brewer2mpl, rasterio, GeobricksCommon.
## On Ubuntu
```bash
sudo add-apt-repository ppa:ubuntugis/ppa
sudo apt-get update
sudo apt-get install python-numpy libgdal1h gdal-bin libgdal-dev
```
In case of compiling errors for numpy
```bash
sudo apt-get install libblas3gf libc6 libgcc1 libgfortran3 liblapack3gf libstdc++6 build-essential gfortran python-all-dev libatlas-base-dev python-dev
```
In case of compiling errors for scipy
```bash
sudo apt-get install libblas-dev liblapack-dev
```
## Installation
The library is distributed through PyPi and can be installed by typing the following commands in the console:
```
pip -r https://raw.githubusercontent.com/geobricks/geobricks_raster_correlation/master/requirements.txt
pip install GeobricksRasterCorrelation
```
**N.B.** Due to a well known PyPi issue it's not possible to install scipy and pysal through setup.py or requirements.txt
In order to install pysal run the following command
```bash
pip install pysal
```
# Examples
## Library usage
```python
from geobricks_raster_correlation.core.raster_correlation_core import get_correlation
raster_path1 = "path_to_raster1.tif"
raster_path2 = "path_to_raster2.tif"
# Number of bins to be applied to the scatter chart
bins = 300
corr = get_correlation(raster_path1, raster_path2, bins)
print corr
```
## Example with matplotlib
This example generate a correlation chart with matplotlib
```python
from geobricks_raster_correlation.core.raster_correlation_core import get_correlation
from matplotlib import pyplot as plt
from matplotlib.pylab import polyfit, polyval
# input to your raster files
raster_path1 = "path_to_raster1.tif"
raster_path2 = "path_to_raster2.tif"
# Number of sampling bins
bins = 150
corr = get_correlation(raster_path1, raster_path2, bins)
x = []
y = []
colors = []
# print corr['series']
for serie in corr['series']:
colors.append(serie['color'])
for data in serie['data']:
x.append(data[0])
y.append(data[1])
# Adding regression line
(m, b) = polyfit(x, y, 1)
yp = polyval([m, b], x)
plt.plot(x, yp)
# plotting scatter
plt.scatter(x, y, c=colors)
plt.show()
```
The returned json:
* corr['stats'] contains the statistics: slope, p_value, std_err, intercept, r_value
* corr['series'] contains the output series that can be used directly as an Highcharts input or with Matplotlib.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file GeobricksRasterCorrelation-0.1.13.tar.gz
.
File metadata
- Download URL: GeobricksRasterCorrelation-0.1.13.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf910fc3d3c0694bcf99ce3c7f06e15f32d8f3ec4fb7e518774c9d54d101b02a |
|
MD5 | 24fd13091e4681257d06aa55836d9c29 |
|
BLAKE2b-256 | c4d798bbb0c8326aec5b1958a8fb71238d0cefc39aeae7a5de9f1530634cef29 |