Geopointset is the format used by Metview to combine a set of Geopoints variables into a single entity for ease of processing. Thus, a set of observations can be grouped in the same way that fields are grouped into a fieldset variable.
Creating a geopointset
A geopointset can be created with the create_geo_set() function, which takes any number of geopoints variables as arguments, or none. Both geopoints and geopointset variables can be concatenated to a geopointset.
set1 = create_geo_set() # creates an empty set set2 = create_geo_set(g1, g2, g3) # assuming that g1,g2,g3 are geopoints variables set3 = set1 & g1 & g2 # set3 has 2 geopoints set4 = set2 & set3 # set4 has 5 geopoints
Operations on geopointsets
The count()
function returns the number of geopoints variables contained by the set.
As a geopointset is simply a container for geopoints variables, most operations on geopointsets are performed on each of their component geopoints. For example, the following line of code with return a new geopointset where each geopoints variable has had the cos()
function applied to its values:
cgset = cos(gset)
Operations between geopointsets and numbers are performed on each geopoints, e.g.
gsetplus1 = gset + 1 # add 1 to each value in each geopoints var in gset
Operations between geopointsets are performed on each pair of geopoints, as long as they both contain the same number of geopoints, or one geopoints variable. For example:
gsetdiff = gset1 - gset2
If gset1
and gset2
both contain 5 geopoints, then 5 operations will be performed (gset1[1] - gset2[1]
, etc). If gset1
contains 1 geopoints, then the result will again be 5 geopoints - the difference between gset1[1] and gset2[1..5]
.
Operations between geopointsets and fieldsets are performed on each (geopoints, field) pair, as long as they both contain the same number of items, or one item. For example:
fcobsdiff = fc_fieldset - obs_geoset
If fc_fieldset
contains 5 fields and obs_geoset
contains 5 geopoints, then the result will be a geopointset containing 5 geopoints variables - the differences between each pair of fields and geopoints. If either variable contains just one item, then it will be used for each calculation. Otherwise, if they contain a different number of items, the computation will fail.
The Geopointset file format
The format for a geopointset file is very simply a header followed by a contatenation of geopoints files - see Geopoints for details of the format. The overall header is this:
#GEOPOINTSET
The subsequent geopoints structures should all share the same format as each other. Here's an example with 3 geopoints files inside the set:
#GEOPOINTSET #GEO # lat lon height date time value # Missing values represented by 3e+38 (not user-changeable) #DATA 69.6523 18.9057 0 20130512 0 100869.8625 63.4882 10.8795 0 20130512 0 100282.3392 63.5657 10.694 0 20130512 0 100241.1666 61.2928 5.0443 0 20130512 0 99852.18932 #GEO # lat lon height date time value # Missing values represented by 3e+38 (not user-changeable) #DATA 60.82 23.5 0 20130512 600 101045.8 #GEO # lat lon height date time value # Missing values represented by 3e+38 (not user-changeable) #DATA 55.01 8.41 0 20130513 0 100949.1809 54.33 8.6 0 20130513 0 101027.9101 53.71 7.15 0 20130513 0 100846.619