Hello Roy, That is an interesting idea. There are definitions of these areas on a WWF site, of the form http://www.worldwildlife.org/wildworld/profiles/terrestrial/nt/nt0908_full.html where "nt0908" is a tag associated with a particular flag value.
My first thought was: URI=" http://www.worldwildlife.org/wildworld/profiles/terrestrial/[flag_meaning]_full.html" with "nt/nt0908" in the flag_meanings attribute, but it appears that the cf-checker does not like having a "/" in flag_meanings. This means we need to either have a more complex syntax, or set up our definition URLs along the lines you suggest. A more complex syntax might be: URI=" http://www.worldwildlife.org/wildworld/profiles/terrestrial/[flag_meaning][0:2]/[flag_meaning]_full.html" Since the above returns html rather than skos/xml it should perhaps be complemented by a uri_content_type attribute, with value 'html/text'. I'll think about the option of setting up something like your vocab server -- or possibly putting some more definitions in the ndg vocab server? Regards, Martin > -----Original Message----- > From: Lowry, Roy K [mailto:r...@bodc.ac.uk] > Sent: 27 October 2009 11:07 > To: Juckes, Martin (STFC,RAL,SSTD); cf-metadata@cgd.ucar.edu > Cc: Weatherall, Pauline > Subject: RE: [CF-metadata] Dealing with large numbers of flag > valuesinnetcdf cf > > Hello Martin, > > There is another possible solution to your problem, which we are > looking at for dealing with a data source flag to be used with the > GEBCO bathymetric grid. This is to put a URI base into an attribute > that when concatenated with a flag values gives the flag definition > from a vocabulary server. For example, having a flag_definition > attribute like: > > URI_base='http://vocab.ndg.nerc.ac.uk/term/GGS1/current/' > > For a flag value of 1, the resulting URL is: > > http://vocab.ndg.nerc.ac.uk/term/GGS1/current/1 > > which is a live NERC Vocabulary Server URL returning the flag > definition attributes in a SKOS document. > > I appreciate that this moves away from fully self-contained CF files > and that a standardised syntax for the URI base encoding is required, > but I think this provides a scalable solution to the flag definition > problem. > > Cheers, Roy. > > > -----Original Message----- > From: cf-metadata-boun...@cgd.ucar.edu [mailto:cf-metadata- > boun...@cgd.ucar.edu] On Behalf Of martin.juc...@stfc.ac.uk > Sent: 27 October 2009 10:45 > To: cf-metadata@cgd.ucar.edu > Subject: Re: [CF-metadata] Dealing with large numbers of flag values > innetcdf cf > > Thanks for the responses. > > Seth is right, I was looking for an alternative to having a gigantic > "flag_meanings" attribute. > > I have tried Seth's approach, but can’t get it past the cf-checker. > There appears to be a character set restriction: I can get the first > 547 flag_meaning strings accepted if I remove all the "-", "." and "," > characters. I'm reasonably sure there are no control characters in the > following strings which could be responsible for the error message that > I get (ERROR (3.5): Invalid syntax for 'flag_meanings' attribute) when > I increase the number of flag_meanings to 550. Could it be something to > do with the string length (16472 characters)? > > I could try abbreviating the flag_meanings, but this would either be > tedious work by hand or liable to create confusion if done > automatically. If you could point me to some information about exactly > what string format is acceptable, that would be very helpful. > > To answer John's question: I'm currently using netcdf 3, in IDL -- I'm > not sure what the options for upgrading to netcdf 4 are. > > Cheers, > Matin > > > -----Original Message----- > > From: Seth McGinnis [mailto:mcgin...@ucar.edu] > > Sent: 26 October 2009 23:13 > > To: John Graybeal; Juckes, Martin (STFC,RAL,SSTD) > > Cc: cf-metadata@cgd.ucar.edu > > Subject: Re: [CF-metadata] Dealing with large numbers of flag values > > innetcdf cf > > > > On Mon, 26 Oct 2009 12:16:17 -0700 > > John Graybeal <grayb...@marinemetadata.org> wrote: > > >Love the question! :-> > > > > > >Are you saying every map location has one index value, which is one > of > > the > > >numbers from 1 to 827? So these are mutually exclusive? Or are > > there 827 > > >flag values assigned independently for each map location? > > > > It sounds to me like it's the former case, and the problem is that > > concatenating 827 flag values into a single string attribute makes > > something that is easy for a machine to interpret, but impenetrable > to > > the human reader. > > > > As I read section 3.5, there are no other options for encoding the > > information according to spec; a gigantic flag_meanings attribute is > > the right answer. > > > > But if the issue is really usability, I think the answer is not to do > > it differently, but just to add an extra attribute that presents the > > same information in a more user-friendly format. You could add an > > attribute named something descriptive, like "category_legend", and > > pair the values & meanings up, one per line. Then you'd end up with > > something that looks like this: > > > > > > float landtype(yc, xc) ; > > landtype:long_name ="Land cover type" ; > > landtype:standard_name ="land_cover" ; > > landtype:flag_values = 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, > 8.f, > > 9.f, > > 10.f, 11.f, 12.f, 13.f, 14.f, 15.f, 16.f, 17.f, 18.f, 19.f, 20.f, > 21.f, > > 22.f, > > 23.f, 24 .f; > > landtype:flag_meanings ="Urban_and_Built-up_Land > > Dryland_Cropland_and_Pasture Irrigated_Cropland_and_Pasture > > Mixed_Dryland/Irrigated_Cropland_and_Pasture > Cropland/Grassland_Mosaic > > Cropland/Woodland_Mosaic Grassland Shrubland > Mixed_Shrubland/Grassland > > Savanna > > Deciduous_Broadleaf_Forest Deciduous_Needleleaf_Forest > > Evergreen_Broadleaf > > Evergreen_Needleleaf Mixed_Forest Water_Bodies Herbaceous_Wetland > > Wooden_Wetland Barren_or_Sparsely_Vegetated Herbaceous_Tundra > > Wooded_Tundra > > Mixed_Tundra Bare_Ground_Tundra Snow_or_Ice" ; > > landtype:category_legend ="\n", > > "1: Urban and Built-up Land \n", > > "2: Dryland Cropland and Pasture \n", > > "3: Irrigated Cropland and Pasture \n", > > "4: Mixed Dryland/Irrigated Cropland and Pasture \n", > > "5: Cropland/Grassland Mosaic \n", > > "6: Cropland/Woodland Mosaic \n", > > "7: Grassland \n", > > "8: Shrubland \n", > > "9: Mixed Shrubland/Grassland \n", > > "10: Savanna \n", > > "11: Deciduous Broadleaf Forest \n", > > "12: Deciduous Needleleaf Forest \n", > > "13: Evergreen Broadleaf \n", > > "14: Evergreen Needleleaf \n", > > "15: Mixed Forest \n", > > "16: Water Bodies \n", > > "17: Herbaceous Wetland \n", > > "18: Wooden Wetland \n", > > "19: Barren or Sparsely Vegetated \n", > > "20: Herbaceous Tundra \n", > > "21: Wooded Tundra \n", > > "22: Mixed Tundra \n", > > "23: Bare Ground Tundra \n", > > "24: Snow or Ice" ; > > > > (Sorry for the length, but it gives a real sense of what I mean.) > > > > The flag_values and flag_meanings attributes are still a mess to look > > at, but they're easy to deal with programmatically, while end-users > > can easily look at category_legend and figure out what cover type 22 > > is if that's all they're after. > > > > Fundamentally, this is the same issue as the question of how to > record > > the grid mapping, and the underlying problem is that while attributes > > allow you to associate key-value pairs with a variable, there's no > way > > to nest another associative array within an attribute; the best you > > can do is reference a dummy container variable and look at *its* > > attributes. > > > > (Which is an approach that works well enough for the grid mapping > > problem. It may be worth formalizing / regularizing it and applying > it > > to any attribute sets that are grouped together and have a tendency > > toward being composed of long lists of elements...) > > > > Cheers, > > > > --Seth > > > > ---- > > Seth McGinnis > > mcgin...@ucar.edu > > NARCCAP Data Manager > > IMAGe / ISP / NCAR > > ---- > > > > >On Oct 26, 2009, at 0710, <martin.juc...@stfc.ac.uk> wrote: > > > > > >> Hello, > > >> > > >> I wonder if anyone can help with this problem: > > >> > > >> I have a file with a map of index values, ranging from 1 to 827. > The > > flag > > >meanings range from “Admiralty Islands lowland rain forests” to > > “Zambezian > > >halophytics”. I’m reluctant to combine all 827 flag meanings into a > > single > > >string for the “flag_meanings” attribute – is there a better way? > > >> > > >> Note that this is not my dataset, so that while suggestions for > > presenting > > >the data in a different way may be useful, they won’t solve my > > current > > >problem. The dataset is a eco-region analysis distributed by the > WWF > > and has > > >wide usage in its present form. > > >> > > >> Sincerely, > > >> Martin Juckes > > >> > > >> -- > > >> Scanned by iCritical. > _______________________________________________ > CF-metadata mailing list > CF-metadata@cgd.ucar.edu > http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata > > -- > This message (and any attachments) is for the recipient only. NERC > is subject to the Freedom of Information Act 2000 and the contents > of this email and any reply you make may be disclosed by NERC unless > it is exempt from release under the Act. Any material supplied to > NERC may be stored in an electronic records management system. _______________________________________________ CF-metadata mailing list CF-metadata@cgd.ucar.edu http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata