Ag-Analytics® - POLARIS Soils API

Polaris is a recently developed soil data set that provides additional soil attributes. The POLARIS Soils Data Layers API provides a spatially continuous, internally consistent, quantitative prediction of soil series at a 30 m spatial resolution for the contiguous United States.

In [6]:
import requests
import json
import time
import os
from pandas.io.json import json_normalize
from collections import defaultdict
import pandas as pd
import zipfile, io
from IPython.display import Image

%matplotlib inline
%autosave 0
Autosave disabled

Request URL: https://ag-analytics.azure-api.net/polaris-new/

1). aoi (.tif, GeoJSON String): Area of interest as either TIFF file or Geojson string containing boundary coordinates.

2). Soil_Parameter (string): Soil parameter to return.

silt - silt percentage, %
sand - sand percentage, %
clay - clay percentage, %
bd - bulk density, g/cm3
awc - available water content, m3/m3
theta_s - saturated soil water content, m3/m3
theta_r - residual soil water content, m3/m3
theta_33 - soil water content at field capacity, m3/m3
theta_1500 - soil water content at the wilting point, m3/m3
ksat - saturated hydraulic conductivity, cm/hr
resdt - depth to restriction layer, cm
ph - soil pH in H2O, N/A
om - organic matter, %
caco3 - calcium carbonate in soil, %
cec - cation exchange capacity of soil, meq/100g
lambda - pore size distribution index (brooks-corey), N/A
hb - bubbling pressure (brooks-corey), cm
n - measure of the pore size distribution (van genuchten), N/A
alpha - scale parameter inversely proportional to mean pore diameter (van genuchten), cm-1

3). Depth_Range (string): Depth in soil column.

0-5 cm
5-15 cm
15-30 cm
30-60 cm
60-100 cm
100-200 cm

4). Statistic (string): Soil parameter statistic to return.

mean - Arithmetic mean
min - Minimum
max - Maximum
var - Variance

POST Request API Fuction

In [18]:
def polaris_service(values, files, headers):
    try:
        url = 'https://ag-analytics.azure-api.net/polaris-new'
        
        if files == None:
            response = requests.post(url, data=values).json()
        else:
            response = requests.post(url, files = files, data = values).json()
            
        print(response)
        
        return response
    
    except Exception as e:
        print(e)
        raise e

Raster (.tif) as AOI

In [34]:
#Path to raster in your local machine
rasterpath = r"C:\Users\User\Documents\Blobs\Harvest_Rasters\raster_VRYIELDVOL_0-0001.tif"
gtiffs_files = [('Raster_File',(open(rasterpath, 'rb')))]
print(gtiffs_files)

#Parameters to create index
gtiffs_values = {"Soil_Parameter": "clay",
            "Depth_Range": "15-30",
            "Statistic": "mean"}

