view WHATSNEW-2.0 @ 2335:def41e5fe603

1) Save start value for time coordinate. 2) Don't append fractional seconds to time in filename
author bert <bert>
date Fri, 22 Jul 2005 20:02:45 +0000
parents 9358760eae61
children 9ffa7f508a82
line wrap: on
line source

Release 2.0.05 ("beta 1")
--------------

This version represents several weeks of effort cleaning up the
existing code and trying to put things into better shape for a
release.  In particular, the existing test suites ("make check") now
run for both MINC 1.0 and MINC 2.0 format files.

One functional change is that the MINC 2.0 tools should now create
MINC 2.0 format files by default if all of the input files are
themselves in MINC 2.0 format.  In other words, you only have to
specify the "-2" option to force a MINC 2.0 file if one or more of
your input files are MINC 1.0 format.  The environment variable
"MINC_FORCE_V2" should force all output to MINC 2.0 even if MINC 1.0
files are present at the input.

There is additional documentation on the new "2.0" MINC programming
interface.  This is still very much a work in progress so your
feedback is very much appreciated, both as to the form and content of
these documents:

libsrc2/doc/minc_20.tex - Interface reference
libsrc2/doc/minc2_uguide.tex - Programmer's guide

This distribution will build its libraries as "libminc2.a" and
"libvolume_io2.a", rather than the previous "libminc.a" and
"libvolume_io.a".  This decission was intended to make it easier to
keep both MINC1 and MINC2 libraries installed simultaneously, but this
may prove to be unwieldy or unnecessary.  We welcome suggestions from
beta testers.

Release 2.0.01 - 2.0.03 ("alpha"):
---------------

1. SUPPORT FOR HDF5 "MINC 2.0" FORMAT FILES.

1.1 HDF5

This change requires that HDF5 must be installed before MINC can be
built.  The latest version of HDF5 is 1.6.2.  You can obtain HDF5
here:

http://hdf.ncsa.uiuc.edu/HDF5/release/obtain5.html

You should NOT need to become an HDF5 expert to use MINC 2.0.
However, two tools included with HDF5 may prove useful, "h5dump" and
"h5ls".  h5dump is roughly equivalent to netCDF's ncdump utility.
There is no exact netCDF tool analogous to h5ls.  h5ls is useful for
exploring and extracting bits of the HDF5 hierarchy.

1.2 New command Line options

All MINC tools which produce output MINC files now take a "-2" option
which will tell the tool to output a MINC 2.0 format file.  All MINC tools
also take a "-version" flag.

1.3 Compatibility

To the extent possible, the core MINC tools should operate "correctly"
on MINC 1.0 and 2.0 files.  There are a few notable exceptions.
Scripts such as "mincdiff", "mincedit", and "mincheader" may not
work, or will produce odd results since they depend on the ASCII
format of the netCDF "ncdump" and "ncgen" utility.  I'm open to
suggestions for the best way to handle this.  We have an unfinished
"mincdump" tool which replaces "ncdump", but we do not yet have a
replacement for "ncgen".

1.4 Conversion

There is a new conversion utility called "mincconvert".  This is just
a trivial library wrapper that can copy a file from the input to the
output while performing a conversion.

2. REVISED ERROR MESSAGE HANDLING.

I have somewhat revised the ways in which MINC decides when and how to
print error messages, with the hope to gradually improve the readability
and usefulness of these messages.  In some cases I have probably been too
aggressive, and messages will now appear which really don't belong.  Please
let me know which ones are most annoying, and I'll try to get rid of them.

3. TENTATIVE ".mincrc" AND ENVIRONMENT VARIABLE SUPPORT

I've implemented this as a way to control certain behaviors of the library
which are not readily available through other means. These variables may
be defined either in your environment, or in the .mincrc file in your
home directory.  The value in the environment should override the one in
.mincrc. 

Here's what exists so far:

# Force output files to MINC 2.0 format, regardless of the "-2" option.
#
MINC_FORCE_V2 = {1, 0}

# Desired ZLIB compression level.  Zero implies no compression, a value
# of 4 gives a good tradeoff of compression and performance.
#
MINC_COMPRESS = {0..9} 

# Desired HDF5 chunking dimension.  This controls the size of the
# "hypercube" used by HDF5 to store the file.  If set to zero, the
# file will not be stored in a chunked format, unless compression is
# enabled.  The chunk size will automatically be reduced if it exceeds
# any actual dimension of the volume.  If chunking is enabled
# automatically because of compression, the default chunk dimension is
# 32.
#
MINC_CHUNKING = {0..N}

# Log file - path to the desirned output file for messages.  The default
# is the standard error (stderr) stream.  To redirect to standard output,
# set this variable to "stdout" or "-".  Otherwise the variable is taken
# to be the path to the desired log file.  If the path name begins with
# a '+' character, the log file should be appended rather than recreated.
#
MINC_LOGFILE = [+]<pathname>|stdout|-

# Logging level.  Not really useful yet, but intended to allow setting
# of 'verbosity' of messages.  A value of zero would inhibit all but
# fatal messages, a value of 4 would allow debugging messages.
#
MINC_LOGLEVEL = 0-4

4. NEW PROGRAMMING INTERFACE

4.1. New MINC 1.0 calls

A couple of new things have been added to libminc:

 /* Returns a printable library version string */
const char * miget_version();

/* Appends "new_history" to the file's history attribute. */
int miappend_history(int fd, const char *new_history);

4.2. New MINC 2.0 calls

This is a new set of calls, defined in "minc2.h" and the assorted source
files found in the libsrc2 directory.

The general philosophy is to provide a higher level interface than "libminc",
but without some of the constraints and memory management of "volume_io".

The library is largely implemented but is still incomplete.  In general
functions which are most obviously useful and standard have been implemented,
while some of the more esoteric features have not been finished.  I would
appreciate all comments and criticisms both of the overall design and
the specific implementation.

Documentation for the new calls can be found at:

http://www.bic.mni.mcgill.ca/software/minc2/api_doc/index.html

That's all for now.  Please direct all comments and complaints to me,
bert@bic.mni.mcgill.ca