Giter Site home page Giter Site logo

rads's People

Contributors

andreustaylor avatar clinew avatar dr-lunch avatar jmkuhn avatar leuliett avatar remkos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rads's Issues

Bug in math function GAUSS

Weighting function does not depend on dimension y:
             w = top%prev%data(j) - top%prev%data(i)
             w = exp (x * x * z)
should be:
             w = top%prev%data(j) - top%prev%data(i)
             w = exp (w * w * z)

Original issue reported on code.google.com by [email protected] on 10 Jan 2014 at 9:04

Using math operators and data fields as vectors

Please describe what type of enhancement is requested.

In RADS3, data fields could be used as vectors, if a dollar sign ($) followed 
the field number. Is the feature available in RADS4? In particular, I would 
like a method to use SMTHIONO in the XML <data> element.

If math operations on vectors are possible, I plan to submit two other feature 
requests: 1) add the DDT operator from GMT and 2) add an arbitrary-length 
along-track smoothing operator(s), i.e. <data>sla 10 BOXCAR</sla>, etc.


Original issue reported on code.google.com by [email protected] on 17 Dec 2013 at 1:24

radscolin4 output to NetCDF fails

What steps will reproduce the problem?
radscolin4 -Vsla,time,lat,lon -Sj2/a -C1,10 -P238 -o

Produces a file radscolin_p0238.nc with all fields set to NaN

Additionally, it produces the error:
radscolin4: NetCDF: Numeric conversion not representable

The ASCII output (produced without the -o) is fine.

Original issue reported on code.google.com by [email protected] on 20 Sep 2013 at 5:52

Should -L spawn quality check?

I'm trying to use the distance to coast as a limit in RADS4. In my mind, if I 
call:
    radsstat4 -c -Sj2/a -Vsla -Ldist_coast=300,10000
then I would think that -Ldist_coast=300,10000 should read dist_coast and apply 
the limits, even though it doesn't appear in the variables (-V) list.

In RADS3 I worked around this by using opt:
radsstat -c sat=j2/a sel=0 opt=4501 lim:45=300,10000

But, that doesn't work in RADS4, I assume because opt is now equivalent to an 
alias.

Original issue reported on code.google.com by [email protected] on 6 Jul 2012 at 2:27

Load multiple XML files with multiple -X or --xml= calls

Rather than concatenating multiple xml files into a single file, it would be 
more convenient to include multiple separate -X flags for separate files. For 
example:

radsstat4 -c sat=j2 -Xno_inv_bar.xml -Xexclude_cycles.xml

would produce the same output as:
cat no_inv_bar.xml exclude_cycles.xml > merge.xml
radsstat4 -c sat=j2 -Xmerge.xml


Original issue reported on code.google.com by [email protected] on 14 Jun 2012 at 12:15

radsstat4 repeats date at beginning of cycle

What steps will reproduce the problem?
radsstat4 -c -Sj1 -C50,55

What is the expected output? What do you see instead?
# Statistics of RADS variables (box weight)
# Created: 2013-01-31 15:15:02 UTC: radsstat4 -c -Sj1 -C50,60
#
# Satellite : j1/a
# Cycles    :   50 -   60
# Passes    :    1 -  280
#
# Output columns:
#    ( 1) cycle
#    ( 2) date at beginning of cycle [YYMMDD]
#    ( 3) nr of measurements
#    ( 4) mean time [seconds since 1985-01-01]
# ( 5- 6) mean and stddev of sea level anomaly [m]
 50 030516   506022  580093605.  -0.00538   0.10431
 51 030516   502845  580949891.  -0.00550   0.10277
 52 030516   497699  581807776.  -0.01190   0.10057
 53 030516   496214  582664351.  -0.01093   0.10001
 54 030516   490364  583521661.  -0.01051   0.09817
 55 030516   489908  584377784.  -0.00846   0.10043

Original issue reported on code.google.com by [email protected] on 31 Jan 2013 at 3:16

NAN operator not in rads_math.f90

