Skip to content

Commit f235808

Browse files
author
Matt Bertrand
authored
Merge pull request #28 from OpenGeoscience/kitware_worldclim
WorldClim data processors
2 parents 8e2b677 + ea4ca74 commit f235808

12 files changed

Lines changed: 661 additions & 24 deletions

dataqs/processor_base.py

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
validate\ connections=true
5656
Connection\ timeout=10
5757
preparedStatements=true
58+
TypeNames=false
5859
"""
5960

6061
GPMOSAIC_TIME_REGEX = "regex=[0-9]{8}T[0-9]{9}Z"
@@ -214,11 +215,15 @@ def update_gs_metadata(self, layer_name, json_data, vector=False,
214215
res.raise_for_status()
215216
return res.content
216217

217-
def update_geonode(self, layer_name, title="", bounds=None, store=None):
218+
def update_geonode(self, layer_name, title="", description="",
219+
category=None, bounds=None, store=None):
218220
"""
219221
Update a layer and it's title in GeoNode
220222
:param layer_name: Name of the layer
221-
:param title: New title for layer
223+
:param title: Title for layer
224+
:param description: Description for layer
225+
:param bounds: Bounds for layer
226+
:param store: Store for layer
222227
"""
223228
# Update the layer in GeoNode
224229
ulc = UpdateLayersCommand()
@@ -229,6 +234,9 @@ def update_geonode(self, layer_name, title="", bounds=None, store=None):
229234
from geonode.layers.models import Layer
230235
lyr = Layer.objects.get(typename='geonode:{}'.format(layer_name))
231236
lyr.title = title
237+
lyr.abstract = description
238+
if category:
239+
lyr.category = category
232240
lyr.save()
233241
if bounds:
234242
from geonode.layers.models import Layer
@@ -239,39 +247,42 @@ def update_geonode(self, layer_name, title="", bounds=None, store=None):
239247
gs_catalog = Catalog(url, _user, _password)
240248
gs_catalog.save(res)
241249

242-
def set_default_style(self, layer_name, sld_name, sld_content):
250+
def set_default_style(self, layer_name, sld_name, sld_content, create=True):
243251
"""
244252
Create a style and assign it as default to a layer
245253
:param layer_name: the layer to assign the style to
246254
:param sld_name: the name to give the style
247255
:param sld_content: the actual XML content for the style
256+
:param create: create the style if true
248257
:return: None
249258
"""
250-
gs_url = self.gs_style_url.format(ogc_server_settings.hostname)
251259

252-
# Create the style
253-
s = "<style><name>{name}</name><filename>{name}.sld</filename></style>"
254-
data = s.format(name=sld_name)
260+
gs_url = self.gs_style_url.format(ogc_server_settings.hostname)
255261
_user, _password = ogc_server_settings.credentials
256-
res = requests.post(url=gs_url,
257-
data=data,
258-
auth=(_user, _password),
259-
headers={'Content-Type': 'text/xml'})
260262

261-
res.raise_for_status()
263+
if create:
264+
# Create the style
265+
s = "<style><name>{n}</name><filename>{n}.sld</filename></style>"
266+
data = s.format(n=sld_name)
267+
res = requests.post(url=gs_url,
268+
data=data,
269+
auth=(_user, _password),
270+
headers={'Content-Type': 'text/xml'})
262271

263-
# Populate the style
264-
data = sld_content
265-
url = urljoin(gs_url, sld_name)
266-
logger.debug(url)
267-
res = requests.put(url=url,
268-
data=data,
269-
auth=(_user, _password),
270-
headers={
271-
'Content-Type': 'application/vnd.ogc.sld+xml'
272-
})
272+
res.raise_for_status()
273273

274-
res.raise_for_status()
274+
# Populate the style
275+
data = sld_content
276+
url = urljoin(gs_url, sld_name)
277+
logger.debug(url)
278+
res = requests.put(url=url,
279+
data=data,
280+
auth=(_user, _password),
281+
headers={
282+
'Content-Type': 'application/vnd.ogc.sld+xml'
283+
})
284+
285+
res.raise_for_status()
275286

276287
# Assign to the layer
277288
layer_typename = "{}%3A{}".format(DEFAULT_WORKSPACE, layer_name)

dataqs/worldclim/__init__.py

Whitespace-only changes.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
2+
<sld:NamedLayer>
3+
<sld:Name>worldclim_diurnal</sld:Name>
4+
<sld:UserStyle>
5+
<sld:Name>worldclim_diurnal</sld:Name>
6+
<sld:FeatureTypeStyle>
7+
<sld:Name>name</sld:Name>
8+
<sld:Rule>
9+
<sld:RasterSymbolizer>
10+
<sld:Geometry>
11+
<ogc:PropertyName>grid</ogc:PropertyName>
12+
</sld:Geometry>
13+
<sld:ColorMap>
14+
<sld:ColorMapEntry color="#2c7bb6" opacity="1.0" quantity="0" label="0 °C"/>
15+
<sld:ColorMapEntry color="#61a2cb" opacity="1.0" quantity="30" label="3 °C"/>
16+
<sld:ColorMapEntry color="#96cae0" opacity="1.0" quantity="60" label="6 °C"/>
17+
<sld:ColorMapEntry color="#c1e3dd" opacity="1.0" quantity="80" label="8 °C"/>
18+
<sld:ColorMapEntry color="#e4f3cc" opacity="1.0" quantity="100" label="10 °C"/>
19+
<sld:ColorMapEntry color="#fef6b5" opacity="1.0" quantity="120" label="12 °C"/>
20+
<sld:ColorMapEntry color="#fdd48d" opacity="1.0" quantity="140" label="14 °C"/>
21+
<sld:ColorMapEntry color="#fdb265" opacity="1.0" quantity="160" label="16 °C"/>
22+
<sld:ColorMapEntry color="#ef7747" opacity="1.0" quantity="180" label="18 °C"/>
23+
<sld:ColorMapEntry color="#d7191c" opacity="1.0" quantity="200" label="20 °C"/>
24+
</sld:ColorMap>
25+
<sld:ContrastEnhancement/>
26+
</sld:RasterSymbolizer>
27+
</sld:Rule>
28+
</sld:FeatureTypeStyle>
29+
</sld:UserStyle>
30+
</sld:NamedLayer>
31+
</sld:StyledLayerDescriptor>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
2+
<sld:NamedLayer>
3+
<sld:Name>worldclim_isotherm</sld:Name>
4+
<sld:UserStyle>
5+
<sld:Name>worldclim_isotherm</sld:Name>
6+
<sld:FeatureTypeStyle>
7+
<sld:Name>name</sld:Name>
8+
<sld:Rule>
9+
<sld:RasterSymbolizer>
10+
<sld:Geometry>
11+
<ogc:PropertyName>grid</ogc:PropertyName>
12+
</sld:Geometry>
13+
<sld:ColorMap>
14+
<sld:ColorMapEntry color="#2c7bb6" opacity="1.0" quantity="0" label="0"/>
15+
<sld:ColorMapEntry color="#61a2cb" opacity="1.0" quantity="10" label="10"/>
16+
<sld:ColorMapEntry color="#96cae0" opacity="1.0" quantity="25" label="25"/>
17+
<sld:ColorMapEntry color="#c1e3dd" opacity="1.0" quantity="40" label="40"/>
18+
<sld:ColorMapEntry color="#e4f3cc" opacity="1.0" quantity="50" label="50"/>
19+
<sld:ColorMapEntry color="#fef6b5" opacity="1.0" quantity="75" label="75"/>
20+
<sld:ColorMapEntry color="#fdd48d" opacity="1.0" quantity="85" label="85"/>
21+
<sld:ColorMapEntry color="#fdb265" opacity="1.0" quantity="90" label="90"/>
22+
<sld:ColorMapEntry color="#ef7747" opacity="1.0" quantity="95" label="95"/>
23+
<sld:ColorMapEntry color="#d7191c" opacity="1.0" quantity="100" label="100"/>
24+
</sld:ColorMap>
25+
<sld:ContrastEnhancement/>
26+
</sld:RasterSymbolizer>
27+
</sld:Rule>
28+
</sld:FeatureTypeStyle>
29+
</sld:UserStyle>
30+
</sld:NamedLayer>
31+
</sld:StyledLayerDescriptor>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
2+
<sld:NamedLayer>
3+
<sld:Name>worldclim_precip</sld:Name>
4+
<sld:UserStyle>
5+
<sld:Name>worldclim_precip</sld:Name>
6+
<sld:FeatureTypeStyle>
7+
<sld:Name>name</sld:Name>
8+
<sld:Rule>
9+
<sld:RasterSymbolizer>
10+
<sld:Geometry>
11+
<ogc:PropertyName>grid</ogc:PropertyName>
12+
</sld:Geometry>
13+
<sld:ColorMap>
14+
<sld:ColorMapEntry color="#f7fbff" quantity="0.000000" opacity="1.0" label="0 mm"/>
15+
<sld:ColorMapEntry color="#e1edf8" quantity="35" opacity="1.0" label="35 mm"/>
16+
<sld:ColorMapEntry color="#ccdff1" quantity="70" opacity="1.0" label="70 mm"/>
17+
<sld:ColorMapEntry color="#afd1e7" quantity="100" opacity="1.0" label="100 mm"/>
18+
<sld:ColorMapEntry color="#88bedc" quantity="150" opacity="1.0" label="150 mm"/>
19+
<sld:ColorMapEntry color="#5fa6d1" quantity="180" opacity="1.0" label="180 mm"/>
20+
<sld:ColorMapEntry color="#3d8dc3" quantity="225" opacity="1.0" label="225 mm"/>
21+
<sld:ColorMapEntry color="#2171b5" quantity="250" opacity="1.0" label="250 mm"/>
22+
<sld:ColorMapEntry color="#0a539e" quantity="300" opacity="1.0" label="300 mm"/>
23+
<sld:ColorMapEntry color="#08306b" quantity="400" opacity="1.0" label="400+ mm"/>
24+
</sld:ColorMap>
25+
<sld:ContrastEnhancement/>
26+
</sld:RasterSymbolizer>
27+
</sld:Rule>
28+
</sld:FeatureTypeStyle>
29+
</sld:UserStyle>
30+
</sld:NamedLayer>
31+
</sld:StyledLayerDescriptor>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
2+
<sld:NamedLayer>
3+
<sld:Name>worldclim_precip</sld:Name>
4+
<sld:UserStyle>
5+
<sld:Name>worldclim_precip</sld:Name>
6+
<sld:FeatureTypeStyle>
7+
<sld:Name>name</sld:Name>
8+
<sld:Rule>
9+
<sld:RasterSymbolizer>
10+
<sld:Geometry>
11+
<ogc:PropertyName>grid</ogc:PropertyName>
12+
</sld:Geometry>
13+
<sld:ColorMap>
14+
<sld:ColorMapEntry color="#f7fbff" quantity="0" opacity="1.0" label="0 mm"/>
15+
<sld:ColorMapEntry color="#e1edf8" quantity="200" opacity="1.0" label="200 mm"/>
16+
<sld:ColorMapEntry color="#ccdff1" quantity="400" opacity="1.0" label="400 mm"/>
17+
<sld:ColorMapEntry color="#afd1e7" quantity="600" opacity="1.0" label="600 mm"/>
18+
<sld:ColorMapEntry color="#88bedc" quantity="800" opacity="1.0" label="800 mm"/>
19+
<sld:ColorMapEntry color="#5fa6d1" quantity="1000" opacity="1.0" label="1000 mm"/>
20+
<sld:ColorMapEntry color="#3d8dc3" quantity="1200" opacity="1.0" label="1200 mm"/>
21+
<sld:ColorMapEntry color="#2171b5" quantity="1400" opacity="1.0" label="1400 mm"/>
22+
<sld:ColorMapEntry color="#0a539e" quantity="1600" opacity="1.0" label="1600 mm"/>
23+
<sld:ColorMapEntry color="#08306b" quantity="1800" opacity="1.0" label="1800+ mm"/>
24+
</sld:ColorMap>
25+
<sld:ContrastEnhancement/>
26+
</sld:RasterSymbolizer>
27+
</sld:Rule>
28+
</sld:FeatureTypeStyle>
29+
</sld:UserStyle>
30+
</sld:NamedLayer>
31+
</sld:StyledLayerDescriptor>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
2+
<sld:NamedLayer>
3+
<sld:Name>worldclim_precip_seasonality</sld:Name>
4+
<sld:UserStyle>
5+
<sld:Name>worldclim_precip_seasonality</sld:Name>
6+
<sld:FeatureTypeStyle>
7+
<sld:Name>name</sld:Name>
8+
<sld:Rule>
9+
<sld:RasterSymbolizer>
10+
<sld:Geometry>
11+
<ogc:PropertyName>grid</ogc:PropertyName>
12+
</sld:Geometry>
13+
<sld:ColorMap>
14+
<sld:ColorMapEntry color="#f7fbff" quantity="0" opacity="1.0" label="0 mm"/>
15+
<sld:ColorMapEntry color="#e1edf8" quantity="20" opacity="1.0" label="20"/>
16+
<sld:ColorMapEntry color="#ccdff1" quantity="40" opacity="1.0" label="40"/>
17+
<sld:ColorMapEntry color="#afd1e7" quantity="60" opacity="1.0" label="60"/>
18+
<sld:ColorMapEntry color="#88bedc" quantity="80" opacity="1.0" label="80"/>
19+
<sld:ColorMapEntry color="#5fa6d1" quantity="100" opacity="1.0" label="100"/>
20+
<sld:ColorMapEntry color="#3d8dc3" quantity="120" opacity="1.0" label="120"/>
21+
<sld:ColorMapEntry color="#2171b5" quantity="140" opacity="1.0" label="140"/>
22+
<sld:ColorMapEntry color="#0a539e" quantity="160" opacity="1.0" label="160"/>
23+
<sld:ColorMapEntry color="#08306b" quantity="180" opacity="1.0" label="180+"/>
24+
</sld:ColorMap>
25+
<sld:ContrastEnhancement/>
26+
</sld:RasterSymbolizer>
27+
</sld:Rule>
28+
</sld:FeatureTypeStyle>
29+
</sld:UserStyle>
30+
</sld:NamedLayer>
31+
</sld:StyledLayerDescriptor>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
2+
<sld:NamedLayer>
3+
<sld:Name>worldclim_temp</sld:Name>
4+
<sld:UserStyle>
5+
<sld:Name>worldclim_temp</sld:Name>
6+
<sld:FeatureTypeStyle>
7+
<sld:Name>name</sld:Name>
8+
<sld:Rule>
9+
<sld:RasterSymbolizer>
10+
<sld:Geometry>
11+
<ogc:PropertyName>grid</ogc:PropertyName>
12+
</sld:Geometry>
13+
<sld:ColorMap>
14+
<sld:ColorMapEntry color="#2c7bb6" opacity="1.0" quantity="-500" label="-50 °C"/>
15+
<sld:ColorMapEntry color="#61a2cb" opacity="1.0" quantity="-250" label="-25 °C"/>
16+
<sld:ColorMapEntry color="#96cae0" opacity="1.0" quantity="-100" label="-10 °C"/>
17+
<sld:ColorMapEntry color="#c1e3dd" opacity="1.0" quantity="0" label="0 °C"/>
18+
<sld:ColorMapEntry color="#e4f3cc" opacity="1.0" quantity="50" label="5 °C"/>
19+
<sld:ColorMapEntry color="#fef6b5" opacity="1.0" quantity="100" label="10 °C"/>
20+
<sld:ColorMapEntry color="#fdd48d" opacity="1.0" quantity="150" label="15 °C"/>
21+
<sld:ColorMapEntry color="#fdb265" opacity="1.0" quantity="200" label="20 °C"/>
22+
<sld:ColorMapEntry color="#ef7747" opacity="1.0" quantity="250" label="25 °C"/>
23+
<sld:ColorMapEntry color="#d7191c" opacity="1.0" quantity="300" label="30 °C"/>
24+
</sld:ColorMap>
25+
<sld:ContrastEnhancement/>
26+
</sld:RasterSymbolizer>
27+
</sld:Rule>
28+
</sld:FeatureTypeStyle>
29+
</sld:UserStyle>
30+
</sld:NamedLayer>
31+
</sld:StyledLayerDescriptor>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
2+
<sld:NamedLayer>
3+
<sld:Name>worldclim_temp_seasonality</sld:Name>
4+
<sld:UserStyle>
5+
<sld:Name>worldclim_temp_seasonality</sld:Name>
6+
<sld:FeatureTypeStyle>
7+
<sld:Name>name</sld:Name>
8+
<sld:Rule>
9+
<sld:RasterSymbolizer>
10+
<sld:Geometry>
11+
<ogc:PropertyName>grid</ogc:PropertyName>
12+
</sld:Geometry>
13+
<sld:ColorMap>
14+
<sld:ColorMapEntry color="#2c7bb6" opacity="1.0" quantity="0" label="0"/>
15+
<sld:ColorMapEntry color="#61a2cb" opacity="1.0" quantity="2500" label="2500"/>
16+
<sld:ColorMapEntry color="#96cae0" opacity="1.0" quantity="5000" label="5000"/>
17+
<sld:ColorMapEntry color="#c1e3dd" opacity="1.0" quantity="7000" label="7000"/>
18+
<sld:ColorMapEntry color="#e4f3cc" opacity="1.0" quantity="9500" label="9500"/>
19+
<sld:ColorMapEntry color="#fef6b5" opacity="1.0" quantity="12000" label="12000"/>
20+
<sld:ColorMapEntry color="#fdd48d" opacity="1.0" quantity="14500" label="14500"/>
21+
<sld:ColorMapEntry color="#fdb265" opacity="1.0" quantity="17000" label="17000"/>
22+
<sld:ColorMapEntry color="#ef7747" opacity="1.0" quantity="19500" label="19500"/>
23+
<sld:ColorMapEntry color="#d7191c" opacity="1.0" quantity="22000" label="22000"/>
24+
</sld:ColorMap>
25+
<sld:ContrastEnhancement/>
26+
</sld:RasterSymbolizer>
27+
</sld:Rule>
28+
</sld:FeatureTypeStyle>
29+
</sld:UserStyle>
30+
</sld:NamedLayer>
31+
</sld:StyledLayerDescriptor>

dataqs/worldclim/tasks.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from __future__ import absolute_import
2+
3+
from celery import shared_task
4+
from dataqs.worldclim.worldclim import WorldClimCurrentProcessor, \
5+
WorldClimPastProcessor, WorldClimFutureProcessor
6+
7+
8+
@shared_task
9+
def worldclim_current_task():
10+
processor = WorldClimCurrentProcessor()
11+
processor.run()
12+
13+
14+
@shared_task
15+
def worldclim_past_task():
16+
processor = WorldClimPastProcessor()
17+
processor.run()
18+
19+
20+
@shared_task
21+
def worldclim_future_task():
22+
processor = WorldClimFutureProcessor()
23+
processor.run()

0 commit comments

Comments
 (0)