1 | '''apicalls.py - test the api''' |
---|
2 | |
---|
3 | import csml,sys |
---|
4 | |
---|
5 | f='/home/dom/svn/trunk/csml/testfiles/gridseries/testout.xml' |
---|
6 | outputdir='GSout' |
---|
7 | |
---|
8 | #Initialise the CSML container |
---|
9 | csmlContainer=csml.API.csmlContainer.Container(outputdir, csmlname='out.xml',docID="mycsmldoc_1", metadata="mymetadatastring") |
---|
10 | |
---|
11 | #Initialise and parse the dataset |
---|
12 | csmldoc = csml.parser.Dataset() |
---|
13 | csmldoc.parse(f) |
---|
14 | |
---|
15 | #csmltree=csmldoc.toXML() |
---|
16 | #print csml.parser_extra.PrettyPrint(csmltree) |
---|
17 | #sys.exit() |
---|
18 | |
---|
19 | #get list of features in the dataset |
---|
20 | flist= csmldoc.getFeatureList() |
---|
21 | print '\n Here are all the features in %s:' %f |
---|
22 | print flist |
---|
23 | |
---|
24 | |
---|
25 | #select a feature by name (gml:id) |
---|
26 | print '\n Selecting feature with gml:id = %s' %flist[4] |
---|
27 | feature=csmldoc.getFeature(flist[4]) |
---|
28 | |
---|
29 | #get 'gml:id' xml attribute |
---|
30 | print feature.id |
---|
31 | |
---|
32 | #get the contents of the feature <description> element |
---|
33 | print feature.description.CONTENT |
---|
34 | |
---|
35 | #get the domain of the feature |
---|
36 | print '\n The feature has domain:' |
---|
37 | print feature.getDomain() |
---|
38 | |
---|
39 | #get list of allowed subsettings |
---|
40 | print '\n the following feature subsetting operations are allowed:' |
---|
41 | print feature.getAllowedSubsettings() |
---|
42 | |
---|
43 | |
---|
44 | #define a selection (based on the domain) |
---|
45 | #subsetDictionary={} |
---|
46 | ##subsetDictionary['time']=('2794-12-1T0:0:0.0', '2804-12-1T0:0:0.0') |
---|
47 | #subsetDictionary['time']='2704-12-01T00:00:00.0' |
---|
48 | ##subsetDictionary['latitude']=(-90,60) |
---|
49 | ##subsetDictionary['longitude']=(-31.1265,30.258) |
---|
50 | #subsetDictionary['latitude']=(-5,5) |
---|
51 | #subsetDictionary['longitude']=(-31.1265,30.258) |
---|
52 | #request subsetted data from features (can set paths here) and add to container |
---|
53 | #subset a feature |
---|
54 | |
---|
55 | #f.subsetToGridSeries(ncname='tmp1.nc', outputdir='.', latitude=(-90, 90), longitude=(-180,180), time='1975-07-15T00:00:00.0') |
---|
56 | |
---|
57 | #csmlContainer.add(feature.subsetToGridSeries(outputdir,ncname='mygridseries.nc',**subsetDictionary)) |
---|
58 | csmlContainer.add(feature.subsetToGridSeries(outputdir,ncname='mygridseries.nc',latitude=(-90,90), longitude=(-180,180),time=('2804-12-01T00:00:00.0','2904-12-01T00:00:00.0'))) |
---|
59 | |
---|
60 | #csmlContainer.add(feature.subsetToGridSeries(outputdir,ncname='mygridseries.nc',latitude=(60), longitude=(180),time=('2804-12-01T00:00:00.0','2904-12-01T00:00:00.0'))) |
---|
61 | |
---|
62 | ##subset another feature (in fact it's the same feature again, but this time subsetting to a profileseries) |
---|
63 | #subsetDictionary={} |
---|
64 | #subsetDictionary['time']=('2804-12-01T00:00:00.0','2904-12-01T00:00:00.0') |
---|
65 | #subsetDictionary['latitude']=(75) |
---|
66 | #subsetDictionary['longitude']=(45) |
---|
67 | |
---|
68 | ###assigning profileseries feature to variable |
---|
69 | ##print 'subset grid to profileseries' |
---|
70 | #psfeature, file, descriptor =feature.subsetToProfileSeries(outputdir, ncname='myprofileseries.nc',**subsetDictionary) |
---|
71 | #csmlContainer.add([psfeature,file, descriptor]) |
---|
72 | |
---|
73 | #csmlContainer.add(feature.subsetToProfileSeries(outputdir,ncname='myprofileseries.nc',latitude=(75), longitude=(45),time=('2804-12-01T00:00:00.0','2904-12-01T00:00:00.0'))) |
---|
74 | |
---|
75 | ##Now subset this New ProfileSeries feature into a Profile feature |
---|
76 | #print 'subset profileseries to profile' |
---|
77 | #subsetDictionary={} |
---|
78 | #subsetDictionary['time']=('2804-12-01T00:00:00.0') |
---|
79 | #csmlContainer.add(psfeature.subsetToProfile(outputdir, ncname='myprofile.nc',**subsetDictionary)) |
---|
80 | |
---|
81 | |
---|
82 | #Now try the subset to profile method of the grid series feature -BROKEN |
---|
83 | print 'subsetting gridseries to profile' |
---|
84 | subsetDictionary={} |
---|
85 | subsetDictionary['time']=('2804-12-01T00:00:00.0') |
---|
86 | subsetDictionary['latitude']=(80) |
---|
87 | subsetDictionary['longitude']=(55) |
---|
88 | csmlContainer.add(feature.subsetToProfile(outputdir, ncname='myprofile.nc',**subsetDictionary)) |
---|
89 | |
---|
90 | #Now try the subset to PointSeries method of the grid series feature |
---|
91 | print 'subsetting gridseries to pointseries' |
---|
92 | subsetDictionary={} |
---|
93 | subsetDictionary['time']=('2804-12-01T00:00:00.0','2904-12-01T00:00:00.0') |
---|
94 | subsetDictionary['latitude']=80 |
---|
95 | subsetDictionary['longitude']=55 |
---|
96 | #subsetDictionary['pressure']=(0) #BROKEN |
---|
97 | csmlContainer.add(feature.subsetToPointSeries(outputdir,ncname='mypointseries.nc',**subsetDictionary)) |
---|
98 | |
---|
99 | |
---|
100 | |
---|
101 | #when you have finished, get the contents of the container |
---|
102 | csmlbundle=csmlContainer.getContents() |
---|
103 | print 'CSML %s'%csmlbundle[0] # csml document |
---|
104 | paths=csmlbundle[1:] |
---|
105 | print paths #paths to netcdf files |
---|
106 | |
---|