Sections below: Float counts | Meta Files | Tech files | Plots & listings | Surface Pressure | TNPD


Argo file format and Surface Pressure correction compliance Audit


Argo Technical and Meta file compliance Audit

This page is automatically created by code which scans all files in the Argo GDAC.

Previous versions can be accessed via the CSIRO DMQC page

The audit purpose and method is described here

Compliance summary of this audit


Specific comments on this audit, based on Coriolis GDAC at 25 November 2011

I must apologies for the following deficiencies in the previous audit presented at ADMT12:

  • Weekend computer shutdowns prevented full GDAC downloads for several weeks prior to ADMT12
  • Software incompatibility with a new computer system caused miss-reading of some QC fields
  • I counted missing or incorrect PRES_ADJUSTED in all float types, but auto-correcting floats do not generally need RT ADJUSTED fields.

    These problems hid some of the good progress made by many centres leading up to ADMT12.

    Surface Pressure Parameter names

    There has been progress with removing invalid names, but some invalid names still remain:

  • PRESSURE_OFFSET_dBar (MEDS) - since apparently autocorrecting, can one of the official names be used for these PROVOR floats? Looks to be a cummulative offset, maybe PRES_SurfaceOffsetCorrectedNotReset_1cBarResolution_dBAR
  • PRES_OffsetAdjustment_dBar (AOML, SOLO) Apparently cumulative offset for an autocorrecting float - but we need to use a valid parameter name.
  • PRES_DescentStart...: this group of names is deprecated.

    Surface Pressure Correction

    Good progress (better than shown at ADMT12) from Coriolis and CSIO, and at most DACS, but still a way left to go for MEDS and KMA. A large portion of remaining "bad" pressure correction in DM files are due to invalid or missing Surface Pressure parameters.

    The Ok if allowed category in Compliance Summary: refers to 35,000 AOML floats. There fall into two categories:

  • those using SP parameter name 4 "PRES_SurfaceOffsetNotTruncated_dBAR", which is defined to be for non-auto-correcting floats - hence correction is required, but no correction has been applied. Either the parameter name should be changed or pressure correction be applied.
  • SP parameter names 8 and 10: these are defined to be auto-correcting but correction is allowed at discretion of PI. These are included in the count of "Ok if allowed" when the discretionary correction has been applied. There cases are not a problem.

    varying pressure correction in one profile

    PIs were contacted with details of non-constant PRES-PRES_ADJUSTED - ie the pressure correction appears to varies throughout a profile. These cases should be examined as they indicate something has gone wrong (At JMA these cases related to only small rounding errors. Some unresolved cases remain at MEDS.)

    missing or incorrect PRES_ADJUSTED

    Although over-estimated prior to ADMT12, this still appears to be a significant problem. Our decoding software finds about 90,000 profiles which lack valid PRES_ADJUSTED or PRES_ADJUSTED_QC fields.

    If no T, S or P adjustments are required in Realtime, as is often the case with auto-correcting floats, then ADJUSTED fields can be left unpopulated. However, if these fields are modified at all then they must be completely populated. Also, any floats which are not auto-correcting SHOULD have ADJUSTED fields, even if the adjustment is zero (this is my interpretation anyway!)

    The majority of missing PRES_ADJUSTED are AOML Apex floats which apparently require surface pressure correction but have no Realtime ADJUSTED data.

    In other DACs, some incorrect PRES_ADJUSTED profiles arise from:

  • fillval in PRES_ADJUSTED where QC<=3: .......... CSIO, CSIRO?
  • fillval in some parts of PRES_ADJUSTED and PRES_ADJUSTED_QC profile, and PRES_QC = '4'. In these cases PRES_ADJUSTED_QC should be '4' as well: ............. BODC, Coriolis, MEDS, KMA
  • other faults in QC variables: ............ JMA (4900294), MEDS, INCOIS, KORDI

    and a related defect in PRES_QC:

  • for some values in a profile, PRES=fillval and PRES_QC=' ': ........... Kordi

    Lists of these cases for each DAC can be accessed via the table at the bottom of the Plots Index Tables

    imperfect TNPD comments

    Completely fixed at CSIO and BODC, progress at MEDS but a lot of old files still to be changed. KMA is still (and increasingly) using

    "TNPD : APEX float that truncated negative surface pressure drift" 
        instead of
    "TNPD : APEX float that truncated negative pressure drift" 
    


    Jeff Dunn, Dec 5 2011 CSIRO



  • This analysis was based on GDAC as at 25 Nov 2011


    Float counts in DACs

    DAC details [explanations]
    DAC nameAOMLBODCCORIOLISCSIRONMDISJMAMEDSCSIOINCOISKMAKORDI
    # floats3977363126247411073317109237147119
    # Projects9650112212322
    # PIs18567111652442
    # Models14450311854632

    Floats in multiple DACS
    DACAOMLBODCCORIOLISCSIRONMDISJMAMEDSCSIOINCOISKMAKORDI
    # floats3977363126247411073317109237147119
    other dups--15-15------



    Meta files

    Meta files [explanations]
    DAC nameAOMLBODCCORIOLISCSIRONMDISJMAMEDSCSIOINCOISKMAKORDI
    # floats3977363126247411073317109237147119
    # meta files3977363126247411073317109236138119
    broken A-----------
    broken B--14--------
    Bad launch info3----------

    PLATFORM_MODEL
    The strings found in the PLATFORM_MODEL fields
    Strings have been converted to lower case and blanks removed to assist match-ups
    field contentsAOMLBODCCORIOLISCSIRONMDISJMAMEDSCSIOINCOISKMAKORDITOTAL
    Empty Field--------19-10
    apex------2--9993194
    provor--143----19-2662
    palace_n/a17----------17
    solo_sbe1508----------1508
    apex_sbe1714------774--1795
    soloof_fsi28----------28
    solo_fsi272----------272
    apexir_sbe229------12---241
    soloir_sbe110----------110
    apex_seascan10----------10
    solo2ir_sbe78----------78
    apex_n/a2----------2
    solo_sbe41cp1----------1
    provor_seascan1----------1
    provor_n/a6----------6
    provor_sbe1------12---13
    apex-sbe-335-461-834279-20739-2155
    martec-fsi-21---------21
    -sbe-2---------2
    martec-sbe-5---------5
    provor ctf2--61--------61
    apex sbe apf7--91--------91
    provor ctf3--38--------38
    provor cts2--160--------160
    apex sbe apf8--204--------204
    nemo--72--------72
    nemo 2.5--4--------4
    provor cts3--169-1---4--174
    apex sbe 41 apf8--7--------7
    arvor iridium--6--------6
    provor cts3 do--16--------16
    arvor--23----8---31
    provor cts3 4.82--20--------20
    provor cts3 v4.8--6--------6
    provor cts3-do--13--------13
    nemo with sbe 41--11--------11
    apex sbe41 apf8--45--------45
    apex apf9a f/w w--6--------6
    apex apf9a f/w--55--------55
    provor cts3 do 9--14--------14
    apex apf8 rev da--4--------4
    apex-apf8c--12--------12
    apex apf8 rey da--2--------2
    provor t--30--------30
    apex sbe apf8b s--3--------3
    apex sbe apf8b--14--------14
    apex sbe apf8 s--10--------10
    apex sbe apf8 sn--11--------11
    apex sbe apf8 2--1--------1
    apex sbe apf8--1--------1
    apex sbe-43f apf--3--------3
    apex apf9a f/w s--3--------3
    apex-apf9--19--------19
    apex-sbe-apf8c--3--------3
    apex-apf9a--65--------65
    provor bioargo--1--------1
    2625--1--------1
    apex-apf9a f/w--9--------9
    apex-sbe-apf9a--6--------6
    apex-apf9i--4--------4
    arvor-a3--2--------2
    apex sbe-41-alac--3--------3
    apex sbe-1-alace--1--------1
    apex sbe -41-ala--2--------2
    apex sbe-41 ap--2--------2
    apex sbe-41 apf--8--------8
    apex sbe-41 a--1--------1
    provor ct--5--------5
    apex sbe -41 apf--1--------1
    r1-sbe---10-2-----12
    palace-----4-----4
    alace_r1-fsi-----2-----2
    r1-sbe profiler-----1-----1
    r1-td-----9-----9
    provor-sbe-----13231----163
    ninja-tsk-----3-----3
    ninja-sbe-----15-----15
    tem. profiler-----1-----1
    apex-sbe-aandera-----7-----7
    provor-sbe cts-3-----14-----14
    nemo-sbe-----11-----11
    arvor-sbe-----27-----27
    apex-fsi-----3-----3
    pops-sbe-----3-----3
    apex-td profiler-----4-----4
    pops-provor-sbe-----1-----1
    p-alace------4----4
    apex-sbe/optode------1----1
    provor_fsi--------2--2

    Basic MODEL
    Grouping PLATFORM_MODEL fields by stanard float types
    Basic typeAOMLBODCCORIOLISCSIRONMDISJMAMEDSCSIOINCOISKMAKORDITOTAL
    Unknown-21--74-19-24
    apex1955335596461-84828289211138935008
    solo1997----------1997
    provor8-54731146311225-26799
    nemo--87--11-----98
    ninja-----18-----18
    martec-26---------26
    palace17----4-----21
    arvor--31--27-8---66
    r1---10-12-----22

    PLATFORM_MODEL field - APF9 Status [explanations]
    AOMLBODCCORIOLISCSIRONMDISJMAMEDSCSIOINCOISKMAKORDITOTAL
    Not APEX2022286661312253520269263071
    APEX not APF9--408--------408
    APEX unknown195533521461-84828289211138934433
    APEX APF9--167--------167
    Manual list*303--12-------315

    SENSOR pressure field
    * Sensor names converted to lower case and blanks removed to assist match-ups
    *AOMLBODCCORIOLISCSIRONMDISJMAMEDSCSIOINCOISKMAKORDITOTAL
    Empty Field-3821--5317---51151
    druck67--397----182--646
    mp40-c-2000-g14----------14
    n/a1555-87--------1642
    sbe41381----528-264--939
    sbe1----------1
    2900psia1494-90----75---1659
    sbe41cp453-18--99-84--582
    sstd10----------10
    2000dbar1----------1
    1500psia1----------1
    sbe-41-331---------331
    ectp202mar-21---------21
    sbe-41v3.0-4---------4
    sbe-41cp-4---------4
    sbe41cp-2900psia--21--------21
    sbe41cp?2900psia--97-1------98
    sbe41cp2900psia--5--------5
    none--6--------6
    3000psia--8--------8
    41--22--------22
    xxxx--59--------59
    41do--1--------1
    sbe41do--2--------2
    sbbe41v3.0--8--------8
    1600psia--3--------3
    paine---38-------38
    amatek---19-------19
    paine3000psia---2----21--23
    kistler---17-------17
    "druck"---1-------1
    straingauge_sbe41-----319-----319
    straingauge-----26-----26
    straingauge_sbe41cp-----89-----89
    straingauge_ctd-f01-----3-----3
    sbe41,2900psias/n4867-----1-----1
    sbe41,3000psias/n2657701518-----1-----1
    sbe37-----2-----2
    fsi41--------2--2
    endrow--------23--23
    sbecp41---------124114238
    sbe41v3.0---------14-14

    SENSOR pressure Maker field
    * names converted to lower case and blanks removed to assist match-ups
    *AOMLBODCCORIOLISCSIRONMDISJMAMEDSCSIOINCOISKMAKORDITOTAL
    Empty Field-3822--9----5839
    micron14----------14
    paines92----------92
    sbe959-26---3172681381141588
    n/a96-81--------177
    druck2713-217-1--68---2999
    2900psia67----------67
    kistler13-4----15---32
    seascan11----------11
    ametec12----------12
    seabird-3398474----226--1047
    fsi-21---1--2--24
    martec--6--------6
    sea-birdelectronics--4--------4
    manufacturerdruck--6--------6
    ametek--7--------7
    xxxx--61--------61
    none--1--------1
    nke--1--------1
    paine--4--------4
    sea-birdelectronics,inc._druck-----617-----617
    sea-birdelectronics,inc.-----158-----158
    sea-birdelectronics,inc.(druck)-----68-----68
    sea-birdelectronics,inc._kistler-----137-----137
    falmouthscientific,inc.-----4-----4
    sea-birdelectronics,inc._paine-----13-----13
    sea-birdelectronics,inc._ametek-----60-----60
    thetsurumi-seikico.,ltd.-----3-----3
    notspecified-----1-----1
    sea-birdelectronics,inc-----1-----1
    sea-birdelectronics,inc._-----1-----1

    SENSOR pressure Serial Number field
    S/NAOMLBODCCORIOLISCSIRONMDISJMAMEDSCSIOINCOISKMAKORDITOTAL
    # floats3977363126247411073317109237147119
    No decodable number43091150-120512019121667


    tech files

    Tech files [explanations]
    FormatAOMLBODCCORIOLISCSIRONMDISJMAMEDSCSIOINCOISKMAKORDITOTAL
    No profiles14918136-195761732272
    Missing------------
    Old1------7---8
    Old - Bad------------
    New382734512494681105431295231130877799
    New, no Surf Pres------------
    New, Bad format12-85--154----116
    V 2.3382734512494681105431295231130877799

    Surface Pressure Offset parameter name
    AOMLBODCCORIOLISCSIRONMDISJMAMEDSCSIOINCOISKMAKORDITOTAL
    Old format
    Other3--1-9131-2846
    surface_pressure-1---------1
    surface_offset------------
    pressure_sensor_offset------------
    start_surface_pressure1----------1
    pressure_offset_(counts)1----------1
    pressure_offset_(dbar)-------7---7
    pres_offsetadjustment_dbar------------
    pressure_offset_dbar------------
    pres_surfacecomplement_dbar------------
    New format
    Missing34-984-214----161
    pres_surfaceoffsettruncatedplus5dbar_dbar1052245408227-67121544139104-3105
    pres_surfaceoffsettruncated_dbar-----2-----2
    pres_surfaceoffsetnottruncated_dbar163974177241-19765438326872632
    pres_surfaceoffsetnottruncatedplus5dbar_dbar-----3-----3
    pres_surfaceoffsetcorrectednotreset_1dbarresolution_dbar-19294--8-----321
    pres_surfaceoffsetcorrectednotreset_1cbarresolution_dbar-----114-----114
    pres_surfaceoffsetbeforereset_dbar1001----------1001
    pres_surfaceoffsetbeforeresettruncated_dbar------------
    pres_surfaceoffsetafterreset_dbar------------
    pres_surfaceoffsetbeforereset_1dbarresolution_dbar-5168-113--4--191
    pres_surfaceoffsetbeforereset_1cbarresolution_dbar-2111--31-85--157
    pres_surfaceoffsetafterreset_1cbarresolution_dbar------------
    pres_surfaceoffsetbeforereset_5cbarresolution_dbar------------
    pres_surfaceoffsetafterreset_5cbarresolution_dbar------------
    pres_surfaceoffsetbeforereset_4mbarresolution_dbar------------
    pres_surfaceoffsetafterreset_4mbarresolution_dbar------------
    pres_descentstart_dbar31----------31
    pres_descentstartafterreset_dbar------------
    pres_offsetadjustment_dbar95----------95
    pres_surfaceoffsettruncatedplus3dbar_dbar-----1-----1
    pressure_offset_dbar------28----28
    Multiple SP names per profile1017----------1017
    SP name changes thru float lifetime77----------77
    % ok SP values [explanation]9696959910097979999100--

    Surface Pressure Offset parameter name vs model
    apexsoloprovornemoninjamartecpalacearvorr1UnknownAll models
    Other13132-------46
    surface_pressure1---------1
    surface_offset-----------
    pressure_sensor_offset-----------
    start_surface_pressure------1---1
    pressure_offset_(counts)-1--------1
    pressure_offset_(dbar)--7-------7
    pres_offsetadjustment_dbar-----------
    pressure_offset_dbar-----------
    pres_surfacecomplement_dbar-----------
    Missing2512178715--1-4157
    pres_surfaceoffsettruncatedplus5dbar_dbar3093-------12-3105
    pres_surfaceoffsettruncated_dbar---------2-
    pres_surfaceoffsetnottruncated_dbar17847992011--4-952627
    pres_surfaceoffsetnottruncatedplus5dbar_dbar3---------3
    pres_surfaceoffsetcorrectednotreset_1dbarresolution_dbar--301--19-1--321
    pres_surfaceoffsetcorrectednotreset_1cbarresolution_dbar--111-3-----114
    pres_surfaceoffsetbeforereset_dbar-1001--------1001
    pres_surfaceoffsetbeforeresettruncated_dbar-----------
    pres_surfaceoffsetafterreset_dbar-----------
    pres_surfaceoffsetbeforereset_1dbarresolution_dbar--182--5-3-1190
    pres_surfaceoffsetbeforereset_1cbarresolution_dbar--94----60-3154
    pres_surfaceoffsetafterreset_1cbarresolution_dbar-----------
    pres_surfaceoffsetbeforereset_5cbarresolution_dbar-----------
    pres_surfaceoffsetafterreset_5cbarresolution_dbar-----------
    pres_surfaceoffsetbeforereset_4mbarresolution_dbar-----------
    pres_surfaceoffsetafterreset_4mbarresolution_dbar-----------
    pres_descentstart_dbar123----16---31
    pres_descentstartafterreset_dbar-----------
    pres_offsetadjustment_dbar-95--------95
    pres_surfaceoffsettruncatedplus3dbar_dbar--------1-1
    pressure_offset_dbar--28-------28


    Plots and listings analysing the Surface Pressure Offset correction for all floats for each DAC are accessed through the Plots Index Tables. Separate tables link to all floats, or only floats with apparent SP correction anomalies, or only floats with apparent TNPD.


    Note: The following analyses were based on assumptions about behaviour of different types of floats, where "type" was here primarily defined by the Surface Pressure Offset parameter name. Some of these assumptions will be wrong, and some types are not analysed at all because I am unsure of their behaviour. It is probably necessary to also take basic float model (eg Apex or SOLO) into account to fully determine the pressure correction treatment required for a float, but it would be better if this could be fully determined by just the parameter name. My assumptions are recorded in this table.

    Surface Pressure Offset

    We have attempted to test for correct Surface Pressure (SP) correction of profile pressure.

    The difference between PRES and PRES_ADJUSTED is the DAC-applied pressure correction (assuming PRES is the raw P as reported by the float.)

    Correct application of this test depends on being able to deduce the correct float type and P adjustment from the meta and tech files. However this is not always possible due to missing or non-standard entries in these files.

    Our computed pressure correction is

         p_calc = PRES - (SP - adjustment)
    where adjustment is the known SP adjustment for a given float type (usually 5dbar). For Apex floats the SP reported with a profile actually relates to the previous profile, because it was recorded just as the float begins to descend. RT profile pressure can only be adjusted with the SP reported with the same profile, but in DM profiles the correct SP is used (ie for profile N,
         p_calc(N) = PRES(N) - (SP(N+1) - adjustment)
    So, in the provided plots , for floats which do not auto-correct, the "Calculated Correction" (CC) is
         For DM profiles:     CC = SP(N+1) - adjustment
         For RT profiles:     CC = SP(N) - adjustment
    For this reason, CC will differ from Raw Surface Pressure by the "offset", and will be displaced by one profile for DM profiles. The "DAC adjustment" should however agree with the CC.

    Interpretting the plots: For complete agreement in pressure correction, the "DAC Adjustment" (blue squares), should agree with the CC (red stars). Missing "DAC Adjustment" symbols can occur where there is no PRES_ADJUSTED profile (eg if QC=4). Missing CC symbols can occur where the DAC has provided an SP estimate (possibly by interpolation) but the automated process has not [due to different processing or because the tech files are not quite up-to-date.]

    Disagreement is likewise visible where "MPP minus CC" (cyan diamond) does not overlay "Min Corrected Pressure" (magenta square). The latter quantity is just the near-surface PRES_ADJUSTED value.

    Note that the raw SP symbols (blue diamond) are shown exactly as found in the tech files. That is, their x-coordinate is the cycle number corresponding to that value in the tech files.

    A light gray background is used where disagreement is between 0.1 and 1.0 dbar. This occurs frequently due to DAC smoothing of the SP series, or for other reasons.

    A dark gray background indicates disagreement greater than 1.0 dbar. Some of these cases are due to deficiencies in our automatic procedures, but some others appear to be related to processing faults at the DACs.

    An olive green background behind the CC value indicates an alternative correction method (such as allowed for SOLO floats) gives better agreement with the DAC value than the primary method. The CC value shown is then as derived by the alternative method. For example, SOLO floats are auto-correcting, so the primary method is "no correction". However, a secondary method - the normal SP(n+1) correction - may be applied in DM if there is evidence of strong drift.

    A very pale green background indicates that the DAC has explained how their adjustment is correct, or pointed out that the CSIRO audit software has made a mistake. Any disagreement in these profile is ignored when collating statistics.

    Extra information in upper frame on plots
    Name Colour/Where Meaning
    P Adj QCtop halfprofile minimum PRES_ADJUSTED_QC for each DM profile, value indicated by scale on left of frame
    DMLower middleDM processed profiles
    No P ADJLower middlePRES_ADJUSTED or PRES_ADJUSTED_QC profiles not fully populated
    TNPD CommentNear bottom Has correct pressure SCIENTIFIC_CALIB_COMMENT for a TNPD profile
    P ERR 2.4bottomprofile min PRES_ADJUSTED_ERROR==2.4
    P ERR 20bottomprofile min PRES_ADJUSTED_ERROR==20

    See the table which summarizes the results of this pressure correction audit for all DACs.

    Lists: for each DAC a text file (accessable through the Plots Index Tables) lists the result of checking the surface pressure correction for every float. The floats are grouped by PI. The lists give the number of DM profiles, total number of profiles, assumed surface pressure offset, and counts of profiles which agree exactly or disagree with my automated correction. Please note that in many cases the disagreement is because your DAC correction is a better choice than my automated one.

    Format example:

         5900033 DM 264/295 SPoffs=5 Diffs(dbar) =0[271] <1 [0] >1 [ 1 *]  

    Of 295 profiles for this float, 264 have been DM processed. 271 profiles exactly agree with my automated correction, 0 disagree by a small amount, but 1 disagrees by more than 1 dbar.


    TNPD

    Truncated Negative Drifting Pressure (TNPD) is a term used to describe Apex floats which truncate negative surface pressure values (all firmware prior to APF9) and the pressure sensor develops a strong negative drift. The usual cause of strong negative drift in these sensors is the "microleak" fault associated with Druck sensors. The pressure in profiles affected by TNPD cannot be corrected for surface pressure offset.

    The first step in detecting TNPD is to determine if a float is of the type where such an fault might occur. We have attempted to do this using the tech and meta files alone, but this is not always possible.

    The next step is to find where the reported SP (corrected for 5dbar adjustment if necessary) has "flat spots" on zero, indicating that negative values are being truncated. Previously a float with 80% SP=0 was declared to be TNPD. We now say that any susceptible float is in a TNPD state after the last believable positive SP value. This is because the strong negative drift condition is typically monotonic, so if such a condition has commenced then typical variability will not give rise to small positive SP values.

    The main difficulty of this approach [assuming the basic assumptions are correct] is determining when isolated positive values are natural perturbations about a small negative value, or when they are just sensor error spikes. In the present analysis I have used (for the first time) the crude test that a positive value > 1dbar which has 2 zero values immediately either side of it, is a spike that can be ignored. [This differs to the standard despiking process used to prepare the SP series for pressure correction because here we just want a simple way of assessing where an SP series is devoid of true +ve values.] Obviously this is very imperfect - there is no substitute for skilled DM analysis, and in very many cases the DAC will be right and our algorithm will be wrong.

    Another deficiency of our algorithm is that is [apparently] extremely unlikely that microleaking will start after years of correct operation. For example, if SP is 0 for the last 5 of 200 profiles then the algorithm says TNPD commenced at profile 196. The time of onset of TNPD is examined in this set of TNPD plots. That page also includes plots which examining whether, for different sensor types, a large negative drift can be followed by recovery to plausible positive SP values.

    "Start of TNPD" in the surface pressure plots provided indicates where TNPD appears to commences, according to the above algorithm, if that is at least 6 months before the last DM profile. If the condition is met with less than 6 months of subsequent DM profiles, then 'Potential TNPD' is displayed. Where some of the float series has been DM processed, extra information is provided for the DM profiles in an extra frame at the top of the figure.

    See the table which summarizes the results of this TNPD treatment audit for all DACs.

    Lists: for each DAC two text files (accessable through the Plots Index Tables) list the result of checking for TNPD. The floats are grouped by PI. The "short" list gives the cycle number ("pn") where TNPD appears to start, and counts of profiles which appear to require the TNPD comment string and do not have it ("missed"), or do have the comment string ("good"), or have a comment string which is not precisely the standard string ("imperfect"). The list also notes where we have NOT detected TNPD but have found the TNPD comment string.

     

    Legal Notice and Disclaimer | Copyright | Privacy | Page author: Jeff Dunn | Contact: Jeff.Dunn@csiro.au