forked from Caltech-IPAC/Montage
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeHistory
523 lines (406 loc) · 25.8 KB
/
ChangeHistory
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
Montage Release Change History
6.0 09Nov2018 The primary addition in Version 6.0 is the packaging of Montage
as a set of Python binary extensions (for Mac OS/X and Linux
platforms, Python versions 2.7 and 3.6). This is very different
from previous Python interfaces to Montage which relied on the
user to pre-install Montage on their platform and then provided
access through wrappers.
This release is a true extension in that it is installs a binary
libraries that extend the Python executable itself. No compilers
or other build infrastructure is needed, just a simple
pip install MontagePy
A few Montage modules have not been included but only because
we consider them of questionable utility at this time. We can
certainly reconsider any of these that people find useful.
5.0 21Dec2016 Version 5.0 offers a new fast reprojection module, mProjectQL,
that is suitable for creating images for visualization; support
for FITS files containing data written in the HEALPix sky-
tesselation scheme; and support for creating images that can be
consumed by the World Wide Telescope (WWT). This release also
allows the core modules to be built and used as a statically or
dynamically linked library.The Montage library is built at the
same time as the toolbox modules with the make command; no
special build procedure is needed. A list of the library functions
and the library API is here.
mProjectQL uses the Lanczos image interpolation scheme to provide
higher performance in reprojection at the expense of conservation
of flux; we recommend mProjectQL primarily for creating images
for quick-look visualization rather than for science analysis. It
offers a speed-up of approximately x20 over mProject.
Support for HEALPix: Montage treats HEALPix as if it were a spherical
projection that can processed with the existing reprojection routines
in Montage. It is managed through a local version of the WCStools library
users who prefer to use the SAO library should note that will lose
HEALPix and TOAST support). The distribution includes a copy of the
HPXcvt module to convert HEALPix data from FITS table form to FITS
image form; this module is part of the WCSLib distribution at
http://www.atnf.csiro.au/people/mcalabre/WCS/wcslib. (Copyright (C)
1995-2016, Mark Calabretta).
Support for the WWT: As with HEALPix, Montage treats TOAST, the
sky-tessellation scheme used by the WWT, as if they were a spherical
projection that can processed with the existing reprojection routines
in Montage. It is managed through the same local version of the WCStools
library used to manage HEALPix data. The WWT consumes PNG or JPEG files
organized and named to conform to the TOAST sky-tessellation scheme.
Montage includes custom routines to organize TOAST files for display
in the WWT. These modules are:
mHdrWWT: Create a TOAST tile header file given a tile ID (in Z-order
digits such as"2320") and an output file name.
mHdrWWTExec: Recursively creates all the headers for an all-sky set
using mHdrWWT.
mProjWWTExec: Runs mProjectQL to reproject an all-sky input image
into a set of FITS tile images using the headers created by mHdrWWT
and mHdrWWTExec . It writes all these into a directory, given an an
argument.
mPNGWWTExe: Runs mViewer for each FITS file, using a pregenerated
histogram and a color table given as arguments. The histogram is generated
by mHistogram and can be based on one of the WWT image set or from the
original image(s)from which the WWT images were derived.
4.0 30Sep2015 New modules to support working with data cubes :
mCubeProj -- Based on mProject, this new module allows
for three- and four-dimensional data files (and is easily
extended to more dimensions if we ever find data in that
form that needs to be projected). mCubeProj is for now
kept separate from mProject even though the spatial
code is identical to avoid slowing or introducing bugs
into that heavily-used module. We may merge them back
together in the future.
mCubeProj requires that the first two axes are spatial.
See mTranspose if the cube needs to be reorganized into
this form.
---
mTranspose -- Dealing with reprojection and reselection
of axes at the same time is much more complicated than
either of those operations and makes the code much more
likely to harbor bugs. We have opted for requiring the
spatial dimensions to be the first two in the cube and
providing a "transpose" utility to allow reorganizing
files where this is not the case.
---
mAddCube -- Coadds the reprojected cubes in an input
list to form an output mosaic with FITS header keywords specified
in a header file.
mSubCube -- Creates a subimage (or "cutout") of a FITS file
containing a data cube.
mShrinkCube -- Rescale the spatial dimension of a cube.
Resampling or even averaging in the third dimension is
not generally safe, so we do not attempt it.
---
Library directory names have been changed to reflect
version numbers since most of these are outside packages
that can be replaced by the user if desired (e.g. to change
to a newer version of the WCS library if it has new
projections).
---
Some modules (checkHdr.c, mAddExec.c,
mBgModel.c, mCoverageCheck.c, mDiff.c, mMakeImg.c, mProject.c,
mProjectPP.c, mPutHdr.c, mShrink.c, mSubimage.c) have been
modified slightly to avoid messages from newer versions of
compilers (especially on Mac OSX). No algorithmic
changes; mostly proper handling of returns, etc.
---
We have augmented the "JPEG generator" with enough new
functionality that we are rebranding it as a new tool,
mViewer. mViewer support grayscale, pseudocolor and
full color (three image) rendering into JPEG or PNG files.
There are several overlays possible, including coordinate
grids (of any sort and number) catalog overlays (scaled
and colored symbols with several shapes), image metadata
outlines, labels and custom markers, and so on. mJPEG remains
in the distribution but we do not plan further development.
The JPEG files contain AVM tags that allow them to be ingested
into the World Wide Telescope.
This utility can be used standalone, in pipelines, or as
the basis of an interactive (AJAX GUI) interaction toolkit.
A beta version of the Python wrapper around mViewer has been included
in the distribution.
---
There have been minor updates to several other modules:
Image metadata collection for mImgtbl
occasionally ran into trouble with missing
or invalid WCS keywords. Changed to handle
more gracefully.
mBgModel had a realloc bug where it was point
to the wrong array index.
An optional parameter was added to mMakeHdr to
set a maximum number of pixels on an image side.
mOverlaps now checks to see if the image
metadata already has the image four corners
rather than (re)generating them.
mTblSort had a bug where an empty table would
loop forever.
Finally, there have been a few additions of minor tools
for which need arose:
mPad -- Pad a FITS image with null pixel regions
(e.g. so mViewer can have a border).
mExamine -- Return basic information on a image
and optionally on a cone region.
3.3 14Dec2010 Library directory names changed to reflect version numbers
since most of these are outside packages that can be
replaced by the user if desired (e.g. to change to a newer
version of the WCS library if it has new projections).
The checkHdr() routine used by most programs to validate
that the FITS header in the file being used has all the
necessary information (so we can give a more informative
message than that we get from the WCS library) has been
update to include more checks and better messages.
Several modules had to have a kludge added to get around
a closure problem with the WCS library: For CAR projections
(and potentially other cylindrical projections), FITS headers
with really large CRPIX offsets (e.g. a large fraction of the
sky) had trouble with pix->sky->pix transformations. This
affected mMakeImg, mOverlaps, mProject, mSubimage, mSubset,
mTANHdr, and utilities such as mRotate.
A few modules had an option added to allow status messages
to go to a file rather than to stdout. This is primarily
to support certain workflow environments (like ISI's Pegasus).
Also there is an include file (mNaN.h) that is used to
deal with inter-platform differences in not-a-number checking
and this has been made more robust.
mAdd and mAddExec had small update to better support MPI
use. mBgExec and mProjExec had more extensive MPI additions.
mBgModel has an added parameter (-a) to force the use all
the overlap fits (normally there are exclusion rules for
fits that have too small an area, etc.). There was also
a small bug in the counting of the number of fits that
were to be used.
mCoverageCheck is more careful about WCS initialization,
particularly in cutout mode, for some projections going
back to the original FITS file rather than using the
nominal parameters pulled from it earlier. Also, at one
point in the processing mCoverageCheck was using nominal
outside pixel edges (e.g. -0.5 to npix+0.5) rather than
the exact pixel min,max range even though this had been
determined.
All the pixels being blank in an mDiff run was changed
from an error to a warning to avoid causing higher-level
executives to exit.
mDiffExec was likewise changed to deal with the mDiff
warning properly and to add a "level only" mode to be passed
on the mFitplane (i.e. so that mFitPlane finds only the
average difference between overlapping images and does not
fit a full plane).
mFitExec also need to allow "level only" and had minor
updates for MPI processing.
Finally, mFitplane was changed to support this "level only"
mode.
mImgtbl was changed to return the number of images found
with "bad" WCS information.
mMakeHdr was extended to allow for padding the image header
created and to check for a greater variety of parameters
in the input table.
mMakeImage is more careful about supporting odder projections,
the poles, etc.
mProjectPP was modified to be more careful about checking
"offscale" status in a projection.
mPutHdr was modified to check that inviolate information
(basically BITPIX and NAXIS1,2) were not changed. mPutHdr
is not meant to be used to correct a corrupted file, just
one where non-structural information in the header is
missing or incorrect.
mShrink had an option added to allow it to extract and work
with a single HDU in a multi-HDU FITS file.
mSubimage now includes a "shrink-wrap" mode to strip off
blank pixels around the outside of the image.
mSubset was not handling tables correctly when the coordinate
system of the data and the command-line didn't match.
The interation mechanism in mTANHdr was a little too sensitive
and has been damped down a little.
mTblSort had a reverse sort option added.
Padding in mTileHdr was being added with the wrong sign.
A Galactic plane mosaic DAG generator (mDAGGalacticPlane)
was added to the grid/Pegasus utilities. Also in that package,
mDAG was updated to the Pegasus DAX schema version 2. There
were a few other changes to code in the same package.
mArchiveExec had a simple "restart" mechanism added and is more
robust regarding column names (e.g. "url" and "URL" are both
now valid).
mArchiveGet puts more work into parsing data URLs and dealing
with proxy servers. mArchiveList also now deals with proxy
servers.
mExec, the wrapper executive that runs end-to-end mosaic
processing, has a number of additional options (many of them
about results markup).
mHdr has an extra option when dealing with 2MASS images
to ensure the inclusion of the proper MAGZP value in
the mosaic header. mHdr can make use of the remote object
name "lookup" service and has therefore also been updated
with proper URL proxy handling.
mJPEG is currently under active development (to support
overlays of various sorts) but already has additional
functionality to allow it to deal with files with no
WCS, showing a compass rose, etc.
mPix2Coord can support HDU selection and both FITS and
"header file" data input.
There were several minor updates made to correct typos
or wording in error messsages, etc. or notes in the code.
3.2 Never released except as beta versions. See 3.3 for
changes to final state.
3.1 21Sep2007 The updates in this release center mostly around using
Montage via mExec. The archive access to SDSS has been
brought up to DR6 and full flux calibration is now done.
A problem with CAR projection (which can have very large
offsets as they often refer back to lat=0, lon=0) has been
dealt with, and mExec itself has been made more robust
and the output more instructive.
A few other bug fixes and enhances were also made:
mJPEG can now make images with a simple compass 'rose'
(showing N and E directions) and can make images for
FITS files where there is no valid WCS.
mTANHdr was made more robust, especially in dealing with
projections like CAR (when it is far away from the
equator) where there are some gross overall distortions
(in addition to the fine distortions that mTANHdr is
really meant to address).
3.0 05Jan2007 The core system has not been changed much, though
there have been some additions and numerous small
tweaks. The main emphasis has been on solidifying
Montage use in a distributed Grid environment to
allow the building of large-scale mosaics from
2MASS, SDSS, and DPOSS.
New Core Modules:
+ mConvert
+ mDiffFitExec
+ mHdrTbl
+ mTblSort
New Utilities:
+ mArchiveList
+ mArchiveGet
+ mArchiveExec
+ mBestImage
+ mCatMap
+ mExec
+ mFixNaN
+ mHdr
+ mJPEG
+ mPix2Coord
+ mRotate
Grid tools for Globus, Pegasus included in "grid" subdirectory
Additional Changes:
+ mAdd:
bug fixes; added averaging mode options
+ mAddExec:
new module to create series of tiled mosaics,
instead of one large output image (mAdd)
+ mBgExec:
Memory bug fixes; improved handling for images
with no corrections
+ mBgModel:
Improved error handling; increased default
iterations to 10000
+ mDiff:
Improved error handling; decreased required
pixel area to include in calculations to 0.333
+ mMakeHdr:
Added flag (-p) to set pixel scale; improved
error handling
+ mMakeImg:
Added 'region' and 'replace' modes
+ mOverlaps:
Increased diff file name range
+ mProjExec:
Automatically use mProjectPP when possible;
output message updates; added flux scaling option;
added support for 'hdu' column in image table
+ mProject, mProjectPP:
Added flux scaling option; added weight image and
HDU functionality; added option to force reprojection
of whole image, even if part of it is outside
region of interest
+ mShrink:
Added "fixed size" mode
+ mTANHdr:
Scaling/rotation now inherited from input header;
increased number of points used in fit; check fit
for "all off-scale" condition; performance improvements
2.2 20Jul2004 Makefiles have been updated and the CFITSIO
library modified (see docs/ExternalLibraries.txt
for details) to allow the use of 64-bit addressing
(files larger than 2 GByte) on LINUX platforms.
2.1 01Jul2004 Changes have been made to several modules.
The biggest change, however, is the addition
of mTANHdr (and associated changed to mProjectPP)
which allow the fast reprojection of non-tangent-plane
projections if they can be approximated as distorted
TAN images.
2.0.4 16Mar2004 mAdd no longer allocates the entire output
image up front, and so uses even less memory.
-level-only flag has been added to mBgModel.
New module mShrink added to make scaled
versions of an image (e.g. image with pixel
scale 5.5 times larger than the original)
New modules mRadHit and mRadHitExec added
to try and remove "radiation hit" type
artifacts from original unprojected images
by comparing pixel values to local medians.
New modules mDagTbls and mConcatFit added to
aid in GRID computing use of Montage. The
first generates a set of tables (lists of
images, overlap analysis) for use in setting
up a batch processing run. The second combines
the output of difference fitting (presumably
in this context done via separate threads) into
a single table for use by mBgModel.
2.0.3 04Feb2004 mAdd has been updated to better manage memory
and a fast reprojection (plane-to-plane) module
has been added (mProjectPP).
2.0.2 13Jan2004 Fixed several problems with 'boundaries' library
(used by mMakeHdr). Also fixed a realloc() bug
in mMakeHdr.
2.0.1 25Nov2003 Fixed background matching (specifically mDiff
bug) and made various other minor changes.
2.0 17Sep2003 Status file option added to all modules
to support GRID (Montage-G DAG) processing.
Migrated from Montage 1.7.1:
Fixed a couple of bugs in mProject: FITS
reading was being done incorrectly (which
caused occassional error conditions) and
pixel "handedness" was sometime computed
incorrectly for CD matrices.
1.7 29May2003 - Added checks for malloc return values in mAdd
- mBgModel now allows arbitrarily large
number of iterations
1.6 24Apr2003 Support for DSS projection has been added.
All anomaly reports from 1.5 have been
resolved. Specifically:
- checkHdr.c is more robust (and handles DSS
headers properly
- checkWCS.c handles transposed lon/lat
- Minor changes to mImgtbl support routines
- mImgtbl checks for correct ordering of corners
- Added checks to see if template file lines
contained <CR><LF> syntax (ie, had been passed
through a PC)
- Added checks for svc_run() aborts due to a
missing executable (eg if the mProjExec
executable existed but mProject didn't)
- Fixed bug in mGetHdr where it checked the
wrong argument for FITS header
- mHdrCheck now checks explicitly for a
missing input file
- Added specific checks to mProjExec to see if
the various files and directories on the command
line exist before calling mProject
- Fixed bugs in syntax for parsing -i and -o
arguments in mProject
- Added more debugging messages to mProject
1.5 18Mar2003 All anomoly reports have been resolved
and getopt() processing has been incorporated
into most of the modules to handle command-line
parameters.
1.4 24Jan2003 The background rectification software
has been debugged and modified slightly.
Minor modifications have also been made
to the reprojection code to avoid problems
with small-offset roundoff errors
affecting the pixel overlap calculations.
1.3 1Oct2002 Workaround for bug in WCS library
affecting cylindrical projections;
fix for LINUX bug in svc control
library
1.2 25Sep2002 Initial LINUX port
1.1 27Jul2002 Updated pixel overlap to remove
repeated (within positional tolerance)
points. Otherwise the Girard()
calculation gets confused.
1.0 01Jul2002 Initial Limited Release