What steps will reproduce the problem?
radsstat4 -c sat=j2

Produces output:
radsstat4: Error loading variable "cycle_check"
radsstat4: Variable "NAN" not found
           2  remaining items on stack
radsstat4: Cleaned up

when rads.xml is
<var name="sla">
  <quality_flag sat="j2" action="append">cycle_check</quality_flag>
</var>
<var name="cycle_check">
  <math>cycle 19 NEQ 0 NAN</math>
</var>

Original issue reported on code.google.com by [email protected] on 11 Jun 2012 at 6:31

radsstat sometimes produces incorrect date at beginning of cycle [YYMMDD]

What steps will reproduce the problem?
1. radsstat4 -c -Sj2/a.mle4 -C36,128

What is the expected output? What do you see instead?
The date for cycle 127 is incorrect:
# Output columns:
#    ( 1) cycle
#    ( 2) date at beginning of cycle [YYMMDD]
#    ( 3) nr of measurements
#    ( 4) mean time [seconds since 1985-01-01]
# ( 5- 6) mean and stddev of sea level anomaly [m]
 36 090624   466243  772854425.  -0.09082   0.09655
127 090704   478589  850816443.  -0.07977   0.10446
128 111223   484152  851673553.  -0.08259   0.10547



What version of the product are you using? On what operating system?


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 6 Jul 2012 at 3:51

Consolidate <netcdf> <math> <grid> to one <data> tag

