...
Create a new NetCDF Visualiser icon. Edit it and drop the netcdf.nc icon into the NetCDF Data field. Set the following parameters:
Netcdf Plot Type | Geo Matrix |
Netcdf Latitude Variable | latitude |
Netcdf Longitude Variable | longitude |
Netcdf Value Variable | v2d |
Save the changes, and visualise this new icon. See how the settings in the visualiser icon correspond to the variable names in the data. Now visualise another field from the same file. Use the supplied shading_20_levels icon on the plots.
Geopoints
Format overview
Geopoints is the ASCII format used by Metview to handle spatially irregular data (e.g. observations). There are a number of variations on the format, but the default one is a 6-column layout. The columns do not have to be aligned, but there must be at least one whitespace character between each entry.
This example shows a geopoints file containing dry bulb temperature at 2m (PARAMETER = 12004).
#GEO PARAMETER = 12004 lat long level date time value #DATA 36.15 -5.35 0 19970810 1200 300.9 34.58 32.98 0 19970810 1200 301.6 41.97 21.65 0 19970810 1200 299.4 45.03 7.73 0 19970810 1200 294 45.67 9.7 0 19970810 1200 302.2 44.43 9.93 0 19970810 1200 293.4 |
If you have observation data which you wish to import into Metview, Geopoints is probably the best format because:
- it is easy to write data into this format
- Metview has lots of functions to manipulate data in this format
Variants of the format allow 2-dimensional variables to be stored (e.g. U/V or speed/direction wind components), and another variant stores only lat, lon and value for a more compact file.
Examining geopoints
Examine the supplied geopoints.gpt icon to confirm the contents of the file. The columns are sortable. You may wish to open the file in an external text editor to see exactly what it looks like.
Visualising geopoints
Visualise the icon. The visdef used for geopoints is Symbol Plotting, and its default behaviour is to plot the actual numbers on the map. This can become cluttered, and text rendering can be slow. Drop the supplied symb_colours icon into the Display Window to get a better view of the data (you can also edit symb_colours to see which parameters were set to achieve this effect.
Computing some statistics in Macro
First, we will print some information about our geopoints data. Create a new Macro icon, type this code and run it:
Code Block | ||
---|---|---|
| ||
gp = read('geopoints.gpt')
print('Num points: ', count(gp))
print('Min value: ', minvalue(gp))
print('Max value: ', maxvalue(gp)) |
Perform a simple data manipulation and return the result to Metview's user interface:
Code Block | ||
---|---|---|
| ||
return gp*100 |
Save the macro and see its result by right-clicking on its icon and choosing examine or visualise. We could also have put a write()
command into the macro to write the result to a geopoints file.
Finding geopoints points within 100km of a given location
As a more complex example, we will combine two functions in order to find the locations of the points within a certain distance of a given location. We will use the same geopoints file as before.
The distance()
function returns a new geopoints variable based on its input geopoints, where each point's value has been replaced by the distance of that point from the given location. The description of this function follows:
Panel |
---|
Returns geopoints with the value of each point being the distance in metres from the given geographical location. The location may be specified by supplying either two numbers (latitude and longitude respectively) or a 2-element list containing latitude and longitude in that order. The location should be specified in degrees. |
Choose a location and use this function to compute the distances of the data points from it. Assign the result to a variable called distances
and return it to the user interface to examine the numbers. The distances are in metres.
Now we will see a boolean operator in action. The expression distances < 100000
(one hundred thousand) will return a new geopoints variable where, for each point, if the input value was less than 100000, the resulting value will be 1; otherwise the resulting value will be zero. So the resulting geopoints will have a collection of ones and zeros. Confirm that this is the case.
The filter()
function, from the documentation:
Panel |
---|
A filter function to extract a subset of its geopoints input using a second geopoints as criteria. The two input geopoints must have the same number of values. The resulting output geopoints contains the values of the first geopoints where the value of the second geopoints is non-zero. It is usefully employed in conjunction with the comparison operators :
The variable |
Use this in combination with what you have already done to produce a geopoints variable consisting only of the points within 100km of your chosen location. Plot the result to confirm it.
Saving geopoints data
Geopoints variables can be saved to disk using the write()
command:
Code Block | ||
---|---|---|
| ||
write('my_computed_data.gpt', points) |
Converting between geopoints and GRIB
This has already been covered in Data Part 1.
Other ASCII Data
ASCII Table Data
...
To plot the data, we need to tell Metview which columns contain the coordinates and which contain the values. Create a new Table Visualiser icon and edit it. Drop the CSV icon into the Table Data field and set the following parameters:
Table Plot Type | Geo Points |
Table Longitude Variable | Lon |
Table Latitude Variable | Lat |
Table Value Variable | T2m |
Notice that this icon contains several parameters at the bottom which allow you to read differently-formatted ASCII table files. The question-mark buttons beside the parameter names give brief information on what they mean. The defaults are set up to read a standard CSV file, so we don't need to touch these parameters in this example.
...