...
Code Block | ||
---|---|---|
| ||
#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 |
#FORMAT XYV (Compact format)
...
Code Block | ||
---|---|---|
| ||
#GEO #FORMAT XY_VECTOR # lat lon height date time u v #DATA 80 0 0 20030617 1200 -4.9001 -8.3126 80 5.5 0 20030617 1200 -5.6628 -7.7252 80 11 0 20030617 1200 -6.4254 -7.13829 |
...
#FORMAT POLAR_VECTOR (Polar Vector format)
...
Code Block | ||
---|---|---|
| ||
#GEO #FORMAT POLAR_VECTOR # lat lon height date time speed direction #DATA 50.97 6.05 0 20030614 1200 4 90 41.97 21.65 0 20030614 1200 5 330 35.85 14.48 0 20030614 1200 11 170 |
#FORMAT NCOLS (Multi-column format)
This format allows any number of parameters to As the above file formats indicate, only one or two meteorological parameters may be stored in a geopoints file. To store more parameters in a single file, use a CSV file or something similar - see ASCII Tables. geopoints file. The #COLUMNS section is used to understand the columns, as they can be put in any order. The following column names are reserved and are treated specially: longitude, level, date, time, stnid. A column with a different name will be treated as a value column. The data should all be numeric, apart from stnid, which is stored as a string.
The start of an example file would look like the following:
Code Block | ||
---|---|---|
| ||
#GEO
#FORMAT NCOLS
#COLUMNS
latitude longitude time date t2 o3 td rh
#DATA
32.55 35.85 0600 20120218 273.9 35 280.3 75
31.72 35.98 1800 20120218 274.9 24 290.4 68
51.93 8.32 1200 20140218 278.9 28 300.5 34
41.1 20.82 1200 20150218 279.9 83 310.6 42
|
For Polar Vector geopoints, only the first value (speed) is considered during operations. For XY geopoints, both values are considered during most operations where it makes sense to do so. For the NCOLS format, all value columns are manipulated during operations.
Currently the level, date and time can only be used for filtering (or can be extracted into into Vector variables variables for other uses). They must be present in the file but you can specify any dummy value if you do not intend to use them.
Storing and retrieving meta-data
A geopoints file can have a section of meta-data key-value pairs in its header before the #DATA section, as illustrated here:
...
Code Block |
---|
gpt_new = set_metadata(gpt, (mykey1:'val1', mykey2: 5)) |
If geopoints variables contain meta-data and they are part of a geopointset, they can be filtered on their meta-data - see Geopointset for details.
Extracting and setting columns
There are two ways to extract columns of data from a geopoints variable.
Use the functions provided, e.g.
Code Block language powershell lats = latitudes(gpt) vals = values(gpt) rh = values(gpt, 'rh') # assuming NCOLS format with a value column of name 'rh'
Use column indexing, e.g.
Code Block language powershell lats = gpt['latitude'] vals = gpt['value'] rh = gpt['rh'] # assuming NCOLS format with a value column of name 'rh'
To assign values to a column, again there are 2 methods, but they have different behaviours:
- Use the set_ functions provided - these create new geopoints variables and do not modify the originals, e.g.
Code Block language powershell gpt_new = set_latitudes(gpt, lats) # lats is a vector
- Use column indexing - this modifies the original geopoints variable and is therefore more efficient, e.g.
Code Block language powershell gpt['latitude'] = lats # lats is a vector
Operations between geopoints and fieldsets
...
geo_clean = remove_missing_values (geo_source)
Missing coordinates in geopoints
It is possible (since Metview 5.7.0) to include missing values in the latitude or longitude columns (or both). A point with either coordinate missing will be excluded from any operation that requires location information.