Instead of having different tags <netcdf> <math> <grid> it would be good to 
have one <data> tag, since they cannot be used simultaneous anyhow. The single 
tag prompts the idea that any next <data> tag overwrites the previous (or adds 
when 'action="append"' is used.

It should be easy to recognise the source in <data> tags:
- If contains ".nc", then grid
- If contains " " then math
- If starts with [0-9\-+.] then constant (new source type)
- If contains ":" then netcdf attribute
- Otherwise netcdf variable

One should also be able to use 
source=grid,grid_l,grid_c,grid_q,math,constant,nc_att,nc_var,netcdf

Original issue reported on code.google.com by [email protected] on 12 Jun 2012 at 12:42

Simultaneously calling -Ldist_coast and --opt=4501 causes a segmentation fault

What steps will reproduce the problem?
radsstat4 -c -Sj2 --opt:45=1 -Ldist_coast=300,100002.
radsstat4 -c -Sj2 --opt=4501 -Ldist_coast=300,10000
rads2asc4 -Sj2 --opt=4501 -Ldist_coast=300,10000 -C10 -P100

Calling only --opt=4501 or -Ldist_coast=300,10000 separately does not produce 
the error.

all produce:
Segmentation fault - invalid memory reference

Original issue reported on code.google.com by [email protected] on 11 Jul 2012 at 2:26

radscolin column ranges are incorrect for ASCII output

What steps will reproduce the problem?
radscolin4 -Sj2 -C1,3 -P100 -V0,2,3

What is the expected output? What do you see instead?
The range misses an increment for each set of columns. The output is:
# Column ranges for each variable:
#    1 -   3 : sea level anomaly [m]
#    3 -   5 : latitude [degrees_north]
#    5 -   7 : longitude [degrees_east]
#    7       : number of measurements
#    8       : record number


Original issue reported on code.google.com by [email protected] on 3 Jul 2012 at 11:52

Wrong daily stats in radsstat4

Still get errors in daily stats with radsstat4:

radsstat4 -Sc2 -C38,39 -Vsla

130317    47484  890135178.   0.02245   0.10135
130318    45500  890221762.   0.02292   0.10892
130319    46996  890307602.   0.02245   0.10423
130320      216  890352091.   0.03479   0.06510
130320   137352  890480836.   0.02378   0.10348
130323    46628  890653908.   0.02301   0.11371
130324    46028  890740360.   0.02480   0.10949

2013-03-20 is at the transition of cycles 38 and 39.

Original issue reported on code.google.com by [email protected] on 18 Dec 2013 at 3:32

rads_gen_c2_l1r.f90 wrongly detects "File too long"

Michael R. Shannon/University of Colorado, Boulder reported c2p0782c048.nc had 
no data. The C2 logs show:

SIR_FDM_L1/LATEST/CS_OFFL_SIR_FDM_1B_20131228T100538_20131228T101050_B001.nc ...
Error: File too long (covers 3 passes)

In CS_OFFL_SIR_FDM_1B_20131228T100538_20131228T101050_B001.nc:
pass_number = 782, 1 ;

rads_gen_c2_l1r.f90 issues the error because passnr(1) > passnr(2), even though 
nrec = 331.
        if (passnr(1) > passnr(2) .or. (passnr(1) == passnr(2) .and. nrec > 4000)) then


Original issue reported on code.google.com by [email protected] on 3 Jan 2014 at 6:48

radscolin: Option to "Keep all collinear tracks" produces no output if first column is entirely NaN

When the -r0 flag is radscolin no output is produced if the entire column is 
NaNs:
For example,
radscolin4 -r0 sel=0 lat=-35,-30 sat=tx/a cycle=120 pass=149
produces no output.

In RADS3, a column of NaNs and statistics were produced:
radscolin -r0 sel=0 lat=-35,-30 sat=tx/a cycle=120 pass=149

# Satellite data selections:
#
#   1: sat=tx/a cycle=120 pass=0149
#
# Columns   1 -   1 : sea level anomaly [m]
#
      NaN
      NaN
      NaN
      NaN
      NaN
      NaN
      NaN
      NaN
      NaN
      NaN
      NaN
      NaN
      NaN
# avg:       NaN 120  149
# rms:       NaN 120  149
# nr :      0   120   149

Original issue reported on code.google.com by [email protected] on 17 Apr 2012 at 8:30

radsstat producing erroneous fatal error

What steps will reproduce the problem?
radsstat4 sat=j2/a --var=sla

What is the expected output? What do you see instead?
radsstat4: Variable "?c<\?`a" not found
radsstat4: Unknown variable "?c<\?`a" removed from list of variables
radsstat4: Fatal error2.

Original issue reported on code.google.com by [email protected] on 15 Jun 2012 at 7:16

radscolin produces Segmentation fault - invalid memory reference

What steps will reproduce the problem?
1. radscolin4 -Vsla,lat,lon -P0173 -Sj2/a -C195,200

Seg fault occurs for -P173 and last cycle >= 200. Other passes or cycle 
combinations produce normal output.
(At the time that the seg faults occurred, the last cycle/pass of j2/a in RADS 
was cycle 200, pass 193.


Original issue reported on code.google.com by [email protected] on 14 Dec 2013 at 12:05

New arguments to specify satellite and phase (-S and --sat=) aren't interpreted correctly by radscolin

The RADS3 argument sat= produces the correct output:
radscolin4 -r0 sat=tx -P227 -C10-20

The --sat= flag produces the error "radscolin4: Failed to find "-S" or "--sat=" 
on command line":
radscolin4 -r0 --sat=tx -P227 -C10-20

The -S flag produces no error, but only two cycles of output:
radscolin4 -r0 -Stx -P227 -C10-20

! $Id: radscolin.f90 71 2011-10-29 02:39:46Z [email protected] $

Original issue reported on code.google.com by [email protected] on 17 Apr 2012 at 3:30

Reassign -d and -s option of radsxolist

radsxolist
-d = print difference
-s = statistics only

This clashes with radsxogen options
-d = duals only
-s = singles only
which would be useful for radsxolist as well.

Thus reassign -d to -s to
-l = list both crossover values (both legs)
-n = do not list individual crossovers, only statistics
That makes listing the differences the default.

Original issue reported on code.google.com by [email protected] on 19 Jun 2012 at 2:00

radsstat gives incorrect date at beginning of cycle for first cycle

What steps will reproduce the problem?
1. radsstat4 -c sat=tax cycle=10,12

What is the expected output? What do you see instead?
Expected:
 10 921221   470414  251975738.    0.0175    0.0970
 11 921231   426335  252788665.    0.0188    0.0986
 12 930110   380787  253683497.    0.0144    0.1001
Seen instead:
 10 110321   470414  251987350.   0.02976   0.10429
 11 921231   426335  252795490.   0.02730   0.10284
 12 930110   380787  253694379.   0.03177   0.10650

Original issue reported on code.google.com by [email protected] on 5 Jun 2012 at 7:14

Use command line parsing à la getopt

Command lines should be parsed the way getopt does it, so that we can use

-Sj2
-S j2
--sat=j2
--sat j2

This work has already been started by implementing (in revision r187) a well 
working mimic of getopt/getopt_long in rads_misc.f90.

Original issue reported on code.google.com by [email protected] on 22 Jun 2012 at 3:17

cycle= not recognised in radsstat

What steps will reproduce the problem?
1. radsstat4 -c cycle=0,1 sat=j2/a  

What is the expected output? What do you see instead?
Output does not stop after cycle 1

Original issue reported on code.google.com by [email protected] on 27 Jul 2012 at 9:03

Conflicting -C flag definitions for rads2grd

In rads2grd4 the -C flag has two definitions:
-C boundaries are cell oriented
-C specify first and last cycle and modulo

What steps will reproduce the problem?
1. rads2grd4 sat=j2 -Cx -C10 grd=j2c010_cx.nc

What is the expected output? What do you see instead?
Should produce the same output as:
rads2grd4 sat=j2 -Cx cycle=10 grd=j2c010_cx.nc


Original issue reported on code.google.com by [email protected] on 5 Jun 2012 at 7:29

Variables replaced with alias are not reported in headers, etc.

What steps will reproduce the problem?
rads2asc4 --sat=j1/b sel=0,414,416 -C263 -P100
radsstat4 -c --sat=j1/b sel=0,414,416
etc.

The header rads2asc4 and radsstat4 do not report aliased variables:
# Col  5    = EIGEN-GL04c orbital altitude [m]
# Col  6    = GPS orbital altitude [m]

In RADS3 the alias was reported:
# Col  5    = orbital altitude, CNES EIGEN-GL04S [m]
# Col  6    = alias: orbital altitude, CNES EIGEN-GL04S [m]

Original issue reported on code.google.com by [email protected] on 9 Jul 2012 at 3:31

radsstat4 prints statistics for 2-second intervals rather than per 1 day as default

radsstat4 -Sj2 -Vsla

What is the expected output? What do you see instead?

# Statistics of RADS variables (box weight)
# Created: 2013-02-06 19:28:28 UTC: radsstat4 -Sj2 -Vsla
#
# Satellite : j2/a
# Cycles    :    0 -  200
# Passes    :    1 -  254
#
# Output columns:
#    ( 1) date [YYMMDD]
#    ( 2) nr of measurements
#    ( 3) mean time [seconds since 1985-01-01]
# ( 4- 5) mean and stddev of sea level anomaly [m]
080712        2  742440341.   0.02870   0.02390
080712        2  742440344.   0.05075   0.01633
080712        2  742440346.   0.09745   0.00460
080712        2  742440348.   0.11465   0.04787
080712        2  742440350.   0.15200   0.01923
080712        2  742440353.   0.11400   0.05218
080712        2  742440355.   0.06005   0.08676
080712        2  742440357.   0.04265   0.04688
080712        2  742440359.   0.06660   0.03861
080712        2  742440361.   0.00665   0.04490
080712        2  742440363.   0.00690   0.01400
080712        2  742440365.  -0.05980   0.03620
080712        2  742440367.  -0.05140   0.02715
080712        2  742440369.  -0.09355   0.08309
080712        2  742440371.  -0.07850   0.03592
080712        2  742440373.  -0.01895   0.06470
080712        2  742440375.  -0.01825   0.02496
080712        2  742440377.  -0.02605   0.03585
080712        2  742440379.  -0.03225   0.04405

Original issue reported on code.google.com by [email protected] on 6 Feb 2013 at 7:28

Error in dry tropo height reduction over Caspian

As reported by Joana Fernandes:
On the SARAL and CryoSat-2 data the height reduction over the Caspian is not 
done, i.e., there is no reduction to a constant -27 m.
The error has already been found in all three programs: rads_gen_ecmwf.f90, 
rads_gen_era.f90, and rads_gen_ncep.f90. The switch on whether the data is over 
the Caspian is wrong. Were it says surface_type > 2.5, it should have been < 
2.5.
This will require fixing the code and a rerun of those programs on all SARAL 
and CS2 data.

Original issue reported on code.google.com by [email protected] on 1 Oct 2013 at 4:08

radscolin: Do not output pass data flag produces error

What steps will reproduce the problem?
 radscolin4 -d -Sj1 -C240 -Vsla

What is the expected output? What do you see instead?
# Pass      = 0001
# Satellite =
# Cycles    =
#
# Column ranges for each variable:
#    1 -   0 : sea level anomaly [m]
#    1       : number of measurements
#    2       : record number
#
At line 430 of file radscolin.f90 (unit = 6, file = 'stdout')
Fortran runtime error: Expected P edit descriptor in format
(f8.4, -1(1x,f8.4))

Original issue reported on code.google.com by [email protected] on 19 Mar 2013 at 5:09

radsxogen crash when omitting phase

Example in r166
radsxogen -Sj1 -C382 (crashes with Segfault)
radsxogen -Sj1c -C382 (works)

Seems to be unique to j1
radsxogen -Se1 -C20 (works)
radsxogen -Se1 -C106 (works)

Original issue reported on code.google.com by [email protected] on 19 Jun 2012 at 2:07

Command line in files produced by RADS tools

GMT embeds the command line used into the metadata. It's imperfect in GMT, 
especially when stdin is piped into a GMT command and that part of the line 
isn't recorded.

Similarly, it would be useful if the RADS command line was reported to stderr 
in rads4asc, stdout in radsstat, and into the NetCDF or ascii for rads2grd. 
It's not perfect -- it wouldn't keep a record of the xml used, but that could 
be left to a user to archive if necessary.

Original issue reported on code.google.com by [email protected] on 14 Jun 2012 at 11:02

rads2grd4 interprets --x as --xml

What steps will reproduce the problem?
rads2grd4 -Sj2 -C300 --x=0,10

What is the expected output?
Expect --x to be interpreted as a limit

What do you see instead?
This error message:
rads2grd4: Requested XML file 0,10 does not exist in current directory,
rads2grd4: nor in /Volumes/rads/data/conf, nor in /Users/leuliett/.rads

Original issue reported on code.google.com by [email protected] on 19 Aug 2013 at 6:00

Mean time, mean and stdev of field output differs in radsstat from RADS3

What steps will reproduce the problem?
1. radsstat4 -c sat=j2 sel=17 cycle=1,10

What is the expected output? What do you see instead?
Expected:
  0 080704   418230  742110750.  2.6147  1.7131
  1 080712   549507  742882560.  2.6839  1.7630
  2 080721   575711  743725413.  2.7283  1.7680
  3 080731   556931  744587232.  2.4203  1.6236
  4 080810   572162  745438605.  2.6272  1.7385
  5 080820   548914  746287966.  2.4777  1.6391
  6 080830   566845  747150547.  2.7568  1.8056
  7 080909   563671  748009283.  2.4719  1.6152
  8 080919   571703  748865148.  2.6497  1.7674
  9 080929   572229  749721091.  2.5959  1.7226
 10 081009   572049  750578245.  2.6746  1.7228
Seen:
  1 110321   549507  742886278.  2.8578  1.9003
  2 080721   575711  743726566.  2.8302  1.9088
  3 080731   556931  744589453.  2.5135  1.7947
  4 080810   572162  745441105.  2.8923  1.9094
  5 080820   548914  746288737.  2.5602  1.7713
  6 080830   566845  747153393.  2.9016  1.9769
  7 080909   563671  748011679.  2.5411  1.7550
  8 080919   571703  748868469.  2.7452  1.8716
  9 080929   572229  749722647.  2.8007  1.8449
 10 081009   572049  750580774.  2.7791  1.8419

Please provide any additional information below.
Output different for daily, cycle, or pass and for all weights.

Original issue reported on code.google.com by [email protected] on 5 Jun 2012 at 7:34

Feature request: utility to print available variable names

Please describe what type of enhancement is requested.
A utility that prints the available variables for a satellite/phase and cycle. 
For example,
radsvar -Sj2/a -C140 would print:
        time = 101
        lat = 201
        lon = 301
        alt_eiggl04s = 414
        alt_rate = 501
        range_ku = 601
        range_c = 602
        dry_tropo_ecmwf = 701
        wet_tropo_rad = 801
        wet_tropo_ecmwf = 802
        iono_alt = 901
        iono_gim = 906
        inv_bar_static = 1002
        inv_bar_mog2d = 1004
        ssb_cls = 1502
        swh_ku = 1701
        swh_c = 1702
        sig0_ku = 1801
        sig0_c = 1802
        wind_speed_alt = 1901
        wind_speed_rad = 1902
        wind_speed_ecmwf_u = 1903
        wind_speed_ecmwf_v = 1904
        range_rms_ku = 2002
        range_rms_c = 2004
        range_numval_ku = 2101
        range_numval_c = 2102
        topo_dtm2000 = 2202
        tb_187 = 2301
        tb_238 = 2302
        tb_340 = 2303
        flags = 2601
        swh_rms_ku = 2802
        swh_rms_c = 2804
        sig0_rms_ku = 2902
        sig0_rms_c = 2904
        off_nadir_angle2_wf_ku = 3002
        dsig0_atmos_ku = 3203
        dsig0_atmos_c = 3204
        liquid_water = 3301
        iono_iri2007 = 907
        iono_nic09 = 908
        dist_coast = 4501
        inv_bar_mog2d_mean = 1005
        mss_cls01 = 1605
        mss_cnescls11 = 1615
        geoid_egm2008 = 1610
        mss_egm2008 = 1611
        mss_dnsc08 = 1612
        topo_dnsc08 = 2203
        mss_dtu10 = 1614
        topo_dtu10 = 2205
        basin = 3601
        tide_pole = 1401
        tide_solid = 1101
        tide_ocean_fes04 = 1213
        tide_load_fes04 = 1313
        tide_ocean_got47 = 1217
        tide_load_got47 = 1317
        tide_ocean_got48 = 1219
        tide_load_got48 = 1319
        tide_ocean_got49 = 1221
        tide_load_got49 = 1321
        tide_equil = 3901
        tide_non_equil = 3902
        tide_ocean_webtide = 1215
        ref_frame_offset = 3801
        seaice_conc = 4701
        sst = 4801
        sst_mean = 4802
        dry_tropo_ncep = 702
        wet_tropo_ncep = 803
        dry_tropo_airtide = 4901
        iono_alt_smooth = 903
        inv_bar_global = 1003

Original issue reported on code.google.com by [email protected] on 6 Jul 2012 at 3:40

Option -X to do preset "jobs"

The option -X can already be used to configure mostly anything. This, however, 
can only be done at the user level.
If we expand -X to also look in the $RADSROOT/conf directory, then we can 
supply a number of handy "presets". Like one that would not use the inverse 
barometer correction, or only the model wet tropo, etc. 

Original issue reported on code.google.com by [email protected] on 13 Jun 2012 at 3:30

radsxogen interpolation options

1. Provide more interpolation options to radsxogen
    - linear fit
    - nearest neighbour
    - allow to reduce/increase number of points (from 6)
    - allow to modify maximum gap

2. Replace current old interpolation routines (spaghetti code)

Original issue reported on code.google.com by [email protected] on 18 Jun 2012 at 2:11

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.