-
Notifications
You must be signed in to change notification settings - Fork 11
/
ast.news
1463 lines (1086 loc) · 61.4 KB
/
ast.news
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
AST Library
-----------
A new release (V9.2.12) of the Starlink AST (astrometry) library is
now available.
AST provides a comprehensive range of facilities for attaching
world coordinate systems (such as RA/Dec, frequency, etc.) to astronomical
data, for retrieving and interpreting that information and for generating
graphical output based on it.
The library should be of interest to anyone writing astronomical
software which needs to manipulate coordinate system data, especially
celestial coordinate systems. AST is portable and
environment-independent.
Main Changes in this Version
----------------------------
- A new attribute called IgnoreBadAlt has been added to the FitsChan
class. If set, it allows unreadable alternate axis descriptions within FITS-WCS
headers to be ignored. By default, such headers would cause an error to
be reported.
- A new warning called BadAlt has been added to the FitsChan class. If
included in the list of active warnings (see attribute "Warnings"), a
warning will be created if any alternate axes are ignored when reading a
FITS-WCS header.
- The FitsChan class now supports 64 bit integer keyword values.
- The Table class now supports 64 bit integer columns.
- The FitsTable class now supports 64 bit integer columns.
- The MinOrder attribute of the Moc class can be higher than MaxOrder
to allow small features to be included in a lower-resolution MOC
when using astAddPixelMask or astAddRegion with a non-MOC region.
(It should no longer be set to a very large value to have MaxOrder
used instead in these methods.)
- When adding FITS data or string representation to a Moc object,
cells of greater order than the MaxOrder attribute will be degraded
to that resolution.
- Tracing the outline of a Moc region (via the surface mesh) has
hopefully been made more reliable with the addition of backtracking.
- Added a check for an acos parameter being out of range in internal
line length calculation in SkyFrame.
- Box simplification to Polygon in a SkyFrame checks handedness
without using astGetBounded.
Main Changes in V9.2.11
-----------------------
- A bug in the flagging of permanent memory blocks when AST is configured
--with-memdebug has been fixed.
Main Changes in V9.2.10
-----------------------
- A bug has been fixed in the astRebinSeq4 wrapper where lbnd and ubnd
had dimensions ndim_out rather than ndim_in. Additionally the dimension
check error message was corrected to refer to input dimensions. These
and other recent fixes to astRebinSeq were applied also to astRebin.
- Some memory allocations in PolyMap were corrected.
Main Changes in V9.2.9
----------------------
- Further changes were made to accommodate size_t string lengths in
gfortran V8.
- FitsChan private function RoundFString was updated to avoid copying
overlapping input and output strings.
Main Changes in V9.2.8
----------------------
- The Fortran interface has been changed to fix a bug caused by a change
in the way that gfortran passes character arguments. As of gfortran V8 the
length of each character argument passed to a subroutine is stored in a
size_t value rather than an int value. AST now tests the version of
gfortran at configure-time, and uses int or size_t within the Fortran
API as appropriate. Prior to this change int was always used, which could
cause undefined behaviour and segmentation faults when calling AST
routines under gfortran v8 and later.
- A bug has been fixed in astRebinSeq that could cause NaN values to
appear in the output array in cases where the overlap between two
input arrays is very small. The fix corrects the way in which the mean
weight per input pixel is calculated. It may cause some general minor
changes to the decision about which output pixels pass the "wlim"
criterion.
Main Changes in V9.2.7
----------------------
- The FitsChan class has a new attribute called FitsRounding, which
controls rounding applied when floating point values are formatted as
FITS keyword values. Note, this changes the default rounding behaviour.
Previously, sequences of four or more 9's or 0's were always rounded.
Now, such sequences are only rounded if they extend beyond the tenth
significant digit (the default value for FitsRounding being 10). To
restore the original behaviour, set FitsRounding to 1.
Main Changes in V9.2.6
----------------------
- A bug has been fixed in the FitsChan class that caused an error to be
reported when reading a legal FITS WCS header that uses the "NCP"
projection code. The error message related to a missing alternate axis
description keyword.
Main Changes in V9.2.5
----------------------
- A new method called astNormPoints has been added to the Frame
class. This is similar to the existing astNorm method in that it can be
used to normalise axis values, but can be used on a vector of points rather
than just a single point. In addition, it has an option to choose a
normalisation that avoids discontinuities in the Frame's coordinate
system. The most common usage will be to modify vectors of sky position
in such a way as to avoid sudden jumps of 360 degrees in longitude within
groups of points that span the longitude origin.
- The mesh of points returned by astGetRegionMesh and astShowMesh are now
normalised to avoid discontinuities in celestial longitude. This uses the
new astNormPoints method described in the previous item.
- A bug has been fixed in the KeyMap class that caused astMapGet1<X>
functions to return a vector length of 1 for KeyMap entries with an
undefined value. A vector length of zero is now returned in such cases.
- The way in which the astRebinSeq<X> functions use the "wlim" argument
has been modified in order to improve the performance when the input
variances include aberrant ultra-low values. The change should result in
fewer output pixels being set bad in such cases. This change only affects
cases where the AST__GENVAR flag is not set.
- An option "--with-external-cminpack" had been added to the configure script.
It omits the internal cminpack routines from the built library, and instead
links with an external cminpack library.
Main Changes in V9.2.4
----------------------
- A bug has been fixed that could prevent the astWrite method of the
FitsChan class producing FITS-WCS headers describing alternate axes for
some of the Frames in the supplied FrameSet. Consequently, the headers
produced by astWrite may now include alternate axis descriptions that
were not present previously. These can be supressed using the new AltAxes
attribute.
- The FitsChan class has a new attribute, AltAxes, which controls the
creation of FITS-WCS alternate axis descriptions by the astWrite method.
- The KeyMap class now supports 64 bit signed integer entries.
- Two simplification bugs introduced at V9.2.0 have been fixed.
- The YamlChan class now supports AST "native" encoding.
Main Changes in V9.2.0
----------------------
- A new subclass of Channel called YamlChan has been added. It allows AST
objects to be read and written using YAML. Currently, the ASDF format
developed by STSci (https://asdf-standard.readthedocs.io) is the only
supported encoding.
Main Changes in V9.1.3
----------------------
- The KeyMap class has a new method called astMapCopyEntry that can be used
to copy a single entry from one KeyMap to another.
- The astSimplify method now prefers ShiftMaps over equivalent WinMaps.
- The astSimplify method will now merge WinMaps with neighbouring
diagonal MatrixMaps.
Main Changes in V9.1.2
----------------------
- A bug in the way in which the FitsChan class reads FITS-WCS headers
that have more WCS axes than pixel axes has been fixed (i.e. axes for
which there is no CRPIX value). Previously, the missing pixel axes were
assigned a constant value 1.0. However, the default value for CRPIX
specified by FITS-WCS Paper I is 0.0, not 1.0. So now the missing pixel
axes are assigned the value 0.0.
Main Changes in V9.1.0
----------------------
- The AST source directory has been reorganised to put most of the AST
source files into a subdirectory named "src".
- A bug has been fixed in the TimeFrame class that caused the time
returned by astCurrentTime to be wrong by 37 seconds.
- The Region class has a new convenience method (astPointInRegion) to
test a if a single point is inside a Region.
Main Changes in V9.0.2
----------------------
- The AST sharable libraries now use a non-zero version number.
- The FitsChan class has a new attribute called ForceTab, which is used
in conjunction with the TabOK attribute to force the use of the
"-TAB" algorithm when writing a FrameSet out using the FITS-WCS encoding.
Main Changes in V9.0.0
----------------------
- Functions such as astResample and astMask that handle grids of data
values now have alternative interfaces that can handle grids that contain
more pixels than can be represented in a 4-byte integer. This is achieved
by using 8-byte integer arguments in place of 4-byte arguments. The names
of these "8-byte" interfaces are the same as the 4-byte interfaces but
have the digit "8" appended to the function name (before any trailing data
type code). These new interfaces are documented in an extra paragraph
entitled "Handling of Huge Pixel Arrays" attached to the reference
documentation for each such function.
Note, all C or C++ code that uses AST should be recompiled to pick up
changes made to the header file ast.h. This should be done even if you do
not intend to use the new 8-byte interfaces.
Main Changes in V8.7.2
----------------------
- By default, the AST header file "ast.h" is now installed into both
$STARLINK_DIR/include and $STARLINK_DIR/include/star. The new configure
option "--without-topinclude" can be used to prevent the header file
being installed into $STARLINK_DIR/include.
Main Changes in V8.7.1
----------------------
- The Moc class now supports version 1.1 of the MOC recommendation.
This includes new support for string and JSON encoded MOCs. See methods
astGetMocString and astAddMocString in the Moc class, and also the new
MocChan class.
- The FitsChan class will now read FITS-WCS headers that have
alternate axis descriptions but no primary axis descriptions.
Main Changes in V8.7.0
----------------------
- A new subclass of Region called "Moc" has been added. A Moc
describes an arbitrary region of the sky in the form of a set of HEALPix
cells using the IVOA Multi-Order Coverage scheme..
- The Region class has a new method called astGetRegionDisc, which
returns the centre and radius of a disc that just encloses a
2-dimensional Region.
- The Bounded attribute defined by the Region class is now always
non-zero for Regions defined within a SkyFrame, regardless of whether the
Region has been negated. Previously, it was non-zero only if the Region
had not been negated. Note, this change only affects Regions defined
within SkyFrames.
Main Changes in V8.6.3
----------------------
- Small memory leaks in Region and FitsChan classes have been fixed.
- A bug that could cause an internal buffer overrun within the FitsChan
class when writing out a FITS-WCS spectral axis with the "-LOG" algorithm
has been fixed.
- The test that a Mapping conforms to the requirements of the SIP FITS
distortion scheme has been improved.
- The astRebinSeq method of the Mapping class can now use a different
weight when pasting each separate input data array into the output mosaic.
Main Changes in V8.6.2
----------------------
- The astWrite method of the FitsChan class can now create FITS-WCS headers
that include keyords describing focal plane distortion using the
conventions of the Spitzer SIP scheme. This is however only possible if
the SipOK attribute of the FitsChan is set to a non-zero value (which is
the default), and the FrameSet being written out contains an appropriate
PolyMap that conforms to the requirements of the SIP convention.
- The behaviour of the astLinearApprox method of the Mapping class has
been changed in cases where the Mapping being approximated generates bad
(AST__BAD) values for one or more of its outputs. Previously, any such
Mapping would be deemed non-linear and no fit would be returned. Now, a
fit is returned, provided the other outputs of the Mapping are linear,
but the fit contains AST__BAD values for the coefficients describing the
bad Mapping output.
- The astRebinSeq<X> functions accepts a new flag, AST__PARWGT, which
allows the initial weight to be given for the data being pasted into the
output arrays (the initial weight to use should be include in the "params"
array). This initial weight defaults to 1.0 if the AST__PARWGT flag is not
given.
Main Changes in V8.6.1
----------------------
- A new function call astCreatedAt is now available that returns the function
name, file path and line number at which an AST object was first created.
- The number of digits used to format floating point values has been
increased in order to avoid loss of precision when converting from binary
to string and back to binary. This could cause very small changes in numerical
values returned by AST functions.
- If a FrameSet is supplied as the "Map" argument to astAddFrame, it now
extracts and stores the base->current Mapping from the supplied FrameSet.
Previously, the entire FrameSet was stored as the Mapping.
Main Changes in V8.5.1
----------------------
- A new class of Mapping called ChebyMap has been added. This is a
Mapping that implements Chebyshev polynomial transformations.
- If the function that delivers error messages to the user (astPutErr) is
re-implemented, the new version can now be registered at run-time using
the new astSetPutErr function. Previously, the new version needed to be
linked into the application at build time.
- A bug has been fixed in the PolyMap class that caused incorrect values
to be returned for the TranForward and TranInverse attributes if the PolyMap
has been inverted.
- The KeyMap class has a new method called astMapGetC (AST_MAPGETC) which
returns a named entry as a single string. If the entry is a vector the
returned string is a comma-separated list of its elements, enclosed in
parentheses.
- The Frame class now has a new attribute called DTAI, which can be used
to specify the number of leap seconds at the moment represented by the
Frame's Epoch attribute. By default, the internal look-up table of leap
seconds contained within AST is used. The DTAI attribute allows old
versions of AST, which may not include the most recent leap seconds, to
be used with new data.
- The TimeMap class has been changed so that some conversions now require
a "Dtai" value (i.e. the number of leap seconds) to be supplied by the
caller. If AST__BAD is supplied for "Dtai", the internal look-up table of
leap seconds contained within AST will be used. The conversions affected
are those between TAI and UTC, and those between TT and TDB.
Main Changes in V8.3.0
----------------------
- The PAL library files included in the AST distribution have been updated
to PAL version 0.9.7.
- Multiple identical NormMaps in series will now be simplified to a
single NormMap.
- A NormMap that encapsulates a basic Frame will now be simplified to a
UnitMap.
- The astTimeAdd (AST_TIMEADD) method of the TimeMap class now include an
extra argument that gives the number of values supplied in the arguments
array. Note, any existing code that uses this method will need to be
changed.
- The astSlaAdd (AST_SLAADD) method of the SlaMap class now include an
extra argument that gives the number of values supplied in the arguments
array. Note, any existing code that uses this method will need to be
changed.
- The astSpecAdd (AST_SPECADD) method of the SpecMap class now include an
extra argument that gives the number of values supplied in the arguments
array. Note, any existing code that uses this method will need to be
changed.
- If the astMapRegion (AST_MAPREGION) method is used to map a Region into
a new Frame that has fewer axes than the original Region, and if the
inverse transformation of the supplied Mapping does not specify a value
for the missing axes, then those axes are removed entirely from the
Region. Previously they were retained, but supplied with bad values. This
affects the number of mesh points per axes for such Regions, and so
affects the accuracy of overlap determination.
Main Changes in V8.3.0
----------------------
- A new method called astAxNorm has been added to the Frame class that
normalises an array of axis values. When used with SkyFrames, it allows
longitude values to be normalised into the shortest range.
- A bug has been fixed in the Fortran include file AST_PAR that caused constants
related to PI to be defined as single rather than double precision.
- A bug has been fixed in the astGetRegionBounds method that could
cause the wrong bounds to be returned for regions spanning a longitude =
zero singularity.
Main Changes in V8.2.0
----------------------
- A new class of Mapping called UnitNormMap has been added that converts a
vector to a unit vector relative to a specified centre, plus length. A
UnitNormMap has N inputs and N+1 outputs.The lower N output coordinates
represent a unit vector parallel to the supplied input vector, and the
(N+1)'th output coordinate is the length of the input vector.
- The restriction that Mappings are immutable has been extended to all
Mapping classes. This means that attributes representing parameters of
a Mapping's forward or inverse transformation cannot be changed after
the Mapping has been created. In order to minimise the risk to existing
software, this rule does not apply to Mappings that have not yet been
included in other objects such as CmpMaps or FrameSets, or which have not
yet been cloned. In other words, an error is reported if an attempt is
made to change the nature of a Mapping's transformation, but only if the
reference count of the Mapping is greater than one. The Mapping classes
affected include: GrismMap, LutMap, PcdMap, SphMap, WcsMap and ZoomMap.
Main Changes in V8.1.0
----------------------
- The configure script has a new option "--without-fortran" that allows
AST to be built in situations where no Fortran compiler is available. The
resulting library has no Fortran interface and so cannot be used within
Fortran applications. Also, the link scripts do not attempt to include the
fortran runtime libraries.
Main Changes in V8.0.7
----------------------
- A bug in FitsChan has been fixed which could cause a small shift in
spectral axis value when writing out a spectral cube to FITS-WCS headers,
This shift occurred only if the celestial axes in the cube were not FK5
(RA,Dec).
- Avoid some more compiler warnings.
- A "BadKeyValue" warning is now issued by the FitsChan class if an illegal
FITS keyword value is encountered. See attribute "Warnings" and function
"astWarnings".
Main Changes in V8.0.6
----------------------
- Fix bug in FitsChan that caused SIP headers to be treated as linear
when creating a FrameSet from the headers.
- Fix bug in LutMap that incorrectly allowed an inverse lutmap to be used
even if the original LutMap was not monotonic.
- Allow attributes to be set for each plane of a Plot3D.
- Avoid some compiler warnings.
Main Changes in V8.0.5
----------------------
- The SkyFrame class has a new attribute called SkyTol, which specifies
the smallest significant distance within the SkyFrame. It is used to
decide if the Mapping between two SkyFrames can be considered a unit
transformation. The default value is 0.001 arc-seconds.
- A bug has been fixed in the FitsChan class that prevented illegal
characters within FITS keyword names (i.e. characters not allowed by the
FITS standard) being detected. This bug could under some circumstances
cause a subsequent segmentation violation to occur.
- A "BadKeyName" warning is now issued by the FitsChan class if a FITS
keyword name is encountered that contains any illegal characters. See
attribute "Warnings" and function "astWarnings".
Main Changes in V8.0.4
----------------------
- The behaviour of the astAddFrame method has been changed slightly.
Previously, astAddFrame modified the FrameSet by storing references to
the supplied Mapping and Frame objects within the FrameSet. This meant
that any subsequent changes to the current Frame of the modified FrameSet
also affected the supplied Frame object. Now, astAddFrame stores deep
copies of the Mapping and Frame objects (rather than references) within
the modified FrameSet. This means that subsequent changes to the modified
FrameSet will now have no effect on the supplied Frame.
- The choice of default tick-mark for time axes has been improved, to avoid
previous issues which could result in no suitable gap being found, or
inappropriate tick marks when using formatted dates.
- A new method called astRegionOutline has been added to the Plot class.
It draws the outline of a supplied AST Region.
- A bug has been fixed that could cause astSimplfy to enter an infinite loop.
- Some improvements have been made to the Mapping simplification process
that allow more Mappings to be simplified.
- The Frame class has a new read-only attribute called "InternalUnit",
which gives the units used for the unformatted (i.e. floating-point) axis
values used internally by application code. For most Frames, the
InternalUnit value is just the same as the Unit value (i.e. formatted and
unformatted axis values use the same units). However, the SkyFrame class
always returns "rad" for InternalUnit, regardless of the value of Unit,
indicating that floating-point SkyFrame axis values are always in units
of radians.
- The LutMap class has a new attribute called LutEpsilon, which specifies
the relative error of the values in the table. It is used to decide if
the LutMap can be simplified to a straight line.
Main Changes in V8.0.3
----------------------
- Methods astRebin, astRebinSeq, astResample and astTranGrid now report an
error if an array is specified that has more pixels than can be counted by
a 32 bit integer.
- The hypertext documentation is now generated using Tex4HT rather
than latex2html. The format of the hypertext docs has changed
significantly.
- Another bug fix associated with reading CAR projections from FITS-WCS headers.
- Constructor options strings of the form "..., "%s", text );" can now be
supplied. This avoids a security issue associated with the alternative
form "..., text );".
Main Changes in V8.0.2
----------------------
- For security reasons, the change introduced to astAppendString in
V8.0.1 has been moved to a new function called astAppendStringf, and
astAppendString itself has been reverted to its V8.0.0 version.
Main Changes in V8.0.1
----------------------
- The macro used to invoke the astAppendString utility function has
changed to allow printf-style conversions to be included in the
supplied text. Any code that uses this macro must be re-compiled.
- The astRebin and astRebinSeq family of functions now include support
for arrays with char (byte) and unsigned char (unsigned byte) data types.
- The Base and Current attributes of a FrameSet may now be set using the
Domain name or the index of the required Frame.
- The FITS XPH projection is now supported.
- The order of WCS axes within new FITS-WCS headers created by astWrite
can now be controlled using a new attribute called FitsAxisOrder.
Main Changes in V8.0.0
----------------------
- AST is now distributed under the Lesser GPL licence.
- Least squares fitting of N-dimensional polynomials is now done using
files copied from the C/C++ Minpack package (see
http://devernay.free.fr/hacks/cminpack/index.html).
- Use of the IAU SOFA library has been replaced by ERFA library, which is
a re-badged copy of SOFA distributed under a less restrictive license. A
copy of ERFA is included within AST.
Main Changes in V7.3.4
----------------------
- By default, the simplification of Polygons no longer checks that the
edges are not bent by the simplification. A new attribute, SimpVertices,
can be set to zero in order to re-instate this check.
- The Polygon class has a new method, astConvex, that returns a Polygon
representing the shortest polygon (i.e. convex hull) enclosing a
specified set of pixel values within a supplied array.
Main Changes in V7.3.3
----------------------
- The FitsChan class has new attributes CardName and CardComm, which hold
the keyword name and comment of the current card.
- When reading FITS-WCS headers that include polynomial distortion in the
SIP format, any inverse transformation specified in the header is now
ignored and a new inverse is created to replace it based on the supplied
forward transformation. Previously, an inverse was created only if the
header did not include an inverse. The accuracy of the inverse
transformation has also been improved, although it may now be slower to
evaluate in some circumstances.
- A bug has been fixed that could over-write the FitsChan CarLin attribute
with a non-zero value if the header contains a spectral axis.
- The default options for each newly created FitsChan can now be
specified via the environment variable FITSCHAN_OPTIONS.
Main Changes in V7.3.2
----------------------
- Fix support for reading GLS projections from FITS headers.
- The KeyMap class has new sorting options "KeyAgeUp" and "KeyAgeDown" that
retain the position of an existing entry if its value is changed. See the
SortBy attribute.
- A bug has been fixed in FitsChan that caused CDELT keywords for sky
axes to be treated as radians rather than degrees when reading a FITS
header, if the corresponding CTYPE values included no projection code.
Main Changes in V7.3.1
----------------------
- Fix bug that could cause a segmentation fault when reading a FITS TNX
header.
Main Changes in V7.3.0
----------------------
- IMPORTANT! The interface for the astRebinSeq<X> (AST_REBINSEQ) family
of functions has been changed in order to allow a greater number of
pixels to be pasted into the output array. In C, the "nused" parameter
is now a pointer to a "int64_t" variable, instead of a simple "int". In
Fortran, the NUSED argument for AST_REBINSEQ<X> is now an INTEGER*8.
APPLICATION CODE SHOULD BE CHANGED ACCORDINGLY TO AVOID SEGMENTATION
FAULTS AND OTHER ERRATIC BEHAVIOUR.
- Added a new facility to the FrameSet class to allow each Frame to be
associated with multiple Mappings, any one of which can be used to
connect the Frame to the other Frames in the FrameSet. The choice of
which Mapping to use is controlled by the new "Variant" attribute of the
FrameSet class.
- Mappings (but not Frames) that have a value set for their Ident attribute
are now left unchanged by the astSimplify (AST_SIMPLIFY) function.
Main Changes in V7.2.0
----------------------
- A new method call astMapDefined has been added to the KeyMap class.
It checks if a given key name has a defined value in a given KeyMap.
Main Changes in V7.1.1
----------------------
- A bug has been fixed in FitsChan that caused inappropriate CTYPE values
to be generated when writing a FrameSet to FITS-WCS headers if the
current Frame describes generalised spherical coordinates (i.e. a
SkyFrame with System=Unknown).
- When a FitsChan is used to write an "offset" SkyFrame (see attribute
SkyRefIs) to a FITS-WCS encoded header, two alternate axis descriptions
are now created - one for the offset coordinates and one for the absolute
coordinates. If such a header is subsequently read back into AST, the
original offset SkyFrame is recreated.
Main Changes in V7.1.0
----------------------
- IMPORTANT! The default behaviour of astRebinSeq is now NOT to conserve
flux. To conserve flux, the AST__CONSERVEFLUX flag should be supplied
when calling astRebinSeq. Without this flag, each output value is a
weighted mean of the neighbouring input values.
- A new flag AST__NONORM can be used with astRebinSeq<X> to indicate that
normalisation of the output arrays is not required. In this case no
weights array need be supplied.
- A bug has been fixed in astAddFrame (AST_ADDFRAME) method that could
result in the incorrect inversion of Mappings within the FrameSet when
the AST__ALLFRAMES flag is supplied for the "iframe" parameter.
- The astRate method has been re-written to make it faster and more
reliable.
Main Changes in V7.0.6
----------------------
- A bug has been fixed in astRebinSeq<X> which could result in
incorrect normalisation of the final binned data and variance values.
- When reading a FrameSet from a FITS-DSS header, the keywords CNPIX1 and
CNPIX2 now default to zero if absent. Previously an error was reported.
Main Changes in V7.0.5
----------------------
- The FitsChan class can now read FITS headers that use the SAO
convention for representing distorted TAN projections, based on the use
of "COi_j" keywords to hold the coefficients of the distortion polynomial.
Main Changes in V7.0.4
----------------------
- The previously private grf3d.h header file is now installed into
prefix/include.
Main Changes in V7.0.3
----------------------
- A bug has been fixed which could cause an incorrect axis to be used when
accessing axis attributes within CmpFrames. This could happen if axes
within the CmpFrame have been permuted.
- A bug has been fixed in the SkyFrame class that could cause the two
values of the SkyRef and/or SkyRefP attributes to be reversed.
- Bugs have been fixed in the CmpRegion class that should allow the border
around a compound Region to be plotted more quickly, and more accurately.
Previously, component Regions nested deeply inside a CmpRegion may have
been completely or partially ignored.
- A bug has been fixed in the Plot3D class that caused a segmentation
violation if the MinTick attribute was set to zero.
- The astResampleX set of methods now includes astResampleK and
astResampleUK that handles 64 bit integer data.
Main Changes in V7.0.2
----------------------
- The libast_pal library is no longer built if the "--with-external_pal"
option is used when AST is configured.
Main Changes in V7.0.1
----------------------
- The levmar and wcslib code distributed within AST is now stored in the
main AST library (libast.so) rather than in separate libraries.
Main Changes in V7.0.0
----------------------
- Fundamental positional astronomy calculations are now performed
using the IAU SOFA library where possible, and the Starlink PAL library
otherwise (the PAL library contains a subset of the Fortran Starlink SLALIB
library re-written in C). Copies of these libraries are bundled with AST
and so do not need to be obtained or built separately, although external
copies of SOFA and PAL can be used if necessary by including the
"--with-external_pal" option when configuring AST.
Main Changes in V6.0-1
-----------------------
- The Spitzer "-SIP" distortion code is now recognised within FITS
headers that describe non-celestial axes, as well as celestial axes.
- A bug has been fixed that could cause inappropriate equinox values to
be used when aligning SkyFrames if the AlignSystem attribute is set.
- The format of the version string for AST has changed from
"<major>.<minor>-<release>" to "<major>.<minor>.<release>".
Main Changes in V6.0
-----------------------
- This version of AST is the first that can be used with the Python
AST wrapper module, starlink.Ast, available at http://github.com/timj/starlink-pyast.
- When reading a FITS-WCS header, the FitsChan class now recognises the
non-standard "TPV" projection code within a CTYPE keyword value. This
code is used by SCAMP (see www.astromatic.net/software/scamp) to
represent a distorted TAN projection.
- The Plot class has been changed to remove visual anomalies (such as
incorrectly rotated numerical axis labels) if the graphics coordinates have
unequal scales on the X and Y axes.
- The graphics escape sequences used to produce graphical sky axis labels
can now be changed using the new function astTuneC (AST_TUNEC).
Main Changes in V5.7-2
-----------------------
- The PolyMap class can now use an iterative Newton-Raphson method to
evaluate the inverse the inverse transformation if no inverse
transformation is defined when the PolyMap is created.
- The FitsChan class has a new method astWriteFits (AST_WRITEFITS)
which writes out all cards currently in the FitsChan to the associated
external data sink (specified either by the SinkFile attribute or the
sink function supplied when the FitsChan was created), and then empties
the FitsChan.
- The FitsChan class has a new method astReadFits (AST_READFITS)
which forces the FitsChan to reads cards from the associated external
source and appends them to the end of the FitsChan.
- The FitsChan class has a new read-only attribute called "Nkey", which
holds the number of keywords for which values are held in a FitsChan.
- The FitsChan class has a new read-only attribute called "CardType", which
holds the data type of the keyword value for the current card.
- The FitsChan astGetFits<X> (AST_GETFITS<X>) methods can now be used to
returned the value of the current card.
- If the FitsChan astRead method reads a FITS header that uses the
-SIP (Spitzer) distortion code within the CTYPE values, but which does
not provide an inverse polynomial correction, and for which the PolyTran
method of the PolyMap class fails to create an accurate estimate of the
inverse polynomial correction, then an iterative method will be used to
evaluate the inverse correction for each point transformed.
- The Object class has a new function astToString (C only), which creates
an in-memory textual serialisation of a given AST Object. A corresponding
new function called astFromString re-creates the Object from its
serialisation.
Main Changes in V5.7-1
-----------------------
- All classes of Channel can now read to and write from specified text
files, without the need to provide source and sink functions when the
Channel is created. The files to use are specified by the new attributes
SourceFile and SinkFile.
- The FitsChan class now ignores trailing spaces in character-valued WCS
keywords when reading a FrameSet from a FITS header.
- If the FitsChan astRead method reads a FITS header that uses the -SIP
(Spitzer) distortion code within the CTYPE values, but which does not
provide an inverse polynomial correction, the FitsChan class will now use
the PolyTran method of the PolyMap class to create an estimate of the
inverse polynomial correction.
Main Changes in V5.7-0
-----------------------
- The FitsChan class support for the IRAF-specific "TNX" projection has
been extended to include reading TNX headers that use a Chebyshev
representation for the distortion polynomial.
- The FitsChan class support for the IRAF-specific "ZPX" projection has
been extended to include reading ZPX headers that use simple or Chebyshev
representation for the distortion polynomial.
- A bug has been fixed in the FitsChan class that caused headers
including the Spitzer "-SIP" distortion code to be read incorrectly if no
inverse polynomial was specified in the header.
- A new attribute called PolyTan has been added to the FitsChan class. It
can be used to indicate that FITS headers that specify a TAN projection
should be interpreted according to the "distorted TAN" convention
included in an early draft of FITS-WCS paper II. Such headers are created
by (for instance) the SCAMP tool (http://www.astromatic.net/software/scamp).
- The PolyMap class now provides a method called astPolyTran (AST_POLYTRAN)
that adds an inverse transformation to a PolyMap by sampling the forward
transformation on a regular grid, and then fitting a polynomial function
from the resulting output values to the grid of input values.
Main Changes in V5.6-1
-----------------------
- Tables can now have any number of parameters describing the global
properties of the Table.
- Frames now interpret the unit string "A" as meaning "Ampere" rather
than "Angstrom", as specified by FITS-WCS paper I.
- A bug has been fixed in the astFindFrame (AST_FINDFRAME) method that
allowed a template Frame of a more specialised class to match a target
frame of a less specialised class. For example, this bug would allow a
template SkyFrame to match a target Frame. This no longer happens.
Main Changes in V5.6-0
-----------------------
- New functions astBBuf (AST_BBUF) and astEBuf (AST_EBUF) have been added
to the Plot class. These control the buffering of graphical output
produced by other Plot methods.
- New functions astGBBuf and astGEBuf have been added to the interface
defined by file grf.h. The ast_link command has been modified so that the
-grf_v3.2 switch loads dummy versions of the new grf functions. This
means that applications that use the -grf_v3.2 switch should continue to
build without any change. However, the new public functions astBBuf and
astEBuf described in the previous item will report an error unless the
new grf functions are implemented. If you choose to implement them, you
should modify your linking procedure to use the -grf (or -grf_v5.6)
switch in place of the older -grf_v3.2 switch. See the description of the
ast_link command for details of these switches.
- New method astGetRegionMesh (AST_GETREGIONMESH) returns a set of
positions covering the boundary, or volume, of a supplied Region.
Main Changes in V5.5-0
-----------------------
- The FitsChan "TabOK" attribute is now an integer value rather
than a boolean value. As in previous versions, it is used to indicate
whether the "-TAB" algorithm should be supported by the astRead
(AST_READ) and astWrite (AST_WRITE) methods, but in addition it is now
also used to give the version number to assign to any table generated as
a consequence of calling astWrite (AST_WRITE). A negative or zero value
(the default) indicates that support for the -TAB algorithm is not
available, where as a positive non-zero value indicates that support is
available and also gives the table version number to use when creating
subsequent -TAB headers.
Main Changes in V5.4-0
-----------------------
- The FitsChan class now has an option to support reading and writing
of FITS-WCS headers that use the -TAB algorithm described in FITS-WCS paper
III. This option is controlled by a new FitsChan attribute called TabOK.
See the documentation for TabOK for more information.
- A new class called "Table" has been added. A Table is a KeyMap in
which each entry represents a cell in a two-dimensional table.
- A new class called "FitsTable" has been added. A FitsTable is a
Table that has an associated FitsChan holding headers appropriate to a
FITS binary table.
- KeyMaps can now hold byte (i.e. "unsigned char" or BYTE) values.
- A new method called astMapRename (AST_MAPRENAME) has been added to rename
an existing entry in a KeyMap.
- KeyMaps have a new attribute called KeyCase that can be set to zero to
make the handling of keys case insensitive.
Main Changes in V5.3-2
-----------------------
- A bug has been fixed in the FitsChan class that could cause wavelength
axes to be assigned the units "m/s" when reading WCS information from a
FITS header.
- The astSet function (AST_SET) now allows literal commas to be included in
string attribute values. String attribute values that include a literal
comma should be enclosed in quotation marks.
- A bug in FitsChan has been fixed that caused "-SIN" projection codes within
FITS-WCS headers to be mis-interpreted, resulting in no FrameSet being
read by astRead.
- The KeyMap class has a new attribute called "SortBy". It controls
the order in which keys are returned by the astMapKey (AST_MAPKEY) function.
Keys can be sorted alphabetically or by age, or left unsorted.
- Access to KeyMaps holding thousands of entries is now significantly
faster.
- KeyMaps can now hold word (i.e. "short int" or INTEGER*2) values.
Main Changes in V5.3-1
-----------------------
- The KeyMap class has a new method called astMapCopy/AST_MAPCOPY that
copies entries from one KeyMap to another KeyMap.
- The KeyMap class now supports entries that have undefined values. A
new method called astMapPutU/AST_MAPPUTU will store an entry with undefined
value in a keymap.
- The KeyMap class has a new boolean attribute called MapLocked. If true
(non-zero), an error is reported if an attempt is made to add any new entries
to a KeyMap (the value associated with any old entry may still be changed #
without error). The default is false (zero).
- The Object class has a new method called astHasAttribute/AST_HASATTRIBUTE
that returns a boolean value indicating if a specified Object has a named
attribute.
- The SkyFrame class has two new read-only boolean attributes called
IsLatAxis and IsLonAxis that can be used to determine the nature of a
specified SkyFrame axis.
- A bug has been fixed in the astRebin(Seq)/AST_REBIN(SEQ) methods
that could cause flux to be lost from the edges of the supplied array.