1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382
|
<html>
<head> <title>Ferret v6.02 release notes</title>
</head><Body><C><h1>
<B>Ferret Version 6.02 Release Notes</B></h1>
<font size=+1>27-April-2007</font>
<BR>
<P>Version 6.02 is primarily a bug-fix release.<BR>
<H2><A HREF="#new features">New Features and Enhancements in Version 6.02</A></H2>
<UL>
<LI><A HREF="#native_strides">Native strides for netCDF file access.</A>
<BR></LI>
<LI><A HREF="#batch">Enhanced BATCH mode, in which we can create multiple metafiles.</A>
<BR></LI>
<LI><A HREF="#new_return">New RETURN=xmod, RETURN=tmod</A> to get the modulo character of a grid.
<BR></LI>
<LI><A HREF="#orig_file_axname">Axis names preserved on netCDF output</A>
<BR></LI>
<LI><A HREF="#list_improvements">Improvements to ASCII list output</A>
<BR></LI>
</UL><BR>
<H2><A HREF="#bug fixes">Bug Fixes in Version 6.02</A></H2>
<UL>
<LI><A HREF="#set_var">Changes made by SET VAR/TITLE=/UNITS= were not saved in output file</A>
<BR></LI>
<LI><A HREF="#set_axis">Changes made by SET or DEFINE or CANCEL AXIS were not available to the
attribute-access commands</A>
<BR></LI>
<LI><A HREF="#long_sym">Long strings in symbols are now allowed</A>
<BR></LI>
<LI><A HREF="#global_missing">The global missing-value flag was not set for some datasets </A>
<BR></LI>
<LI><A HREF="#return_size">`var[d=fname.cdf],RETURN=size` failed </A>
<BR></LI>
<LI><A HREF="#parsing_tab">Parsing error when there was a tab before a comment </A>
<BR></LI>
<LI><A HREF="#plot_label">Plot was mis-labelled when variable had no long_name attribute</A>
<BR></LI>
<LI><A HREF="#upcase_bounds">"** netCDF error: Variable not found" when writing data with irregular axes</A>
<BR></LI>
<LI><A HREF="#vector_aspect">Vectors on VECTOR/ASPECT plots pointed in the wrong direction.</A>
<BR></LI>
<LI><A HREF="#save_two">Error message when saving variables with the same time axis to a file.</A>
<BR></LI>
<LI><A HREF="#irreg_ax">Error checking irregular axis failed, some axes.</A>
<BR></LI>
<LI><A HREF="#missing_string">Error listing a string variable when the last element is missing</A>
<BR></LI>
<LI><A HREF="#memxize">(32-bit linux only) Error listing a string variable when the last element is missing</A>
<BR></LI>
</UL>
<BR><HR><BR>
<H2><A NAME="new features">New Features and Enhancements in Version 6.02</H2>
<UL>
<LI><A NAME="native_strides">Native strides for netCDF file access. This lets us keep the original names of variables, while defining striding for faster access of data on large grids. The syntax is
<PRE>
yes? SET AXIS/STRIDE=[/OFFSET=] axisname
yes? CANCEL AXIS/STRIDE axisname
</PRE>
<P>For example,
<PRE>
yes? SET DATA "http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NGDC/.ETOPO5/dods"
yes? SHOW DATA
currently SET data sets:
1> http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NGDC/.ETOPO5/dods (default)
name title I J K L
ELEV elevation/bathymetry 1:4320 1:2160 ... ...
yes? SET AXIS/STRIDE=5 `elev,RETURN=xaxis`
yes? sET AXIS/STRIDE=5 `elev,RETURN=yaxis`
yes? SHOW GRID elev
GRID GCR1
name axis # pts start end
(AX004) LONGITUDE 864mr 0E 0.41699W(359.58)
(AX005) LATITUDE 432 i 89.916S 89.666N
normal Z
normal T
</PRE>
This is equivalent to the older (but still valid) striding syntax, which required us to define a new variable
<PRE>
yes? SET DATA "http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NGDC/.ETOPO5/dods"
yes? LET strided_elev = elev[i=1:4320:5,j=1:2160:5]
</PRE>
Now the data can be used as if it is on the smaller grid. If we want to resume use of the original grid,
<PRE>
yes? CANCEL AXIS/STRIDE `elev,RETURN=xaxis`
yes? CANCEL AXIS/STRIDE `elev,RETURN=yaxis`
</PRE>
<P>The offset if specified must be smaller than the stride. If a stride is not specified this qualifier is ignored. The OFFSET value refers to the first point to keep, i.e. these two command would define the same striding in X:
<PRE>
yes? SET AXIS/STRIDE=5/OFFSET=2 `elev,RETURN=xaxis`
yes? LET strided_elev = elev[i=2:4320:5]
</PRE>
For example,
<PRE>
yes? USE coads_climatology
yes? LIST sst[X=61:79,J=50,K=1,L=50]
VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
FILENAME : coads_climatology.cdf
SUBSET : 10 points (LONGITUDE)
LATITUDE : 9N
TIME : 15-FEB-0012 14:19
9N
50
61E / 21: 26.86
63E / 22: 27.00
65E / 23: 27.29
67E / 24: 27.69
69E / 25: 27.93
71E / 26: 28.08
73E / 27: 28.23
75E / 28: 28.32
77E / 29: 28.23
79E / 30: 27.82
yes? SET AXIS/STRIDE=4/OFFSET=2 `sst, return=xaxis`
!-> SET AXIS/STRIDE=4/OFFSET=2 COADSX
yes? LIST sst[X=61:79,J=50,K=1,L=50]
VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
FILENAME : coads_climatology.cdf
SUBSET : 3 points (LONGITUDE)
LATITUDE : 9N
TIME : 15-FEB-0012 14:19
9N
50
63E / 6: 27.00
71E / 7: 28.08
79E / 8: 27.82
</PRE>
This acts on the axis, so variables that share an axis, whether they come from a single dataset or several datasets that use the same exact axis, will all be affected by the strides.
<BR><BR></LI>
<LI><A NAME="batch">Enhanced BATCH mode, in which we can create multiple metafiles.
<P>Start Ferret with
<PRE>
> ferret -batch myfile.plt
</PRE>
<P>
When in this batch mode, xwindows are not used, and a new myfile.plt.~*~ file is started with each new plot "page" that we'd see when running interactively.
<P>
The following commands are ignored
<UL>
<LI>SET MODE METAFILE </LI>
<LI>CANCEL MODE METAFILE </LI>
<LI>SET WINDOW ! except for</LI>
<UL><LI>SET WINDOW/ASPECT applies the new aspect ratio</LI>
<LI>SET WINDOW/CLEAR starts a new metafile</LI>
</UL>
</UL>
<P>New plots may be started with these commands
<UL>
<LI>New plot command (if we are not in a viewport and not overlaying)<BR> PLOT,CONTOUR,SHADE,FILL,VECTOR,CONTOUR</LI>
<LI>CANCEL VIEWPORT </LI>
<LI>SET WINDOW/CLEAR</LI>
<LI>PPLUS/RESET</LI>
</UL>
<P>Note that there is still a choice of output graphics type when starting Ferret with -batch. Only one type may be chosen.
<PRE>
> ferret -batch metafiles.plt ! metafile
> ferret -batch psfiles.ps ! postscript
> ferret -gif ! gif output
</PRE>
In -gif mode, recall that we must use use FRAME/FILE= commands to create each gif image files.
<BR><BR></LI>
<LI>
<A NAME="new_return">New RETURN=xmod, RETURN=tmod to get the modulo character of a grid. It returns the modulo length of the axis in the units of the axis.
<PRE>
yes? USE coads_climatology
yes? SAY `sst,RETURN=xmod`
!-> MESSAGE/CONTINUE 360
360
yes? SAY `sst,RETURN=tmod`
!-> MESSAGE/CONTINUE 8765.8
8765.8
yes? SAY `sst,RETURN=tunits`
!-> MESSAGE/CONTINUE hour
hour
</PRE>
<BR><BR></LI>
<LI><A NAME="orig_file_axname">New attribute available, orig_file_axname
<P>When initializing a dataset, if Ferret encounters an axis name that's already in use,
it creates a new name by adding a digit, e.g. if TEMP is already in the list of axis names,
then it uses TEMP1 for the new data for uniqueness. When this happens, we continue to new name
with the dataset attribute information, and add an attribute orig_file_axname containing the
original name. That original name is used on output to a netCDF file.
<PRE>
yes? DEFINE AXIS/T=1:5:1 time ! create an axis called TIME
yes? USE coads_climatology ! there is also a TIME axis in this dataset
yes? show grid sst ! The time axis is called TIME1
GRID GSQ1
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
COADSY LATITUDE 90 r 89S 89N
normal Z
<B> TIME1</B> TIME 3mr 16-JAN 06:00 17-MAR 02:58
yes? ! Ferret automatically defines an attribute <B>orig_file_axname</B>
yes? SHOW ATTRIBUTE (TIME1).orig_file_axname
attributes for dataset: ./coads_climatology.cdf
(TIME1).orig_file_axname = TIME
yes? SAVE/FILE=a.nc/X=181/Y=1 sst ! This file has the time axis named <B>TIME</B>
</PRE>
<BR><BR></LI>
<LI><A NAME="list_improvements">Improvements to ASCII list output</A>
<P>When data contains missing values, LIST/FORMAT=comma or LIST/FORMAT=tab
now writes a comma or tab as placeholder for the missing value. Previously these
listings were ambiguous.
<PRE>
yes? LET a = {1,1,,1,1,,1,1}
yes? LET b = {4,4,4,4,4,4,4,4}
yes? LIST/FORM=comma a,b
X: 0.5 to 8.5
Column 1: A is {1,1,,1,1,,1,1}
Column 2: B is {4,4,4,4,4,4,4,4}
A,B
1 / 1:1,4
2 / 2:1,4
3 / 3:,4
4 / 4:1,4
5 / 5:1,4
6 / 6:,4
7 / 7:1,4
8 / 8:1,4
</PRE>
<BR><BR></LI>
</UL><BR>
<BR>
<H2><A NAME="bug fixes">Bug fixes in Version 6.02</H2>
<UL>
<LI><A NAME="set_var">Changes made by SET VAR/TITLE=/UNITS= were not saved in output file
<PRE>
yes? USE mydat.nc
yes? LIST/Y=1/K=1/L=1 temp !See the title and units
VARIABLE :<B> TEMPERATURE (deg. C)</B>
FILENAME : mydat.cdf
SUBSET : 3 points (LONGITUDE)
LATITUDE : 0.8N
DEPTH (m): 5
TIME : 15-MAR-1983 10:00
0.83N
48
160.5W / 70: 31.20
159.5W / 71: 31.34
158.5W / 72: 31.45
yes? ! Make changes to variable with SET VARIABLE
yes? SET VAR/TITLE="Temp"/units="DegC" temp
yes? SAVE/FILE=a.nc/CLOBBER temp
yes? CANCEL DATA/ALL
yes? USE a.nc
yes? ! The file has the NEW var title and units
yes? lIST/Y=1/K=1/L=1 temp
VARIABLE : <B>Temp (DegC)</B>
FILENAME : a.nc
SUBSET : 3 points (LONGITUDE)
...
</PRE>
<BR><BR></LI>
<LI><A NAME="set_axis">Changes made by SET AXIS or DEFINE AXIS were not available to the
attribute-access commands
<PRE>
yes? USE mydat.nc ! a dataset whose time axis needs changes
yes? ! Use DEFINE AXIS to redefine it.
yes? SET AXIS/T0="1-jan-2004"/UNITS=days `temp,RETURN=taxis`
yes? ! We can make further chages with SET AXIS
yes? SET AXIS/MODULO/CALENDAR=noleap `temp,RETURN=taxis`
yes? SHOW ATT/ALL `temp,RETURN=taxis`
!-> SHOW ATT/ALL TIME
attributes for dataset: ./mydat.nc
(TIME).units = DAYS
(TIME).time_origin = 1-JAN-2004
(TIME).orig_file_axname = TIME
(TIME).calendar = NOLEAP
(TIME).modulo =
yes? ! CANCEL AXIS may also be used to change axis features
yes? CANCEL AXIS/MODULO `temp,RETURN=taxis`
yes? SHOW DATA/ATT ! see dataset with all the attributes
currently SET data sets:
1> ./mydat.nc (default)
VARIABLE ATTRIBUTE NAME TYPE SIZE OUTFLAG VALUE
--------------------------------------------------------------------------------
...
(TIME) units CHAR 4 T DAYS
time_origin CHAR 10 T 1-JAN-2004
orig_file_axname CHAR 4 F TIME
calendar CHAR 6 T NOLEAP
</PRE>
<BR><BR></LI>
<LI><A NAME="long_sym">Long strings in symbols: Previously the value of a symbol was
cut off at 255 characters. Now they may be up to 2048 characters.
<BR><BR></LI>
<LI><A NAME="global_missing">The global missing-value flag was not set for some datasets;
if a netCDF file has no global attributes, and the variables do not have missing-value
attributes, the missing data flag was set to 0. This is fixed; Ferret's default missing
value of -1eE+34 is used.
<BR><BR></LI>
<LI><A NAME="return_size"> `var[d=fname.cdf],RETURN=size` failed, when the filename included
the dot and extension. This is fixed.
<BR><BR></LI>
<LI><A NAME="parsing_tab">Parsing error when there was a tab before a comment, the command-line
parsing was thrown off and we got an error about an invalid ENDIF. This is fixed.
<BR><BR></LI>
<LI><A NAME="plot_label">Plot was mis-labelled when the variable had no long_name attribute,
the plot had only the units label; now it is named with the variable name as well.
<BR><BR></LI>
<LI><A NAME="upcase_bounds">Error message "** netCDF error: Variable not found" when writing data with
irregular axes. These data are now written correctly with no messages.
<BR><BR></LI>
<LI><A NAME="vector_aspect">Vectors on VECTOR/ASPECT plots pointed in the wrong direction; this is fixed.
<BR><BR></LI>
<LI><A NAME="save_two">Error message when saving variables with the same time axis to a file.
<P>The error message was
<PRE>
" **TMAP ERR: attempt to redefine line
axis TIME doesnt match CDF file
</PRE>
This was a bug in matching the axis names, in the code that allows for CANCEL MODE UPCASE_OUTPUT. This is now fixed.
<BR><BR></LI>
<LI><A NAME="irreg_ax">Error checking irregular axis failed, some axes. Version 6.0 had a
new method for checking whether axes are irregular, when initializing a netCDF data set. For axes
whose coordinate spacing varies widely, this method failed, and the axis was designated regular.
This is now fixed.
<BR><BR></LI>
<LI><A NAME="missing_string">Error listing a string variable when the last element is missing
<PRE>yes? LET a = {"a", "b", }
yes? LIST a
VARIABLE : {"a", "b", }
SUBSET : 3 points (X)
1 / 1:"a"
2 / 2:"b"
3 / 3:""
</PRE>
<BR><BR></LI>
</UL>
<BR>
</BODY>
</HTML>
<!--#include virtual="/footer.txt" -->
|