Skip to content

Releases: ossama-othman/MaRC

MaRC 0.10

02 Feb 03:36
Compare
Choose a tag to compare
  • 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 the 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.

MaRC 0.9.10

31 Jan 18:49
Compare
Choose a tag to compare
  • 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 (μ), meaning cosine of phase angle data will also be plotted in areas of the map where μ < 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.

Download MaRC

MaRC 0.9.9

21 Aug 02:35
Compare
Choose a tag to compare
  • 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 [-109, 109] 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 hard-coded 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.

Download MaRC

MaRC 0.9.8

21 Aug 02:38
Compare
Choose a tag to compare
  • 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.

  • 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.

Download MaRC

MaRC 0.9.7

31 Jan 19:02
Compare
Choose a tag to compare
  • MaRC 0.9.7 addresses deficiencies in the latitude/longitude visibility calculations, as well as improve efficiency in them.

Download MaRC