Creating animation from FUTURES output in GRASS GIS: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
(extent text in the first part, move images to right (they are small))
Line 1: Line 1:
This is a tutorial how to create an animation from the output of {{AddonCmd|r.futures.pga}} addon module which is a part of {{AddonCmd|r.futures}}, an implementation of FUTURES model. It uses GRASS temporal framework to get the output time series into a spatio-temporal dataset which is then used as an input for the [[WxGUI Animation Tool]] ({{Cmd|g.gui.animation}}. Not all steps from the tutorial might apply to you case depending on how your input data are structured, which color tables you are using and what static data you wish to add to the animation.
== Setting a color of the initial development raster to match the outputs ==
== Setting a color of the initial development raster to match the outputs ==


Convert the initial development into same classes as output from {{AddonCmd|r.futures.pga}} (1 for developed, NULL (NoData) for everything else, for example:
First, convert the initial development into same classes as output from {{AddonCmd|r.futures.pga}} (1 for developed, NULL (NoData) for everything else. For this task we can use raster algebra, for example:


<pre>r.mapcalc &quot;development_initial = if(lc96 == 0, 1, null())&quot;</pre>
<pre>r.mapcalc &quot;development_initial = if(lc96 == 0, 1, null())&quot;</pre>
[[Image:futures_anim_make_copy.png|frame|none|A copy of a map from different Mapset can be created using context button of a layer in the Layer Manager]]


The colors for raster are typically managed when the raster is created, so let's set the color table using interactive raster color management tool (a wrapper around <code>r.colors</code> module).
[[Image:futures_anim_start_raster_color.png|frame|right|Finding manage color rules (color tables) in main menu]]
 
Now, let's set the color table using interactive raster color management tool (a wrapper around {{Cmd|r.colors}} module). The tool is in ''Raster > Manage colors > Manage color rules interactively''.
 
[[Image:futures_anim_raster_set_color.png|frame|right|Setting a color for a raster category using an interactive dialog]]
 
The tools lists individual categories and we can set the desired colors. If desired, we use the pipette tool to get the color from areas in an existing raster already shown in the ''Map Display''.


[[Image:futures_anim_start_raster_color.png|frame|none|Finding manage color rules (color tables) in main menu]]
[[Image:futures_anim_make_copy.png|frame|right|A copy of a map from different Mapset can be created using context button of a layer in the Layer Manager]]


[[Image:futures_anim_raster_set_color.png|frame|none|Setting a color for a raster category using an interactive dialog]]
Other raster maps which we can show afterwards together with the animation, might need some polishing of color table. In some cases it advantageous to copy the raster map into a current mapset using right click on the raster layer in ''Layer Manager'' and select ''Make copy in the current mapset'' in the context menu.


== Creating spatio-temporal dataset from the output ==
== Creating spatio-temporal dataset from the output ==


Create a spatio-temporal raster dataset:
The ''Animation tool'' can work directly with the rasters, however it is more advantageous to register all the rasters in the time series into the temporal database. Start by creating a spatio-temporal raster dataset:


<pre>t.create output=futures_development type=strds temporaltype=absolute \
<pre>t.create output=futures_development type=strds temporaltype=absolute \
     semantictype=mean title=&quot;Development&quot; \
     semantictype=mean title=&quot;Development&quot; \
     description=&quot;Development time series generated by FUTURES&quot;</pre>
     description=&quot;Development time series generated by FUTURES&quot;</pre>
Note that backslashes mean that the line continues on the next line. This syntax works in unix-like command lines.


Get list of all map layers in time series from <code>r.futures</code>:
Note that backslashes mean that the line continues on the next line. This syntax works in unix-like command lines. In the GUI ''Command Console'', just put everything on one line without any backslashes.
 
Now, get list of all map layers in time series generated by {{AddonCmd|r.futures.pga}} (assuming we set <code>output_series=futures_development</code> when we were running the module):
 
[[Image:futures_anim_list_maps.png|frame|right|Copying list of rasters from g.list to t.register GUI dialog]]


<pre>g.list type=raster pattern=futures_development_*</pre>
<pre>g.list type=raster pattern=futures_development_*</pre>
This will create a list, add the initial development at the beginning:
 
This will create a list of raster maps; each name at one line. Add the initial development at the beginning to complete the list:


<pre>development_initial
<pre>development_initial
Line 33: Line 44:
futures_development_34
futures_development_34
futures_development_35</pre>
futures_development_35</pre>
You can prepare the list of rasters in a (plain) text editor and use the file as an input but you can also use GUI dialog for <code>t.register</code> and copy and paste the list of rasters from <code>g.list</code> directly into and input the list


If you will use GUI to create the command, it will look like this:
You can prepare the list of rasters in a (plain) text editor and use the file as an input for {{Cmd|t.register}}. Alternatively, you can use GUI dialog for {{Cmd|t.register}} and copy and paste the list of rasters from {{Cmd|g.list}} directly into the given input box of the <code>file</code> option. In any case, the command should be similar to this one:


<pre>t.register input=futures_development@futures_test \
<pre>t.register input=futures_development@futures_test \
     file=.../.tmp/fatra/5311.19 start=1996 unit=years increment=1</pre>
     file=.../.tmp/fatra/5311.19 start=1996 unit=years increment=1</pre>
[[Image:futures_anim_list_maps.png|frame|none|Copying list of rasters from g.list to t.register GUI dialog]]


== Animation tool ==
== Animation tool ==


Start GRASS GIS Animation tool from main menu <code>File &gt; Animation Tool</code> (or from command line <code>g.gui.animation</code>).
Start GRASS GIS Animation tool from main menu ''File &gt; Animation Tool'' (or from command line {{Cmd|g.gui.animation}}).


[[Image:futures_anim_start_animation_tool.png|frame|none|Animation tool in the main menu]]
[[Image:futures_anim_start_animation_tool.png|frame|right|Animation tool in the main menu]]


[[Image:futures_anim_animation_layers.png|frame|none|Managing layers of an animation]]
[[Image:futures_anim_animation_layers.png|frame|right|Managing layers of an animation]]


[[Image:futures_anim_animation_time_series.png|frame|none|Adding space time raster dataset as a layer which will be animated]]
[[Image:futures_anim_animation_time_series.png|frame|right|Adding space time raster dataset as a layer which will be animated]]


The colors for vector are typically managed when displaying the layer and this is also the case for roads vector.
The colors for vector are typically managed when displaying the layer and this is also the case for roads vector.


[[Image:futures_anim_vector_set_color.png|frame|none|Vector layer properties and symbology dialog (d.vect module dialog)]]
[[Image:futures_anim_vector_set_color.png|frame|right|Vector layer properties and symbology dialog (d.vect module dialog)]]


Unlike other properties the opacity is managed separately in the list of layers.
Unlike other properties the opacity is managed separately in the list of layers.
Line 60: Line 68:
Rendering animation takes some time and thus the rendering is not triggered automatically when changing the size of the window. As a result, we need to press render button in toolbar when we changed the size of the window.
Rendering animation takes some time and thus the rendering is not triggered automatically when changing the size of the window. As a result, we need to press render button in toolbar when we changed the size of the window.


[[Image:futures_anim_render_animation.png|frame|none|Animation needs to be re-rendered after resizing window using a button in toolbar]]
[[Image:futures_anim_render_animation.png|frame|right|Animation needs to be re-rendered after resizing window using a button in toolbar]]


[[Category: Tutorial]]
[[Category: Tutorial]]
[[Category: FUTURES]]
[[Category: FUTURES]]
[[Category: Urban]]
[[Category: Urban]]

Revision as of 17:40, 13 February 2016

This is a tutorial how to create an animation from the output of r.futures.pga addon module which is a part of r.futures, an implementation of FUTURES model. It uses GRASS temporal framework to get the output time series into a spatio-temporal dataset which is then used as an input for the WxGUI Animation Tool (g.gui.animation. Not all steps from the tutorial might apply to you case depending on how your input data are structured, which color tables you are using and what static data you wish to add to the animation.

Setting a color of the initial development raster to match the outputs

First, convert the initial development into same classes as output from r.futures.pga (1 for developed, NULL (NoData) for everything else. For this task we can use raster algebra, for example:

r.mapcalc "development_initial = if(lc96 == 0, 1, null())"
Finding manage color rules (color tables) in main menu

Now, let's set the color table using interactive raster color management tool (a wrapper around r.colors module). The tool is in Raster > Manage colors > Manage color rules interactively.

Setting a color for a raster category using an interactive dialog

The tools lists individual categories and we can set the desired colors. If desired, we use the pipette tool to get the color from areas in an existing raster already shown in the Map Display.

A copy of a map from different Mapset can be created using context button of a layer in the Layer Manager

Other raster maps which we can show afterwards together with the animation, might need some polishing of color table. In some cases it advantageous to copy the raster map into a current mapset using right click on the raster layer in Layer Manager and select Make copy in the current mapset in the context menu.

Creating spatio-temporal dataset from the output

The Animation tool can work directly with the rasters, however it is more advantageous to register all the rasters in the time series into the temporal database. Start by creating a spatio-temporal raster dataset:

t.create output=futures_development type=strds temporaltype=absolute \
    semantictype=mean title="Development" \
    description="Development time series generated by FUTURES"

Note that backslashes mean that the line continues on the next line. This syntax works in unix-like command lines. In the GUI Command Console, just put everything on one line without any backslashes.

Now, get list of all map layers in time series generated by r.futures.pga (assuming we set output_series=futures_development when we were running the module):

Copying list of rasters from g.list to t.register GUI dialog
g.list type=raster pattern=futures_development_*

This will create a list of raster maps; each name at one line. Add the initial development at the beginning to complete the list:

development_initial
futures_development_00
futures_development_01
...
futures_development_33
futures_development_34
futures_development_35

You can prepare the list of rasters in a (plain) text editor and use the file as an input for t.register. Alternatively, you can use GUI dialog for t.register and copy and paste the list of rasters from g.list directly into the given input box of the file option. In any case, the command should be similar to this one:

t.register input=futures_development@futures_test \
    file=.../.tmp/fatra/5311.19 start=1996 unit=years increment=1

Animation tool

Start GRASS GIS Animation tool from main menu File > Animation Tool (or from command line g.gui.animation).

Animation tool in the main menu
Managing layers of an animation
Adding space time raster dataset as a layer which will be animated

The colors for vector are typically managed when displaying the layer and this is also the case for roads vector.

Vector layer properties and symbology dialog (d.vect module dialog)

Unlike other properties the opacity is managed separately in the list of layers.

Rendering animation takes some time and thus the rendering is not triggered automatically when changing the size of the window. As a result, we need to press render button in toolbar when we changed the size of the window.

Animation needs to be re-rendered after resizing window using a button in toolbar