-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
327 lines (258 loc) · 14 KB
/
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
- Minor optimizations to the core mapping code, as well as the Simple
Cylindrical and Orthographic map projections were made.
- MaRC now attempts to automatically populate additional standard FITS
keywords in the generated map FITS file based on those provided by
source images, as well as some generated by MaRC (e.g. DATAMIN and
DATAMAX) during map creation.
- MaRC now requires a compiler that supports the C++17 standard.
1 February 2019 - MaRC 0.10
- Fixed a regression in quadratic roots calculations that caused some
areas of an Orthographic projection to incorrectly have data of
value zero, as well as other coordinate calculations.
- Blank areas of integer typed maps now contain the user-supplied
DATA_BLANK value, if specified in the MaRC input file. This allows
FITS image readers to easily identify areas of integer typed maps
that lack data.
- Corrected a problem where MaRC's Simple Cylindrical projection could
not handle the case where lower and upper longitudes in the map were
the same, signifying a 360 degree range, resulting in only single
longitude being mapped across all map pixels. MaRC now assumes the
full 360 degree longitude range is being mapped if both the lower
and upper longitude are the same, and issues a diagnostic message
accordingly.
- The MU plane no longer needs to have the sub-solar point specified.
It was never needed for emission angle calculations.
- The MU0 plane no longer needs to have the sub-observer point and
range specified. They were never needed for incidence angle
computations.
- Improved MaRC input file parser error reporting. The filename, line
number and column containing the syntax error are now reported to
the user.
- Corrected handling of position angles explicitly marked as clockwise,
i.e. "CW", in MaRC input files. They were erroneously treated as
counter-clockwise position angles.
- The user-specific MaRC configuration file is now expected to be
`$XDG_CONFIG_HOME/marc', which is `~/.config/marc' by default, to
conform to the XDG Base Directory Specification. The old MaRC
configuration filename `~/.marc' is no longer supported.
- Added command line option support. Try "marc --help".
- Improved logging by leveraging the fmt library as the underlying
logging framework. This allows for faster logging, and log level
differentiated output.
- Corrected progress output for the Orthographic map projection so
that completion percentage is printed up to 100%.
- MERCATOR map entries in MaRC input files may now use options common
to all MaRC map projections.
- Fixed a mosaic averaging regression that caused weighted and
unweighted averaging to be disabled if either was selected.
- Added support for generation of code coverage results for g++
builds. Try the following to generate the results:
./configure --enable-code-coverage
make check-code-coverage
- Replaced all uses of the MaRC-specific "bodycentric" and
"bodygraphic" latitude terminology with the NASA NAIF recommended
"planetocentric" and "planetographic", respectively.
31 January 2018 - MaRC 0.9.10
- Reduced footprint of the MaRC program (`marc') and library
(`libMaRC'). For example, including both the MaRC library and
program, the static footprint was reduced by 28% for a 64-bit Linux
build with g++ 7.2 when comparing total sizes returned by the `size'
command.
- Data scaling values, i.e. BSCALE and BZERO, as well as the physical
data unit (BUNIT) are now automatically written to the map FITS
header when possible. This allows FITS reading and viewing software
to automatically provide the actual physical value to the user,
instead of forcing the user to manually scale the map data.
Currently this only applies to single plane maps containing one of
the MaRC virtual images (MU, MU0, PHASE, LATITUDE or LONGITUDE).
Maps with multiple planes currently write the scaling values as
free-form text across several HISTORY cards in the FITS header
instead of standalone BSCALE, BZERO and BUNIT cards. In this case,
data scaling of map values to physical values must generally be
performed manually.
- Corrected automatic offset calculation for LONGITUDE map planes when
creating integer typed maps. Longitude values closer to 360 degrees
are no longer cutoff. Be aware that an offset must be applied to
convert from the map longitude value to the physical longitude
value. See the generated map FITS header to obtain the offset
(BZERO) value.
- Further expanded the MaRC test suite (try "make check").
- The MU, MU0 and PHASE virtual images may now contain all cosine
values i.e. the interval [-1, 1], and are no longer limited to
positive values alone. There was no real need to drop the negative
values. To obtain the old behavior where only cosine values [0, 1]
were mapped set the DATA_MIN keyword for the MU, MU0 and PHASE map
plane entries in your MaRC input file to zero, e.g.:
PLANE:
DATA_MIN: 0
MU: ...
- The PHASE virtual image no longer ties the existence of a datum to a
positive cosine of the emission of the angle (mu), meaning cosine of
phase angle data will also be plotted in areas of the map where
mu < 0.
- Improved speed of MU, MU0 and PHASE virtual image generation by up
to 100% by dropping a redundant data "visibility" check.
- Slightly improved overall MaRC performance by leveraging link-time
optimization on some platforms.
- Corrected problem in conformal (Mercator and Polar Stereographic)
maps that prevented calculation of latitudes for the entire map from
completing in some cases.
- Dropped references to "transverse" in documentation related to the
Mercator projection. MaRC's Mercator projection is the regular
variant not the transverse one.
- Improved accuracy of conformal maps through root finding
improvements.
- Fixed memory violations in conformal maps.
20 August 2017 - MaRC 0.9.9
- Data generated by the MU, MU0, PHASE, LATITUDE and LONGITUDE virtual
images are now automatically offset and scaled by the largest power
of 10 suitable for maximizing the number of significant digits retained
when storing their floating point values in integer typed maps. For
example, MU image data, which has a range of [-1, 1], will be scaled
and offset to a range of [0, 200] for a map with BYTE (unsigned 8
bit integer) data, [-10000, 10000] for a SHORT (signed 16 bit
integer) data type map, and [-1e+09, 1e+09] for LONG (signed 32 bit
integer) typed maps.
The virtual image data is only automatically scaled and/or offset
for integer typed maps. They are not scaled or offset when creating
maps with a floating point data type (DATA_TYPE of FLOAT or
DOUBLE).
The necessary scale and offset needed to obtain the true values of
these virtual images in integer typed maps is now automatically
written to the map FITS header as well.
NOTE: The hardcoded scale value of 10000 for the MU, MU0 and PHASE
virtual images that existed in previous versions of MaRC has
been removed for all map data types. Due to the automatic
scaling that now occurs, the results will be the same for
SHORT map types, but not the other types. As described above,
a better scaling factor and offset will be chosen.
- Corrected problem where flat-field correction would fail.
- Improved accuracy of vector magnitude calculations by leveraging an
implementation that avoids floating point underflow and overflow, as
well as having extremely low floating point error.
- Improved accuracy of quadratic equation root calculations by using
an implementation that avoids loss of significant digits
(i.e. catastrophic cancellation). This impacts the sky removal
feature and the Orthographic map projection.
- LONG map types are now correctly written to the map FITS file with
32 bit signed integer data on all platforms, including those where
the fundamental C language long integer type is 8 bytes wide.
- Improved memory management.
- Better C++ exception safety.
- Reduced run-time memory requirements.
- Slightly improved performance due to less deep copies of large
arrays.
- Fixed inversion of source photo images from left to right and top to
bottom.
- Support for maps containing 64 bit signed integer data has been
added. Set DATA_TYPE in your MaRC input file to LONGLONG to use
this feature.
- Fixed problem where negative data was not plotted in maps with a
floating point data type.
- Initial support for Doxygen based MaRC source code documentation
generation is now available. Assuming Doxygen is installed, run
`make doxygen-doc' from the top-level MaRC source directory to
generate MaRC library and program source code documentation.
Generated documentation will reside in the doc/doxygen directory.
24 July 2017 - MaRC 0.9.8
- MaRC now requires C++14 conforming compilers. The 'configure'
script will attempt to detect and enable C++14 support in the C++
compiler in use. Verified to build with g++ 6.3 and Clang++ 3.9.
- Modernized the build infrastructure to leverage the latest versions
of the GNU autotools (Autoconf, Automake and Libtool). This should
provide better build support on more platforms, particularly recent
ones.
- MaRC now passes the static analysis scan run through Coverity (see
https://scan.coverity.com/projects/ossama-othman-marc).
- Added better support for automated detection of CPU tuning compiler
flags.
- Updated LPGL license terms from 2.0 to 2.1.
- Updated GFDL license terms from 1.2 to 1.3.
- Minor optimizations.
- Slight reduction in static footprint.
- Fixed a MaRC::Vector iteration problem that prevented properly
mapping images where the latitude and longitude at the optical axis
({LAT,LON}_AT_CENTER) instead of the of body center
({SAMPLE,LINE}_CENTER were given. Support for the LAT_AT_CENTER and
LON_AT_CENTER MaRC input file keywords is still disabled, however,
since the fix is still somewhat experimental.
11 November 2005 - MaRC 0.9.7
- Fixed latitude/longitude visibility calculation so that it correctly
takes into account an optical axis that is not in line with the
sub-observation point.
9 November 2005 - MaRC 0.9.6
- Reduced floating point computation error when image focal length and
scale are available.
- Fixed logic error that prevented images from being mapped
correctly.
8 February 2005 - MaRC 0.9.5
- Fixed map corruption and redundant mapping problems that occurred
when specifying more than one MaRC input file on the command line to
parse.
- MaRC input file PDF documentation now contains a section menu and
hyperlinks with the document text.
8 November 2004 - MaRC 0.9.4
- Removed dependency on FlexLexer.h when building MaRC.
- Added several regression tests. Try "make check".
3 November 2004 - MaRC 0.9.3
- Enhanced C library NaN constant detection to support additional ways
of retrieving the NaN constant. Addresses build errors on Solaris.
2 November 2004 - MaRC 0.9.2
- Added support for Transverse Mercator projection. It is a conformal
projection, i.e. it preserves shape.
- Added support for Polar Stereographic projects. It too is a
conformal projection.
- Fixed configuration problem on Solaris.
13 October 2004 - MaRC 0.9.1
- Fixed mosaic averaging code regression so that seams in image
overlap regions are once again barely visible when averaging images
taken by the same instrument at the same settings (e.g. wavelength).
- Slight speed improvement due to replacement of old TNT matrix code
with MaRC-specific simple and fast matrix/vector implementation.
- Fixed a memory leak and a few potential ones.
- Addressed problem where longitudes in a "longitude map" were not
wrapped into a 360 degree range.
- Added support for GNU g++ 3.4.2.
6 July 2004 - MaRC 0.9
- Major code rewrite. Much cleaner and better designed and organized.
- MaRC now requires modern compilers that support most ANSI/ISO C++
features. Currently tested with GNU g++ 2.95, 3.2.2 and 3.4.0 on
Linux.
- Added two new types of map planes "LATITUDE" and "LONGITUDE", which
contain maps of the latitudes and longitudes in degrees,
respectively.
- Many areas of MaRC have been further optimized.
- Geometric and photometric correction techniques are now "pluggable."
- CFITSIO is the underlying FITS library in MaRC, replacing AIPS++.
This provides MaRC with all of the FITS file benefits provided by
CFITSIO, such as on-the-fly FITS file compression/decompression.
- Added support for adding "AUTHOR", "ORIGIN" and "BLANK" FITS
keywords to map FITS file.
- Sky removal feature no longer modifies source image, reducing the
chances of losing valid data when mapping.
- Disabled all map projections except for Orthographic and Simple
Cylindrical. The others have not yet been ported to the new MaRC
library API.
- MaRC is now distributed under the terms set forth in the GNU General
Public License (GPL) and the GNU Lesser General Public License (LGPL).
18 November 1997
- Updated coordinate transformation matrix computations.
Transformation should now be correct. The update allows MaRC to
take into account the fact the camera may not be looking directly at
the sub-observation point.
- Added a perspective projection. (STILL EXPERIMENTAL)
- Added code to use weighted averages when mapping in overlap regions.
Seams are virtually invisible when mapping source images that were
taken with the same instrument.
- Many code fixes and clean ups.
- Added some support for reading VICAR files.
30 May 1997
- Memory is now handled very differently. The new memory scheme uses
MUCH less memory for multi-plane maps than previously. Memory
requirements depend ONLY on the number of samples and lines in the
desired map. This means that a map with 20 planes would take up the
same amount of memory as a 1 plane map during mapping! Of course,
additional memory is still required to handle the additional images
in the image queue, but this memory requirement is insignificant
compared to the memory savings of the new memory usage scheme.
- Negative values may now be mapped on "SHORT" (16-bit) integer maps.