# Header for using a subscription key.
gtiffs_headers=None
# headers={'content-type': "application/json",'Ocp-Apim-Subscription-Key': "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
[('Raster_File', <_io.BufferedReader name='C:\\Users\\Alex\\Documents\\Blobs\\Harvest_Rasters\\e036f472-7a0b-4d77-9ed7-5e3e91cc150f\\raster_VRYIELDVOL_0-0001.tif'>)]
In [35]:
IndexResponse = polaris_service(gtiffs_values, gtiffs_files, gtiffs_headers)
{'Features': [{'attributes': {'CellSize': [4.776798576804391e-05, -4.776798576804391e-05], 'CoordinateSystem': 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]]', 'Extent': '-89.7589908770968, 40.45595637048064, -89.75039263965856, 40.46455460791889', 'Legend': [{'Area': '6.72 %', 'Count': 833, 'CountAllPixels': 12400, 'Max': 14.337621688842773, 'Mean': 13.170328617095947, 'Min': 12.003035545349121, 'color': '#d305fc'}, {'Area': '17.46 %', 'Count': 2165, 'CountAllPixels': 12400, 'Max': 16.672207832336426, 'Mean': 15.5049147605896, 'Min': 14.337621688842773, 'color': '#e570ff'}, {'Area': '27.23 %', 'Count': 3377, 'CountAllPixels': 12400, 'Max': 19.006793975830078, 'Mean': 17.839500904083252, 'Min': 16.672207832336426, 'color': '#eb94ff'}, {'Area': '20.99 %', 'Count': 2603, 'CountAllPixels': 12400, 'Max': 21.34138011932373, 'Mean': 20.174087047576904, 'Min': 19.006793975830078, 'color': '#f2b9ff'}, {'Area': '27.6 %', 'Count': 3422, 'CountAllPixels': 12400, 'Max': 23.675966262817383, 'Mean': 22.508673191070557, 'Min': 21.34138011932373, 'color': '#f9deff'}], 'Matrix': [180, 180], 'Max': 23.675966262817383, 'Mean': 18.872131653524214, 'Min': 12.003035545349121, 'OID': 0, 'Percentile5': 13.977679681777953, 'Percentile95': 22.90262689590454, 'Product': 'clay', 'Std': 2.8932627288719193, 'Variety': 'NoVariety', 'pngb64': 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAD40lEQVR4nO3dv04UURiHYVZH6CxMqOwMlF6HFyMFl0IhV2YpsaMyoQclWBgi0Sg7M+ff/vZ56iU7Ce9+OTM7Z3Zzff7wcNDQ4cm81x+fbTZ1joREL3ofAJQkaKIImiiCJoqgiSJoogiaKIImiqCJ0jzou6vW78g+mXq8qaipZbq5vN/6xW8+vqx4KLDerCXHnPihh9lraFEzskUnhTeX98JmSKuucoia0ay+bCdqRlLkOrSoGUWxL1ZEzQiKflPoZJHeqnz1LWp6qXYvh6jpoerNSaKmtep321lX01Kz20dFTQtN74cWNbU1v8HfEoSaNp9f/Wj6bLu53n+fPNuOrdlTSBRBE0XQRBE0Ubrs+j44mLHh9qLqYRCmy4S2e5xamk5oIVNbswktZlpoErSYaaV60GKmpapBi5nWqpwUCpleik9oMdNTsQktZEZQZEKLmVGsmtBCZjSLJ7SYGdHsCS1kRrZ10EJmF0xCJYkb/IkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoo3R4FluL6/KHo87XfXmw8D3sFE5oo1Sf04Untd4DfJsGRxJKDKIImiqCJImiiCJoogiaKoIkiaKK4l6MzX2yVJeiVBDkWSw6iCJoogiaKoIky3V0t+0MnQ4xo8VWOpx8EcTOKIpftHuMW9nrfPpXdo7hviq6hly5foJTiJ4WipqcqVzlETS/VLtuJmh5chyZK1aBNaVozoYkiaKJUvx/67ir7C5ej0+1fe/ul3nHwS/UJnRzzXEen8z4AzFct6MMTMf+LqOspHrSQtyPqOoqtoUU832PU1tblrA5ayOsJu5xFQYu4DmGv54HnAxL2cp7LMbA/TxwF/jxB7xCBP0/QO0zgf+sWtOuw5e1i4MdnZX+XsWnQIm6rR+BP37PHB6pq0AIey9LAl/4fe3ygigUt3t3T+n/WYnrPClq0lFKrpUmkJLFjhSiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKLYgjWIUW4S24VdLv8j6JVGCbGU3jtO1iq6n2sf3X7dj98VrBX36w9l9xRaQ7OVXXkUsKCZZfSwBc0io0YtaBYbcVoLmtVGilrQRBE0RYwypQVNMSNELWiiCJqiek9pQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETxSZZZjl6V3YPYGkmNFEETRRBE0XQRBE0UQRNFEETRdBEETRRBE0UQRNF0EQRNFEETRRBE0XQRBE0UQRNFEETxZ7CcKPvASzNhCaKoIkiaKIImiiCJoqgiSJoogiaKIImiqCJImiiCJoogiaKoIkiaKIImiiCJoqgiSJoovwExdeOXCwonEEAAAAASUVORK5CYII='}}], 'FileName': 'raster_polaris_clay_mean_15_30_20200227-155241_56113.tif'}

GeoJSON as AOI

In [28]:
#Parameters to create index
gjson_values = {"aoi": "{\"type\":\"Feature\",\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[-121.2475204, 45.4668127],[-121.2484646, 45.4418262],[-121.2119007, 45.4417660],[-121.2115574, 45.4665117],[-121.2475204, 45.4668127]]]}}",
            "Soil_Parameter": "ph",
            "Depth_Range": "15-30",
            "Statistic": "mean",
            "Legend_Ranges": "10"}

gjson_files = None

# Header for using a subscription key.
gjson_headers = {'content-type': "application/json"}
# headers={'content-type': "application/json",'Ocp-Apim-Subscription-Key': "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
In [12]:
IndexResponse = polaris_service(gjson_values, gjson_files, gjson_headers)
{'Features': [{'attributes': {'CellSize': [5.639292608437955e-05, -5.639292608437955e-05], 'CoordinateSystem': 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]]', 'Extent': '-121.24928150978623, 45.440926248038664, -121.21093432004885, 45.46686699403748', 'Legend': [{'Area': '0.3 %', 'Count': 922, 'CountAllPixels': 307200, 'Max': 6.144077634811401, 'Mean': 6.092171359062195, 'Min': 6.040265083312988, 'color': '#d305fc'}, {'Area': '1.21 %', 'Count': 3718, 'CountAllPixels': 307200, 'Max': 6.247890186309815, 'Mean': 6.195983910560608, 'Min': 6.144077634811401, 'color': '#d71ffc'}, {'Area': '8.26 %', 'Count': 25379, 'CountAllPixels': 307200, 'Max': 6.351702737808227, 'Mean': 6.299796462059021, 'Min': 6.247890186309815, 'color': '#dc3afd'}, {'Area': '26.74 %', 'Count': 82157, 'CountAllPixels': 307200, 'Max': 6.455515289306641, 'Mean': 6.403609013557434, 'Min': 6.351702737808227, 'color': '#e055fe'}, {'Area': '29.6 %', 'Count': 90923, 'CountAllPixels': 307200, 'Max': 6.559327840805054, 'Mean': 6.507421565055847, 'Min': 6.455515289306641, 'color': '#e570ff'}, {'Area': '19.28 %', 'Count': 59214, 'CountAllPixels': 307200, 'Max': 6.663140392303466, 'Mean': 6.61123411655426, 'Min': 6.559327840805054, 'color': '#e986ff'}, {'Area': '10.63 %', 'Count': 32663, 'CountAllPixels': 307200, 'Max': 6.76695294380188, 'Mean': 6.715046668052674, 'Min': 6.663140392303466, 'color': '#ed9cff'}, {'Area': '2.83 %', 'Count': 8704, 'CountAllPixels': 307200, 'Max': 6.870765495300293, 'Mean': 6.818859219551086, 'Min': 6.76695294380188, 'color': '#f1b2ff'}, {'Area': '0.97 %', 'Count': 2970, 'CountAllPixels': 307200, 'Max': 6.974578046798706, 'Mean': 6.922671771049499, 'Min': 6.870765495300293, 'color': '#f5c8ff'}, {'Area': '0.18 %', 'Count': 550, 'CountAllPixels': 307200, 'Max': 7.078390598297119, 'Mean': 7.026484322547913, 'Min': 6.974578046798706, 'color': '#f9deff'}], 'Matrix': [460, 680], 'Max': 7.078390598297119, 'Mean': 6.513756980234757, 'Min': 6.040265083312988, 'OID': 0, 'Percentile5': 6.3061158657073975, 'Percentile95': 6.748400783538818, 'Product': 'ph', 'Std': 0.13677321752000388, 'Variety': 'NoVariety', 'pngb64': 'data:image/png;base64, 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'}}], 'FileName': 'raster_polaris_ph_mean_15_30_20200227-154451_77072.tif'}

Visualize the response png

In [36]:
df=defaultdict(list)
for value in IndexResponse['Features']:
    attributes = value['attributes']
    df['Index'].append(attributes['Product'])
    df['Max'].append(float(attributes['Max']))
    df['Mean'].append(float(attributes['Mean']))
    df['Min'].append(float(attributes['Min']))
    df['pngb64'].append(attributes['pngb64'])

indexdf=pd.DataFrame.from_dict(df)
indexdf
Out[36]:
Index Max Mean Min pngb64
0 clay 23.675966 18.872132 12.003036 data:image/png;base64, iVBORw0KGgoAAAANSUhEUgA...
In [37]:
#Image Legend
df=defaultdict(list)
for product in IndexResponse['Features']:
    Legend = product['attributes']['Legend']
    
for val in Legend:
    df['Max'].append(float(val['Max']))
    df['Mean'].append(float(val['Mean']))
    df['Min'].append(float(val['Min']))
    df['Color'].append(val['color'])
#     df['Range'] = ['Low','Medium','High']
    
legenddf = pd.DataFrame.from_dict(df)    
legenddf.style.applymap(lambda x:"background-color: %s"%x, subset=['Color'])
Out[37]:
Max Mean Min Color
0 14.3376 13.1703 12.003 #d305fc
1 16.6722 15.5049 14.3376 #e570ff
2 19.0068 17.8395 16.6722 #eb94ff
3 21.3414 20.1741 19.0068 #f2b9ff
4 23.676 22.5087 21.3414 #f9deff
In [38]:
# IndexImage = indexdf.loc[indexdf['Index'] == 'POLARIS_Soils','pngb64'].iloc[0]
IndexImage = IndexResponse["Features"][0]['attributes']["pngb64"]
Image(url = IndexImage, width = 500, height = 500)
Out[38]:
In [ ]: