Releases to date have been as follows:
stilts
",
invoked using the stilts
script or the
stilts.jar
jar file, and the various tasks are
named as subsequent arguments on the command line.
Command arguments are supplied after that.
The new invocation syntax is described in detail elsewhere in
this document. As well as invocation features such
as improved on-line help, optional prompting,
parameter defaulting, and more uniform access to common features,
this will make it more straightforward to wrap these tasks
for use in non-command-line environments, such as behind a
SOAP or CORBA interface, or in a CEA-like execution environment.
tmatch2
has been introduced.
This provides flexible and efficient crossmatching between
two input tables. Future releases will provide commands for
intra-table and multi-table matching.
tcat
has been introduced, which
allows two tables to be glued together top-to-bottom.
This is currently working but very rudimentary - improvements
will be forthcoming in future releases.
calc
has been introduced,
which performs one-line expression evaluations from the
command line.
tpipe
and other commands have been introduced:
addskycoords
: calculates new
celestial coordinate pair from existing ones
(FK4, FK5, ecliptic, galactic, supergalactic)replacecol
: replaces column data,
using existing metadatabadval
: replaces given 'magic'
value with nullreplaceval
: replaces given 'magic'
value with any specified valuetablename
: edits table nameexplodecols
and explodecols
commands
replace explode
The new stream
parameter of tpipe
now
allows you to write filter commands in an external file, to
facilitate more manageable command lines.
Wildarding for column specification is now allowed for some filter commands.
tcube
Command
stats
filter provides the same information as
the old stats
output mode, but allows much more
flexible use of the results. It can also calculate many new
quantities, including quantiles, skew and kurtosis.meta
filter provides the same information as
the old meta
output mode, but allows much more
flexible use of the results.assert
filter provides in-pipeline logical
assertions.uniq
filter collapses multiple adjacent identical
or similar rows.sorthead
filter provides a (usually) more
efficient method of doing what you could previously do
by combining sort
and head
filters.colmeta
filter adds/modifies metadata for selected
columns.check
filter checks table in stream - for debugging
purposes only.Additionally usage of the sort
filter has been changed
so that it can now do everything that sortexpr
used to
be able to do; sortexpr
is now withdrawn.
plastic
mode broadcasts the table to
one or all registered PLASTIC listeners.cgi
mode writes the table to standard output in a
form suitable for output from a CGI script.discard
mode throws away the table.topcat
mode now attempts to use PLASTIC
(amongst other methods) to contact TOPCAT.stats
and meta
modes are mildly
deprecated in favour of the corresponding new filters
(see above).csv-noheader
format variant output handler
added.roundDecimal
and formatDecimal
functions introduced for more control over visual appearance
of numeric values.mark.workaround
system property which can
optionally work around a bug in some input streams
("Resetting to invalid mark" errors).ucd
and
utype
attributes of TABLE element in
votlint
.istream=true
is now less likely to cause a
"Can't re-read stream" error.colfits
format, new startable.storage
policy "sideways
") have been introduced.
These can provide considerable efficiency improvements for
certain tasks when working with very large (and especially wide)
tables.
multicone
- Makes multiple cone search queries to the same serviceregquery
- Queries the VO registrytranspose
filter added.setparam
and clearparams
filters.addskycoords
.tcat
command has been replaced by more capable
tcat
and
tcatn
commands.
Between them these provide concatenation of an unlimited number of
homogeneous or heterogeneous input tables.
Additional columns may be added to indicate which of the input tables
given output rows originated from.
in
in tcat
,
cmd
and friends)
may now be specified in the form "@filename".
This indicates that the value for the parameter is to be obtained
by reading it from the named file.
This is useful if a very long value is required for the parameter
in question. The script
parameter of
tpipe
has therefore been
withdrawn, since it did just the same thing.
ivo:
- or myspace:
-type URLs.
toHex
and fromHex
numeric conversion
functions have been added
(Section 10.7.4).commands
etc.-J
flag to stilts
script
for passing flags directly to Java.out
parameter to votlint
.-ifndim
and -ifshape
flags to
explodeall filter.exact
match mode in
tmatch2
now copes with array-valued columns.force
parameter to multicone
task
as a workaround for some broken services.stats
filter.votlint
about
utype
attribute on RESOURCE elements.tjoin
introduced.votlint
and votcopy
.-bench
flag to stilts
command.text
and ascii
output formats (now one-pass not two-pass).duptag
parameters to tmatch2
task for customised renaming of columns with duplicated names.sinh
, cosh
, tanh
and inverses).funcs
task, a browser for
expression language function documentation.-checkversion
to list of stilts
flags.table
parameter to
calc
command
(for access to table parameters).param$
notation (Section 10.2).ucd$
notation
in expressions (Section 10.1)
and as column identifiers (Section 6.2).TNULL
n header
cards - write them as numeric not string values.gcj
).formatDecimalLocal
functions in
class Formats.fluxToLuminosity
and luminosityToFlux
functions in class
Fluxes.transpose
filter.sqlcone
task introduced, along with some classes in package
uk.ac.starlink.ttools.cone
designed for library use by
AstroGrid DSA code.
tmatch2
params
parameter now has minoccurs=0
, since that can be true
for exact matches.-stdout
and -stderr
flags to
stilts
command.app-description.xml
file.sqlcone
command.fluxToLuminosity
function.tmatch2
command are new tasks:
tskymatch2
:
stripped down version of tmatch2
for ease of use when
matching with sky coordinates.tmatch1
:
internal matcher, finds groups of objects within a table.tmatchn
:
finds group or multiple-pair matches between multiple (>2)
tables.Two tasks have been renamed for improved clarity and consistency:
multicone
is now named
coneskymatch
sqlcone
is now named
sqlskymatch
There has also been some enhancement and rationalisation of
parameters for all table join tools (tmatch*
as well as
tjoin
,
coneskymatch
and sqlskymatch
):
fixcols
and
suffix*
parameters to control renaming of duplicated
columns in output tables (note this replaces the old
duptag*
parameters in tmatch2
).progress
parameter
which allows you to configure whether progress is reported to the
console.copycols
parameter of coneskymatch
and sqlskymatch
now defaults to "*
"
(include all columns from input table in the output).Section 7 of the manual has been somewhat rearranged and improved.
votlint
handling of TABLEDATA-type
multi-dimensional char
/unicodeChar
arrays.
These are now split up into strings by counting characters rather
than using whitespace delimiters.
I think it's doing the right thing now.sqlclient
,
which is a general JDBC-based SQL command-line client.sqlupdate
,
which allows updates to existing rows in SQL tables.tosql
output mode:
write
(can be create
, dropcreate
or append
)newtable
renamed
dbtable
database
renamed
db
for consistency with other commandsscorecol
added to
tmatch2
,
coneskymatch
and
sqlskymatch
commands,
which controls adding a new column to match output tables
containing a goodness-of-match value.parallel
added to
coneskymatch
task
which allows multiple cone searches to be carried out in
parallel.erract
added to
coneskymatch
which controls response to
isolated failures in individual cone search queries.-debug
flag).help='*'
which prints help for
all parameters of a task at once.+verbose
flag
for reducing verbosity level.datatype
attribute.progress
parameter to tmatchn
.emptyok
parameter to
coneskymatch
.calc
task.stats
filter cardinality value
calculation.fixcols
.stats
filter
usage message.server
is
provided which allows STILTS commands to be executed via HTTP.
One purpose of this is to facilitate server-side use of the
plotting commands co-located with data to generate on-the-fly
graphical summaries of server-held datasets.
minReal
and maxReal
functions
(max/min ignoring blank values) in class
Arithmetic.
tcat
's
loccol
parameter.utype$
notation
in expressions (Section 10.1)
and as column identifiers (Section 6.2).regquery
command has changed in implementation,
data access, and output format. It now queries VOResource1.0
registries rather than the very out of date registry protocol which
was used in earlier versions.fits-basic
output
handler as signed byte values (TFORM=B,TZERO=-128)
rather than signed shorts (TFORM=I).regquery
)
to fail for Java 1.6.votlint
's validation tests
(VOTABLE element content model,
INFO and PARAM and FIELD required attributes).TFORMnn=rAw
)
is now understood for FITS binary tables.addskycoords
filter).votcopy
: XML processing instructions
garbled on output, and pathnames in base
parameters
inappropriately flattened in hrefs attribute values.votlint
can now validate VOTable documents following
the (provisional, 2009-09-29 PR) VOTable 1.2 standard.votable.namespacing
system
property.votlint
now checks that the correct XML namespaces are
in use.parse*
string->numeric conversion
functions now cope with leading or trailing whitespace.coneskymatch
can now match using SIA and SSA
services as alternatives to Cone Search ones
(see its new servicetype
parameter).startable.storage
policy "adaptive
"
is now the default. This should mean running out of memory less
often. The old behaviour can be restored by giving the new
-memory
command line flag.fixcolnames
.coneskymatch
to fail in locales that use ","
for a decimal point.tmatch1
, tmatch2
, tmatchn
and
tskymatch2
).
For several common regimes, using default settings,
memory use has been decreased by a
factor of about 5, and CPU time reduced by a factor of about 3.tuning
for
tmatch1
, tmatch2
and tmatchn
,
and parameter healpixk
for tskymatch2
).
Experimentation with these can lead to significant performance
improvements for given matches.find=best
"
match assignments when pair matching in crowded fields.
Crossmatch results thus may differ between earlier versions
and this one. Both are reasonable, but the newer behaviour is
more correct. In non-crowded fields, there should be no change.malloc()
)
for intermediate-sized buffers
to avoid running out of java heap space.find=each
" for
coneskymatch
and sqlskymatch
commands.
This allows you to get an output table with exactly one row for
each row of the input table.-memgui
to monitor memory usage during runs.rowrange
.array
functions for constructing arrays,
and new aggregating functions median
and
quantile
.progress
parameter
has changed; it now has an additional option which will write
limited profiling information as well as logging as the match
progresses.ylabel
parameter to plothist
command.random
and sequential
filters have
been renamed randomview
and seqview
respectively. This provides a better idea of what they do.
Since they are only useful for debugging, it is unlikely that this
will break anyone's existing code.random
introduced which converts tables
to random-access if necessary.legend
parameter to
plotting commands.matcher
parameters can now accept
classnames of MatchEngine
implementation classes as
an option.stilts_jars.zip
) as an alternative to
the monolithic jar file (stilts.jar
).
This may be more appropriate for those using STILTS classes in a
framework that contains other third party class libraries.tmulti
and tmultin
.
These currently just copy multiple input tables to a single
multi-table container file (e.g. Multi-Extension FITS or
multi-TABLE VOTable). Future releases may generalise the output of
multi-table processing.multi
parameter introduced for tcat
and tmulti
tasks to pick up all tables in a
multi-table container file.treads
and twrites
for multi-table I/O.addresolve
;
this currently uses Sesame.repeat
, which repeats table rows a
given number of times.long
" in IPAC format
tables.meta
filter.Finally, from this release STILTS requires version 1.5 (a.k.a. 5.0) of the Java J2SE Runtime Environment; it will no longer run on version 1.4, which is now very old. I don't expect this to cause compatibility issues for anyone, but I'm interested to hear if that's not the case.
http://user:pass@host/path
) on
table URLs handled.tapquery
and
tapresume
have been introduced.
These provide support for the Table Access Protocol (TAP),
and allow freeform queries in an SQL-like language to be
made to remote databases.
soapout
parameter to regquery
command.count
, variance
and
stdev
functions to
Arrays.funcs
window display.replaceval
filter to work with Infinities.dashNS
and
linewidthNS
to plot2d
task.taplint
.
This is a validator for TAP (Table Access Protocol) services.
It is only likely to be useful to people developing or operating
TAP services.nan
and inf
representations.Infinity
and NaN
.coneskymatch
cone search verbosity parameter so that
VERB=3 is not erroneously ignored.best1
and best2
have been added
for the find
parameter in the pair matching commands
tmatch2
and tskymatch2
.
They correspond to finding the best match in table B for each row
in table A, and in crowded fields often provide more intuitive
semantics than the previous symmetric best
option
(in non-crowded fields there is generally no difference).
This replicates the matching performed by some other tools,
including Aladin.2d_ellipse
,
and
skyellipse
.d_err
.
skyerr
matcher have changed slightly.Coords
class has been replaced by
CoordsDegrees
and
CoordsRadians
classes providing sky coordinate functions,
and a new class
TrigDegrees
provides normal degree-based trigonometric functions
alongside the radian-based versions in
Maths
.
Some of the old function names have changed to make clear that they
use radians and not degrees.
This change should be much more convenient in most cases;
sorry it's taken so long to get round to.join
function is added to the
Arrays class
to combine all the elements of an array into a string.taplint
, mostly thanks to bug
reports etc from the TAP community:
ivo://ivoa.net/std/TAPRegExt#upload-*
)
as per most recent TAPRegExt draft.parse
to tapquery
command,
allowing pre-send syntax checking of submitted ADQL.star.basicauth.user
and
star.basicauth.password
.coneskymatch
in the presence of
unreliable or inconsistent DAL services.pixsample
which can sample pixel data from HEALPix table files
(useful for things like Schlegel dust extinction).
Also addpixsample
filter,
which does the same job.pixfoot
which can generate MOC (Multi-Order Coverage) maps.coneskymatch
when using some Cone Search services (mostly VizieR).
This uses the Multi-Order Coverage map service operated by CDS.
It can make VizieR multi-cone queries much faster by not doing
cone searches that are outside the coverage region of the
catalogue in question.inMoc
).votable.version
.
Output version is VOTable 1.2 by default.votlint
has been changed so that it handles
different VOTable versions more capably.
Versions 1.1+ are now validated against a schema
(which is how those versions are defined) rather than against
a DTD hacked to do the same job as the schema.
VOTable 1.3 validation is now provided.votcopy
command has a new version
parameter to control output version,
and a new nomagic
parameter to control whether
VALUES
/null
attributes are removed
where appropriate.+Inf
"/"-Inf
",
not "Infinity
"/"-Infinity
" as in
previous versions).votlint
is now stricter about floating point
TD
element contents.schemaLocation
attribute by default.hypot
(=sqrt(x*x+y*y))
to the Maths
class in expression language.split
functions for string splitting
to the Strings
class in expression language.-utype
flags for addcol
,
replacecol
, colmeta
and
setparam
filters,
and utype
option for meta
filter.toString
function:
it now works on non-numeric values,
gives the right answer for Long
integers
and character values,
and returns a blank value rather than the string "null" or "NaN"
for blank inputs.OBS
stage (ObsTAP validation)
to taplint
.CAP
stage of taplint
.
Declared languages (including features) and output formats are
now checked.coneskymatch
parallel
parameter.tmatchn
group mode which could result in
output rows with columns from only a single table,
i.e. not representing an inter-table match,
even when join*=default
.TFORMn=rC/rM
).replacecol
and replaceval
filters which could cause truncation of strings in FITS
and possibly VOTable output when the new value was longer
than the previously declared maximum length.tcat
, tcatn
so that in most cases
output column metadata is compatible with all input tables, not
just the first one in terms of nullability, array shape etc.rows
"/"bytes
"
rather than "row
"/"byte
"
for TAP capability unit values.MedAbsDev
and ScMedAbsDev
)
options to stats
filter.star.basicauth.*
system properties if they
have not been set up.-version
flag has changed accordingly.meta
now copes better with array-valued
table parameters.parallel
parameter of skyconematch
(though this may be adjusted with a system property).toString
overloads - now works for byte and
boolean values too.tcube
, pixfoot
).regquery
command can now successfully talk to
the NVO/VAO/STSci registry.
That has been broken since mid-2010.tloop
for generating single-column
tables from a numeric loop variable.taplint
now checks for the right ObsCore ID,
though still recognises the wrong one (got from TAPRegExt),
and warns if found.Nd_cuboid
matcher option to match commands.cdsskymatch
.
In most cases (for querying tables that can be found in VizieR)
this can and should be used instead of
coneskymatch
- it's much faster.coneskymatch
, sqlskymatch
and pixfoot
will now guess RA/Dec columns
if relevant parameters are left blank.png-transp
to generate PNG files with transparent backgrounds.taplint
:
taplint
API to facilitate static acquisition of
report codes during programmatic use.
A few error codes have changed.taplint
.taplint
MDQ stage data type mismatch error
report for BOOLEAN/boolean declared/returned data.taplint
now takes steps to ensure that TAP_SCHEMA
column list query is not truncated.taplint
now flags absence of ObsCore table with
I[nfo] not F[ailure] status.taplint
stages which
perform validation against XSD schemas.
Schemas from external namespaces may now be imported and used.
The CPV stage, which was previously broken and disabled
by default, is now fixed and enabled by default.
Known/expected schemas are stored locally, and a warning is
reported if external ones are used. Schema validation seems
remarkably complicated, so it's possible there are still errors
in this implementation - if you suspect so,
please report it.taplint
.plot2d
, plot3d
and plothist
.
Parameter
class now supports generics)
and there are some visible
changes to the user documentation as well
(parameters now report their data type,
and tasks report their classname).
Normal (e.g. command-line) usage should not undergo any changes,
but a fair bit of UI code has changed, so unexpected problems
are possible.
gui
,
which displays the table data in a scrollable
window on the screen.-allowunused
flag to the stilts command.
If this is set, then unused parameter settings on the command line
just result in a warning, not failure of the command.votcopy
that generated unreadable output to BINARY or BINARY2 serialization
if any non-empty column had datatype="unicodeChar".
Also improved behaviour when copying between tables with
unicodeChar columns; these are usually preserved now, rather
than being squashed to datatype char.
Some lurking Unicode-related issues remain.tapskymatch
.nearMoc
, and MOC can be identified by
VizieR table IDs as well as by filename/URL.repeat
filter,
add -row|-table
flags to control sequence of output rows.setparam
and repeat
filters,
allow use of an algebraic expression for values,
not just a literal value.$ncol
and $nrow
to
the
expression language
to refer to the column and row counts in a table.
The special variable index
is also deprecated in favour
of $index
or $0
.stilts
invocation script to pick up classes from
stilts.jar
in script directory in preference to
other places (e.g. topcat-full.jar).taplint
to permit application/xml
not just text/xml content-type where appropriate (UWS stage).taplint
so it doesn't warn (W-TMV-UNSC) about
unknown VOSITables schema.taplint
so that unicodeChar
matches CHAR/VARCHAR in the same way as char
for column type declaration purposes.taplint
so that capabilities document can have
TAPRegExt dataModel ivo-id elements with xs:anyURI rather than
vr:IdentifierURI (only a warning is issued in the latter case),
in anticipation of TAPRegExt-1.0 Erratum #1.taplint
to handle adql:TIMESTAMP columns more
carefully on upload and retrieval.plot2plane
. Points may be weighted.title
parameter.sizexy
allows plotting (optionally autoscaled)
markers with horizontal and vertical extents
independently determined by input data.*func
allow assignment of
different data->ramp mapping functions
(sqrt and square as well as linear and logarithmic),
and new parameters *quant
allow quantisation
of the colour map to discrete levels.maxsizeN
parameter with autoscaleN
for size
plot layer type.
You can now optionally turn off autoscaling and specify marker size
in pixels instead.auxcrowd
parameter to plot2 tasks to influence
tick crowding on aux axis colour ramp. Also adjust default to use
fewer ticks.arrowN
parameter in
layers like
xyvector
).ellipseN
parameter in layers
like xyellipse
).PlotDisplay
class that forms the result of
plot2 commands can now have PointSelectionListener
s
registered on it. This lets you determine what point a user
has clicked on if you're using the plotting classes from
third party java code.REQUEST=queryData
parameter)
in the multi-SSA mode (servicetype=ssa
) of
coneskymatch
.
This long-standing bug would have stopped this command working
at all with well-behaved SSA services.tcube
).auxmax
, auxmin
to plotting task documentation.<syscmd
" or "syscmd|
"
to supply input byte streams from Un*x pipelines.plot2plane
.true
/false
,
the normalisation
parameter of the histogram layer
now has the options
none
, height
,
area
and maximum
.
This allows both the area normalisation introduced in v3.0-2,
and the height normalisation used in earlier versions
which it replaced.barform
parameter now provides the options
semi_filled
(the new default) and semi_steps
.
These give outlined partially transparent bars, which make it
much easier to see what's going on in multi-dataset histograms.
Note semi_steps
does not currently export very nicely
to PDF/EPS.
Similar options are also available in the new KDE plots.count_rows()
method to JyStilts
table objects, which for non-random tables
may be much more efficient than len()
.taplint
is now aware of, and performs some checks
related to, schema-level table metadata declared by TAP services.TFORMn='rX'
) columns.
Values read from these columns are presented as a
boolean[]
array. In all previous versions of STIL
the bits have appeared in that array in the wrong sequence
(LSB..MSB per byte rather than the other way round).
Apologies to anyone who may have got incorrect science results
from this error in the past, and thanks to Paul Price for helping
to diagnose it.TFORMn='rX'
processing;
attempting to read a single-element bit vector column
(TFORMn=1X
or X
) previously
resulted in an error making the file unreadable.
Values read from such columns are now presented as
Boolean scalars.datatype="bit"
) appearing in BINARY/BINARY2
serializations. This one was more obvious, it would usually
generate an error when attempting to read the file.votcopy
that converted columns from
datatype unsignedByte
to short
when
transforming. Since v3.0-3 this is no longer necessary.
In the case of converting to a binary serialization,
since v3.0-3 this was causing it to generate unreadable VOTable
output.votcopy
that failed to handle
columns with datatype bit
. In the case of
converting to a binary serialization, these were in all previous
versions generating unreadable VOTable output.
Now they convert them to columns with datatype
boolean
(not perfect, but better).skyvector
bug:
dlat
and dlon
values were being used the wrong way round.add
, subtract
,
multiply
, divide
,
reciprocal
, condition
.curl(1)
command is now issued at the CONFIG level
(visible using flags -verbose -verbose
).taplint
parameter maxtable
limits the number of tables tested in the stage that
queries data from each individual table (MDQ
).
May be useful for very large services.tapquery
parameter upvotformat
to determine what VOTable serialization variant is used to
transmit uploaded tables to the TAP server.
Previously uploads were always BINARY which ought to work,
but the parameter now defaults to TABLEDATA,
since some services (e.g. CADC)
currently fail with binary uploads.uk.ac.starlink.ttools.example.BasicPlotGui
.Object$
<column-id>"
you get the value as an Object not a primitive.
This is a special-interest measure for user-defined
functions that need to see null numeric values.matcher
values of
<n>-d_err
, skyerr
,
2d_ellipse
and skyellipse
only.
Thanks to Grant Kennedy (IoA) for reporting this bug.
xtype
of JD or MJD,
and units
of year.healpixSqdeg
,
healpixSteradians
,
steradiansToSqdeg
,
sqdegToSteradians
,
SQDEG
).-verbose
flag).array
, intArray
, stringArray
in class Arrays;
concat
, join
in class Strings;
and
sum
, mean
, variance
,
stdev
, min
, max
,
median
, countTrue
in new class
Lists.array(x1)
, array(x1,x2)
, ...
array(x1,x2,x3,x4,x5,x6,x7,x8)
replaced by array(values...)
).min
/max
functions in class
Arithmetic
have been renamed
minNaN
/maxNaN
to avoid confusion,
but in most cases existing expressions involving min/max
will work as before.concat(toString(RA),";",toString(DEC))
can now be written concat(RA,";",DEC)
).L
" character.plot2time
command
has been enhanced so that it can make multi-zone plots -
multiple plots stacked vertically that share the same horizontal
(time) axis but have independent vertical axes.
The time plot itself and this multi-zone feature are currently
experimental; in future versions they may be improved or changed,
and the multi-zone feature may be extended to other plot types.
Some other changes and fixes have gone along with this:
NavigationListener
interface and rearranging some
PlotDisplay
and AbstractPlot2Task
constructor/factory method arguments.
For single-zone plots the changes are not very substantial.
This only affects you if you are using the STILTS classes
as a java plotting library.
If that applies to you and you have trouble upgrading,
I'm happy to provide assistance.plot2time
now supports shading modes
(shadingN
and associated parameters).auxmapZ
replaces spectromapN
,
where Z
is an optional zone suffix
and N
is an optional layer suffix).function
layer type now works in the time plot,
rather than throwing an error.
However, it doesn't work very well, since the time coordinate
is in unix seconds rather than something more user-friendly.tapquery
and tapresume
now use
blocking HTTP requests rather than repeated polls
to wait for asynchronous TAP job completion from
services that declare themselves UWS 1.1 compliant.executionduration
and destruction
to
tapquery
command.
These let you request resource limit adjustments when submitting
an asynchronous TAP job.countTrue
in class
Arrays.EXA
for taplint
checks TAP /examples
endpoint.
Note the details of the examples format are still under discussion,
(this version targets WD-DALI-1.1-20160415 &
WD-TAP-1.1-20160428, somewhat informed by TAPNotes-2013-12-13),
so the details may change in future.taplint
now validates ObsCore 1.1 where declared
alongside ObsCore 1.0.
Currently uses PR-ObsCore-v1.1-20160330.Reporter
is now called TextOutputReporter
.
If you are using taplint programmatically you may need to make
small changes. This results from some refactoring that makes
it easier to customise taplint output.opaque
config option with
transparency
for plane and sky density plots.coneskymatch
.
tmatchn
.tskymap
).auxclip
now have a default value of null.
This uses a default clip, which avoids very light colours.
Explicitly supplying a subrange value (e.g. "0,1
")
can now use the whole range; previously the very light colours
were inaccessible.tablesurl
, examplesurl
etc
to task taplint
,
so you can specify custom locations for different TAP endpoints
rather than have them fixed at their default locations
hanging off the base service URL.
Ditto for the tasks tapquery
and tapskymatch
,
though in these cases the extra parameters are
(since currently rather special interest) largely undocumented.taplint
behaviour in absence of a /tables endpoint
(404 now gives a Warning not an Error).taplint
ObsTAP validation updated to
PR-ObsCore-v1.1-20160709.auxfunc=log
and negative data values were present.density
layer,
which has been withdrawn
(grid
can do all the same things and more,
except specify bin size in screen pixels).plot2plane
,
so you can now plot histograms with a temporal horizontal axis.unit
for
histogram, KDE, and KNN plots.per_day
etc
for histogram, KDE and KNN layers when used from the
plot2time
command.plot2*
command
*color
parameters
now include the (140)
CSS-like colours alongside
the dozen standard plotting colours.insets
parameter now lets you specify
margins round plots using any combination of
<top>,<left>,<bottom>,<right>
,
rather than requiring all values or none.auxwidth
to plot2 commands,
to control colour ramp lateral dimension in pixels.skyerr
and nd_err
matchers now report output separations as scaled (dimensionless)
values rather than in physical units; this means the results are
more comparable, so Best matches will make more sense.format
parameter).taplint
OBS stage for
PR-ObsCore-v1.1-20160923.hypot
now takes an arbitrary number of arguments
(instead of exactly two).blockmaxrec
parameter to
tapskymatch,
and improve warning text in case of result truncations.tapquery
/tapresume
behaviour
when monitoring async jobs; if the service goes down,
the application will wait for it to come back rather than
bailing out.mocfmt
parameter
in pixfoot command) have changed;
option ascii
is replaced by json
.
The old ASCII format was slightly broken JSON in any case.plot2
command
insets
parameter, present since v3.0-6.plot2plane
/plot2time
label painting; horizontal axis label was sometimes off the
bottom of the plot by a few pixels.auxmap
, densemapN
etc)
for the plotting commands
will now accept custom colour maps that interpolate between
a list of named colours,
e.g. "HotPink-yellow-SkyBlue
".posAngRadians
and
posAngDegrees
added to expression language.COOSYS
elements,
the relevant information is now accessible as
column auxiliary metadata
(CoosysSystem
, CoosysEpoch
,
CoosysEquinox
)
e.g. using the meta
filter.COOSYS
elements
read from VOTable-based formats (VOTable or FITS-plus)
will now be written out to VOTable-based formats with
equivalent COOSYS references included.
Currently not table parameters though.votable-binary2-inline
and
votable-binary2-href
are now offered alongside
the five previously available VOTable variants.charset
parameter of votcopy
now defaults to UTF-8 rather than the system default.autoscale
with unit
in
skyvector
and
skyellipse
plot layers.xyvector
,
xyzvector
,
skyvector
,
xyellipse
,
skyellipse
;
autoscaling is now turned off by default.
Apologies for this change to behaviour,
but it's better for consistency with new layer types
xycorr
and
skycorr
,
and presents less danger of misinterpreted plots.E_QTYP
to warning W_QTYP
in view of TAP-1.0 Erratum #3.COOSYS
element is now passed without a deprecation
warning in VOTable 1.3 documents by
the taplint
and votlint
validators,
in view of VOTable-1.3 Erratum #1.
The warning is still issued for VOTable 1.2 documents,
but the text is toned down.vr:IdentifierURI
type;
this follows TAPRegExt Erratum #1.447a7be073876dba32
).
This fixes a bug in
healpixRingIndex
that could give
the wrong value for small values of longitude near zero
in the equatorial region.
It seems possible that this might have led to very infrequent
missed associations when crossmatching in these regions,
but tests appear to indicate that no such errors would
actually have resulted.viewsys
differs from datasys
.
Previously the
dlat
/dlon
/posang
parameters were always interpreted in
the view, rather than the data, sky coordinate system.desigTo*
for extracting positions from IAU-style object designations
(like 2MASS J04355524+1630331
) - use with care.polarDistanceDegrees
and
polarDistanceRadians
;
these calculate the distance in 3d space between two
positions specified in spherical polar coordinates.phase
to help with phase folding given a known period.
A new modulus function
mod
,
whose output is always positive
(unlike the %
operator) is also added.uk.ac.starlink.topcat.plot2.TopcatLayer*
".
These useless items were added in potentially large numbers when
saving plotted tables from TOPCAT v4.5 (TOPCAT bug).
A null tpipe
operation at this version will therefore
purge these items.obs_publisher_did
/publisher_id
changed
to match REC-ObsCore-1.1 (even though it's an illegal UCD1+).datalinklint
.slice
and pick
added to class
Arrays.square
added to class
Maths.addcol
and colmeta
filters
now accept -shape
and -elsize
flags
for defining array and string shape/extent column metadata.-verbose
flag.
The contours are now plotted correctly right up to the edge of
the visible plot, and various bugs have been fixed.combine
parameter
(sum
,
mean
,
median
,
min
,
max
,
stdev
, etc)
for weighted histograms.
This means that you can plot e.g. the mean value of a given quantity
per interval on the X axis rather than just the summed quantity.
A corresponding (though somewhat less well-defined) option is
also provided for the
kde and
densogram plotters.combine
parameter that configures how
values are binned in various histogram-like plots
(skydensity,
healpix)
grid,
and since this version also
contour,
histogram,
kde)
now has two new options,
sum-per-unit
and count-per-unit
.
These work like the existing sum
and count
options, but scale the combined values by the relevant unit
(e.g. X axis unit or solid angle).
Where these units are physical, a perunit
parameter is also provided for scaling in convenient units:
second, day, year etc for time
(plot2time), and
square degree, arcminute, arcecond etc for solid angle
(skydensity,
healpix).
In some cases, the combine
default values
have changed.combine
/perunit
options
are also added to the tskymap command.plot2time
as well as plot2plane
.votlint
no longer considers an integer- or array-typed
PARAM
element with attribute value=""
to be an error.votlint
no longer Warns about
PARAM/@ref
->FIELD/@ID
references,
since this usage pattern is now found in
DataLink Service Descriptors.funcs
command.taplint
's VOTable validation now includes
XML schema/DTD
validation as well as the custom VOTable checks.
It was always supposed to do this, but it seems that it didn't,
at least in recent versions.coneskymatch
from sending cone search queries
with sr=NaN
.taplint
OBS stage;
ObsCore v1.1 s_region
UCD is
pos.outline;obs.field
, not
phys.outline;obs.field
(a relic from PR-ObsCore-1.1-20161004).delete=now
to
tapresume
,
which lets you delete a TAP async job.
Also add a message to tapquery
inviting the user to delete interrupted jobs in this way.tapquery
and tapresume
that
caused a result read failure for result VOTables longer than 2Gb.plot2cube
and plot2sphere
.plot2cube
and plot2sphere
.sortaxis
parameter,
for joining out-of-sequence points,
added to line plot layer.crowd
with
two parameters, loncrowd
and latcrowd
,
so you can control grid line spacing for meridians
and parallels independently. Note this is a backwardly-incompatible
change, so could break existing scripts.
This change may have introduced slight changes to sky axis
grid line spacing at low crowding levels.zero
parameter has also changed
slightly, it now defaults to 1 and is not phase folded.xmax
/ymin
etc.polarXYZ
, astromXYZ
,
astromUVW
,
icrsToGal
, galToIcrs
,
icrsToEcl
, eclToIcrs
.
These can calculate Cartesian position and velocity components
from (e.g. Gaia) astrometric parameters.isInside
and polyLine
.$random
", which was previously
undocumented and named "RANDOM
".urlEncode
and urlDecode
added to class
Strings.exp10
in class
Maths.taplint
UWS stage:
now validates job documents
against UWS schema, tests uws:job/@version
attribute, and does improved and version-sensitive
(UWS v1.0/v1.1) validation of UWS timestamps.
Also does more complete deletion of submitted jobs.taplint
schema validation now takes account of
VOTable 1.3 Erratum #2 -
FIELD/@precision
attribute values
"F0
"/"E0
" are now permitted.votlint
and taplint
no longer complains about multiple
INFO
elements in the same scope sharing the
same name
attribute.datalinklint
error reporting.collapsecols
filter added,
to convert a run of adjacent scalar columns into an
array column (the opposite of explodecols
).votcopy
, votlint
,
datalinklint
)
so they follow HTTP 3xx redirects automatically in more cases
when given a URL for input.
Most STILTS commands already do this.coneskymatch
and friends:
add a progressively increasing delay for erract=retry*
error handling modes,
and decrease the soft maximum for the parallel
parameter to 5 (from 10).function
plot layer so that NaN values are
omitted rather than interpolated.stilts
startup script now correctly follows
symlinks on some OSes where it didn't work before
(including OSX). It also looks for jar files to use in
slightly different places on OS X.histogram
and histolog
for the parameters
auxfunc
, densefunc
etc
in plot2plane
and the other plotting commands.
This can make it much easier to see structure in quantities
that do not vary smoothly over their min-max range.line
plot layer
now has an aux
parameter that can vary the colour
of the line along its length according to some
third quantity.plot2sky
now by default
draws a small scale bar at the bottom left corner of the plot,
indicating the scale in degrees, minutes or seconds.
It can be switched off using the new scalebar
parameter.Car0
for the
plot2sky
projection
parameter;
this is like Car
(Plate Carrée)
but has longitude=0 at the left/right edge
rather than the center of the plot.STIL_HPX_*
),
and is used by FITS output handlers to insert
the relevant FITS headers.
The existing FITS handlers do this where it's not disruptive,
and the new fits-healpix
output handler will additionally move and rename columns
if required.
This metadata is round-tripped by FITS and VOTable I/O handlers.
It is added automatically by the tskymap
command, and can be manipulated by hand using
the new healpixmeta filter.
FITS support is not perfect: the BAD_DATA
FITS keyword is ignored, and the 1024-element array-valued
column variant is not understood.
TIMESYS
element.
votlint
(and hence taplint
)
now supports Version 1.4 VOTables:
the 1.4 schema is used for XSD validation,
and the TIMESYS element is checked
for attribute content and suitable referencing.TimesysTimeorigin
,
TimesysTimescale
,
TimesysRefposition
)
e.g. using the
meta
filter.-Dvotable.version=1.4
.
Currently this TIMESYS output works only for table columns
(FIELDs) not parameters (PARAMs).timeoffset
attribute of a TIMESYS element
referenced by a VOTable column is used to make sense of
column data when interpreting it as an absolute time.
Currently, the only use of this is in
time plots.FIELD/@ref
attributes are no longer imported
as "VOTable ref
" column aux metadata items,
since they often interfere with TIMESYS references.
Doing this was probably always a bad idea since the referencing
is not kept track of within the application, so withdrawing
this functionality makes sense, but beware that it might
change or break some existing behaviour.votlint
modifications above may now
interrogate external vocabulary resources during validation,
meaning that external network connections may be made during
validation, which didn't happen in previous versions.indexOf
in class
Arrays
to find position of a given value in an array.parseDoubles
and parseInts
in class
Conversions
for extracting array values from strings (experimental).$ID
column references
referring to nonexistent columns are rejected at compile time
rather than causing trouble during evaluation.taplint
and
datalinklint
now
insert the token "(IVOA-validate)
" into the
User-Agent
header of all HTTP requests they make,
for convenience of services that want to identify validators.
This is a convention discussed within the IVOA Operations IG.auxquant
etc);
the full color range is now included.plot2sky
axis labels regardless of Locale;
also avoid trailing comma sometimes erroneously present.seq
parameter
for underconfigured plot layers in plot2*
commands.java.lang.UnsupportedClassVersionError
then you need to upgrade.
cone
command to execute
simple spatial DAL queries (Cone Search, SIA, SSA).plot2*
commands interactively (omode=swing
), this should make
interacting with slow plots faster on multi-core machines.
(In rare cases this multi-threading might cause problems with
memory usage; it can be effectively turned off if required
by using the system property
java.util.concurrent.ForkJoinPool.common.parallelism
.)
hips2fitsUrl
, bibcodeUrl
,
doiUrl
, arxivUrl
,
simbadUrl
and nedUrl
.
Existing functions urlEncode
and
urlDecode
have been moved to URLs
from class
Strings.parseBigInteger
and parseBigDecimal
in class
Conversions.usepos
to
polygon
plot layer,
to toggle inclusion of reference position
in polygon vertex list.interface
added to TAP query tasks
tapquery
, tapskymatch
and
taplint
. This can control how TAP version
is determined.TFORMn='K'
)
with non-zero integer offsets
(TSCALn=1
, TZEROn<>0
)
are now represented internally as Strings;
previously they were represented as Long integers,
but values out of the possible range appeared as null
(with a warning written through the logging system).
Such columns are most commonly seen representing
unsigned long values.
If written back out to FITS, the offset long value will be
reinstated, but other output formats cannot encode
unsigned longs, so they will stay as strings.taplint
OBS stage according to
ObsCore-1.1 Erratum #1 (corrected UCDs).
No code changes required for ObsCore-1.1 Erratum #2.E_KEYX
errors.taplint
now uses
VOResource v1.1 not v1.0.
Erratum #1 (multiple security methods) has been applied.taplint
enhancements: add some new general tests,
and some only used when testing TAP 1.1 services.votlint
;
arraysize="1"
now provokes a Warning.meta
filter documentation.pixsample
command;
it now reads HEALPix metadata from headers correctly again.arcsin
function in Sky matches
now use the (Apache via cds-healpix) FastMath implementation
rather than the standard J2SE version.area
,
central
and
arealabel
can be used for plotting region data supplied as
area coordinates in the form of
STC-S (e.g. from ObsCore/EPN-TAP s_region
),
DALI polygon/circle/point, or (ASCII) MOC columns.
These layers are available from the
plot2plane
,
plot2sky
and
plot2sphere
commands.plot2time
command
has been improved,
and is no longer considered experimental.
A new ttypeN
parameter is added,
which allows you to explicitly define (as MJD, JD, ISO-8601 etc)
how input values are mapped to time.
If no such mapping is specified or can be guessed from
the input metadata, time values are now interpreted by default
as MJD rather than (as previously) Unix seconds.mark
layer type:
fat_circle
, fat_cross
etc
using thicker lines.thick
to
contour
plot.storage
parameter has new options
disk
, policy
and
persistent
.
These allow off-heap plot data caching, so that interactive
plots for very large data sets may be made without running
of of memory.
The persistent
option additionally means that
results of expensive data read operations can be cached
between invocations.line
layer's
sortaxisN
parameter now accepts the option
time
rather than X
(or Y
)
when used with plot2time
.3e6
".anchorN=center
to the
label
plot layer.minsize
and minshape
to poly4
plot layer type.skydensity
and
healpix
sky plot layers.cone
and
coneskymatch
commands
(new option servicetype=sia2
).*ToUnixSec
to
Times class.midLon
and midLat
to Sky class.pixsample
output.SkyGrid
plot layer that made it ignore the viewsys
parameter,
always assuming equatorial so plotting the wrong grid lines
for non-equatorial view sky systems. Note this bug applied
only to STILTS, not TOPCAT.polygon
plots in
plot2sphere
- this
combination was failing to plot anything, now it works.In
are now treated as 64-bit integers for n>=10
rather than n>10
.taplint
processing of
QUERY_STATUS
declarations;
overflow may now be declared before,
as well as after, the table.$random
special value;
it should now be less dependent on JVM details.curl(1)
equivalent logging flag error fixed
(write --compressed
not --compress
).server
command has been mostly moved into new
Server Mode section.
.csv
" extension, it is no longer
necessary to specify ifmt=csv
.stats
and sort
filters have
-[no]parallel
flags that can be used to select
between sequential and parallel execution.
Parallel data caching for plots is also available
using the storage=parallel
option,
but this is currently experimental and not generally recommended.
Future releases will parallelise other operations,
including matching.ofmt=votable(version=V12,format=BINARY)
.
For examples see individual handler documentation,
e.g. the VOTable output handler and
ECSV input handler.-qapprox
flag can be supplied to use an
(approximate) algorithm that will not run out of memory.combine
parameter to
tcube
,
so it can produce generalised weighted maps.acos
and cos
for colour scaling options
auxfunc
, densefunc
etc;
these provide linear-like stretch functions with
steeper/flatter ends, which may be useful for shading
by quantities with most variation near to/far from the
middle of the range.tcat
;
with lazy=true
it should no longer fail with "Too many open files".-exact|-approx
flag;
-approx
may be required for certain operations
to run in parallel.cdsskymatch
.tmatchn
documentation.taplint
to cope with
VOSI1.1 detail=min
-style response from
/tables
endpoint; avoid spurious
E-TMC-CM21
/E-TMC-FM21
errors.NULL_VALUE
custom metadata entries
into ECSV output.taplint
changes for
later edits to ObsCore-1.1 Erratum #1
(dataproduct_type
and
dataproduct_subtype
UCDs are now
meta.code.class
).header
for
CSV input handler,
to indicate whether header line is present.maxSample
for
CSV and ASCII
input handlers to reduce 2-pass read time.P
/Q
descriptors)
can now be read even in compressed or streamed input.arrayFunc
, intArrayFunc
,
sequence
, constant
.cumulative
option in
histogram-like plots
can now take the values
none
/forward
/reverse
,
not just true
/false
.aitoff0
option alongside
aitoff
as a value for the
plot2sky
projection
parameter.
In the same way as car
/car0
,
this gives an Aitoff projection but with the longitude=0
line at the left/right edge instead of the center.cols
and scale
parameters.LOC
, for ObsLocTAP validation.
This release validates against the draft
standard version PR-ObsLocTAP-20210609.TMV
now validates
against (a pre-REC version of) version 1.2 of the
VODataService schema instead of version 1.1.E_DSUC
to W_OLNG
.adql:TIMESTAMP
->timestamp
no longer provokes error E-UPL-TMCX
.E-TMS-TSCT
is downgraded to
W-TMS-TSCT
.W_EXVC
TOPCAT compatibility warnings
are downgraded to I_EXVT
.fverify
in FTOOLS e.g. v3.14-3.50)
have problems with such files.tablefactory
parameter.cache
filter
now retains no reference to input table, so it can be used
to manage deeply nested tables in (Jy)STILTS pipelines.meta
filter and output mode.
This prevents unwanted linebreaks as well as tidying
whitespace-formatted values.string
rather than
causing table read failure.\0
').jdbc:
URLs.text
, ascii
and ipac
output formats, that could cause cached table output
(e.g. from filters cache
or random
)
to contain many repeated copies of the same row.addcol
filter
that could evaluate the row index
($index/$0
)
incorrectly during parallel processing.plot2sky
bug that got
clon
/clat
positioning wrong
for some projections such as CAR0
.out
, ofmt
,
ocmd
and omode
are now listed.start
in
tloop
were being ignored).icmd
) processing.auxfunc=histogram
and
explicitly set auxmin
/auxmax
bounds
outside of data range.UUC
added to
taplint.
This checks units
(against the VOUnits standard)
and UCDs
(against the UCD1+ standard
and legacy UCD1 list).EPN
added to taplint.
This checks EPN-TAP (*.epn_core
) tables
against some version of
EPN-TAP 2.0
(currently PR-EPNTAP-2.0-20211012).
Since EPN-TAP is still in draft at time of writing,
this stage is not currently run by default.stages
parameter usage;
you can now add and remove stages individually using
+XXX
/-XXX
syntax.VOxx
" to "Yxxx
".xtype
attributes for
conformance to rules from
DALI 1.1 sec 3.3.MDQ
stage now reports mismatches
between declared and result Units, UCDs, Xtypes, and Utypes
as well as datatypes.User-Agent
token "(IVOA-test)
"
rather than "(IVOA-validate)
" as before;
this follows the published content of the
SoftID-1.0 IVOA Note.Server
header
and tries to check it for VO component identification
as recommended by SoftID
.maxrepeat
parameter like taplint
(previously the repeat count was hard-wired to 4).unit
and ucd
attributes, checking against the
VOUnits and UCD1+/UCD1 standards respectively.votlint
reports for recognised and
unrecognised (e.g. VODML) elements in foreign XML namespaces.taplint
output.thick
has been added to several
plot layer types to enable lines thicker than a single pixel
when drawing error bars, arrows, outlines, pair links etc:
xyvector
,
xyerror
,
sizexy
,
xyellipse
,
xycorr
,
link2
,
poly4
,
polygon
,
area
,
yerrors
,
xyerrors
,
skyvector
,
skyellipse
,
skycorr
,
xyzvector
,
xyzerror
,
yerror
.areatype
value UNIQ
for plotting
single HEALPix tiles e.g. from MOC files in
area (and similar) layer type.checksum
table output mode.jdToMjd
and mjdToJd
to class
Times.fast
parameter has been withdrawn from
polygon-plotting plot types
area
,
polygon
,
poly4
;
the shape-filling algorithm has been improved, and it's no
longer necessary to choose between speed and accuracy.julianToUnixSec
function in class
Times, which didn't do what it said it did,
with jdToUnixSec
.mjdToIso
and mjdToDate
functions
in class Times
now prepend the string
"(BCE)
" to dates before the Common Era.pbzip2
output) are now supported
alongside single-stream bzip2.auxmax
without
auxmin
was not honoured in plot commands.
This was a regression bug introduced at v3.1-5.cols
parameter in
tskymap is generalised to allow
more flexible calculation of gridded quantities,
specifically calculations using different aggregation methods
for different quantities at the same time.$random
is now deprecated.ArrayNGood
, ArraySum
,
ArrayMean
, ArrayStDev
added to stats
filter,
allowing per-element statistics calculations for
fixed-length numeric array data.tables
to restrict which tables are tested.combiner
parameters of some commands.jystilts.jar
file now comes with Jython 2.7.2.jystilts
script
now uses an internal copy of Jython 2.7.2, it no longer requires
an external Jython installation.svg
element
(no XML or DOCTYPE declaration),
and a viewBox
attribute is included which
may improve scaling behaviour in some contexts.stilts.version
file at the
top level, rather than just buried in
uk/ac/starlink/ttools/
.seqcol
column in output from the
tcat
and
tcatn
commands
is now of type (32-bit) integer not (16-bit) short.s
' in ASCII-MOC area specifications,
following MOC 2.0.MOC-ASCII
strings in
area plot;
trailing depth specifier was interpreted as cell index
and some cells near end of MOC were omitted/misshapen.runner
in matching commands
tmatch2 etc which can be set to
parallel
for multi-threaded execution.
This should speed up large matches on multi-core machines.
This is believed to work correctly, but since it is less
well tested than the legacy sequential mode, at this release
sequential processing is still the default.xsdvalidate
added for validating against XML schemas.bitCount
, hasBit
,
toBinary
, fromBinary
.compact
and encoding
to
VOTable output handler.
By default thin (<=4 column) TABLEDATA VOTables
are now written in "compact" mode, using reduced whitespace.spatial_frame_type=none
.xs
or ys
array coordinate, and assume a suitable linear sequence.<colid-list>
syntax used by
keepcols
,
delcols
etc
now allows column ranges to be specified with the syntax
<first-colid>-<last-colid>
.assert
filter now takes
optional <msg-expr>
argument.xoff
and yoff
for label
plot layer type.taplint
EPN stage
updates corresponding to latest EPN-TAP draft;
now matches PR-EPNTAP-20220420.label
layer type.arrayjoin
added.add
, subtract
,
multiply
, divide
in class
Arrays;
these now all take either two array arguments or an array
and a scalar in either order.dotProduct
in class
Arrays.value*
functions for
column references
to strangely-named columns.taplint
EPN stage
update; now corresponds to REC-EPNTAP-2.0.tmatch2
now run in parallel.runner
parameter,
used to control parallel execution of matching commands like
tmatch2
, has changed slightly:
options parallel<n>
and
parallel-all
are added,
while option parallel
, the new default,
is now limited to a fixed number of processors
(currently 6).runner
to
tskymap and
tgridmap;
this allows to control parallel execution,
since sequential may be faster than the default parallel option
for large files on spinning disks.time
" to the
progress
parameter
of matching commands like tmatch2
.handles
to mark a reference position for X/Y array data.sequence(n,start,step)
in
class Arrays.tfcatStatus
and
tfcatMessage
in class
VO for validating instances of
the Time-Frequency Radio Catalogue format.TFCAT
for
areatype
parameter
in area-like plots,
giving partial support for TFCat shape descriptions.fixcolnames
now deduplicates column names
as well as fixing up their syntax.cosmic
, ember
, gothic
,
rainforest
, voltage
,
bubblegum
, gem
, chroma
,
neon
, tropical
(sequential);
guppy
, iceburn
,
redshift
, pride
(diverging);
infinity
(cyclic).votlint
so that
BINARY/2 VOTables with no columns don't read forever.ASCII_Numeric_Base16
without the read operation failing.plot2plane
;
see new parameters
x2func
,
y2func
,
x2label
,
y2label
,
and example plot.plot2time
;
see new parameters
t2func
,
y2func
,
t2label
,
y2label
,
and example plot.plot2plane
and plot2time
,
rather than just on primary (left/bottom) axes.
This can be configured with the new
shadow
parameter.plot2plane
, plot2time
and
plot2sky
are now all partially transparent and plotted over
the plot content
(previously they were opaque and the sky grid was drawn over,
while the plane and time lines were drawn under,
the plot content).
Grid line transparency is controlled by the new
gridtrans
parameter.ExternalSys
/InternalSys
for plot2sky
labelpos parameter,
to display lon/lat axis names alongside axis values.tgroup
and filter group
to calculate aggregate functions on groups of rows
(like ADQL/SQL GROUP BY
).inSkyEllipse
.constcol
for identifying and removing constant-valued table columns.keepall
parameter to the arrayjoin
command,
to configure whether rows with no arrays appear
in the output.aparams
parameter to arrayjoin
command,
to turn table parameters of loaded tables into
scalar-valued columns.sortaxis
parameter to lines
layer,
to cope with unsorted array data.readMeta
and
hierarchicalNames
to the
GBIN input handler.contentType
and exampleURL
PARAMs,
introduced in DataLink 1.1datalinklint
validation of semantics terms, now checks online vocabularies
not just hard-coded ones.datalinklint
validator is upgraded
to PR-DataLink-1.1-20230413. It now has a
version
parameter.taplint
in accordance with
DALI 1.1 Erratum #1;
example continuation elements without an empty
resource attribute no longer provoke an Error.text
,
ascii
,
ipac
)
to avoid occasional unwanted truncation of formatted values.
Tables are now read in two passes, the first to establish
column widths and the second to write the data.
By default all rows are sampled, but the
sampledRows
option can be configured so that
only some rows are sampled, which is more like
the old behaviour.plot2sky
without explicit
clon
/clat
/radius
specification, the default view is now zoomed out to the
whole sky rather than zoomed in to a few milliarcsec.null
" token).nan
"
token for NaN in ECSV writer.Array
objects.Ascii_Numeric_Base16/8/2
fields as numeric not string
(updated pds4-jparser library code).antialias
parameter from
lines
layer,
since it didn't really work.skygrid
layer.skyvector
,
skyellipse
and
skycorr
shapes incorrectly.
The numeric value of the shape size coordinates
(ellipse radii, vector extents) was interpreted in degrees
before being rescaled as appropriate, so that values of
a few tens or larger resulted in signficant distortions.
Now fixed.find=best
(which should be used with caution) in
tmatch2
and
tskymatch2
.
Results may be different in crowded regions, and may also
have differed between v3.4-6 and v3.4-7,
but are not obviously more or less correct.plot2corner
.star.basicauth.user
/star.basicauth.password
system properties
can no longer be used to set authentication information
globally for the application, but the
auth.username
/auth.password
system properties
can be used in a similar way
(though this should be done with caution).*
" separator)
for matcher combinations
to restrict match separations to the scaled unit sphere.http://www.ivoa.net/rdf/examples
vocabulary.system
and
refposition
attributes of COOSYS).W-CAP-CULF
-> I-CAP-CULF
).omode=gui
with huge (>130 million row) tables.datalinklint
bug that reported
a W-SDND
warning for all tables having
multiple service descriptors.geomN
in
plot2cube
can now take
value "vector
" to use xyz
3-element array values as coordinate specifiers.plot2time
parameter
cellgap
configures gap between stacked plots.loop
with arguments
(start,end)
or (start,end,step)
.inMoc
and
nearMoc
Coverage functions
can now be an ASCII MOC string as well as a MOC file location
or VizieR table identifier.-xtype
flag to filters
addcol
,
colmeta
,
replacecol
and
setparam
.CoosysRefposition
metadata item (VOTable 1.5)
is now listed if present by the meta filter.
This information is also propagated to VOTable output if the
output VOTable version is set to 1.5
(currently not the default).@
'-indirection files for
cmd
-type parameters.Z
" even for date-only
specifications,
and now accept YYYY-DDD
format for dates
as well as YYYY-MM-DD
.datalinklint
now checks and uses INFO/@name="standardID"
version declarations in the links document being validated.
DataLink handling and datalinklint
are now believed
to be up to date w.r.t. REC-DataLink-1.1.stilts
startup script.
It now works better in the MacOS DMG image,
it's more robust against pathnames with embedded spaces,
and it will use topcat-extra.jar
if present
in preference to topcat-full.jar
.datasysN
in plot2sky
and
geomN
in plot2cube
are now included in the documentation.
The previously undocumented option to supply
plot2cube
coordinates in spherical polar form
is now documented.votlint
).votlint
to permit empty TD
elements in all cases for VOTable versions >=1.3.
Previously empty cells for integer and array fields
provoked an error report
(which is correct for VOTable 1.0-1.2, but not for 1.3+).tcat
/tcatn
bug that sometimes
resulted in no rows included from an input table.fat_triangle_up
and
fat_triangle_down
marker shape names.tmulti
.plot2time
so that
zone-specific text style configuration works correctly for
legends and colour ramp annotations.%
-encoded equivalents.tapquery
,
tapskymatch
,
taplint
and
tapresume
have a new parameter auth
;
if true then an authentication attempt
will be made for TAP services that offer
optional authentication.Q.95
, Q.001
)
can now be specified as combiners in
tcube
,
tgridmap
,
tskymap
and
tgroup
alongside the predefined quartile specifiers
(Q1
, median
, Q3
).nd_err_q
and skyerr_q
introduced for combining per-object errors in quadrature.test
scheme options
"g
" and "w
".colfits
section in the documentation.date
for VOTable output handler
to control whether a datestamp comment is written.date
config option for VOTable metadata
as well as for DATE-HDU
header card.TXTYPnnn
.TUCDnnn
and TUTYPnnn
are now written with comment parts, space permitting.compression
config option to
Parquet output handler
to control compression type.usedict
config option to
Parquet output handler
to control dictionary use on output.tryUrl
in parquet input handler;
this is set false by default to avoid cryptic error messsages
when trying to open remote parquet files.useFloat
in MRT input handler;
this is set false by default to avoid a rare bug
that could read large values as infinite.epochProp
and
epochPropErr
has changed; null values for parallax and proper motion are
now treated as if zero rather than invalidating the propagation.
This (partly) follows behaviour of corresponding functionality
in Gaia and VO ADQL propagation UDFs, and is more likely
what you want to see.votlint
now includes
column/param name and row index with reports in more cases.arraysize="1"
in FIELD
/PARAM
elements
of VOTables with version >=1.3,
in accordance with VOTable 1.3 Erratum #3.taplint
;
avoid spurious E-UWS-NFND
reports
when validating authenticated services.area
plots.+/-Infinity
"
rather than "+/-Inf"
.votlint
bugs that could cause failure
for certain inputs.coverage
xtype to be
"MOC
" instead of "moc
".area
-like plots
now copes with UNIONs of all shapes, not just of POLYGONs.TIMESYS
-referencing fields.labelangle
configuration option in most plot types;
allows angled labels that can accommodate more major ticks
on crowded axes.
plot2cube
/plot2sphere
(sometimes)
and plot2matrix
now use angled axis labels
by default.histogram
,
kde
,
knn
,
densogram
,
gaussian
)
have a new
sideways
configuration option that can draw the quantity being assessed
along the vertical instead of the horizontal axis.taplint
bug that did not recognise
ADQL 2.1 feature features-adql-conditional
but did recognise features-adql-bitwise
.mocshape
,
generates MOCs from shape specifications in a table.pixfoot
can now write ASCII MOCs.mocUniq
,
mocUniqToOrder
, mocUniqToIndex
,
mocSkyProportion
, mocTileCount
.shuffle
.parqlint
added
for validating parquet files against the
VOParquet convention.parqlook
added
for examining parquet (including VOParquet) files.paux
and
pweighted
.isometric
option to plot2cube
.MOC-ASCII
and UNIQ
for areatype
in area-like layers
are now supported in plot2sphere.area
,
polygon
and
poly4
.
Filled polygons no longer need outlines round them
to avoid annoying gaps between tiles.every
,
head
,
repeat
,
rowrange
,
sorthead
,
tail
,
and schemes
skysim
,
attractor
,
test
and
loop
.pixfoot
now allows
order=0
.sort
filter;
it can now sort tables several times larger than before,
and considerably faster.checksum
mode
so it works reliably with array-valued cells.