From 25e44f980edb956162f7b03b034784ea55df443f Mon Sep 17 00:00:00 2001 From: Trent Hare <thare@usgs.gov> Date: Fri, 25 Oct 2024 14:26:18 -0700 Subject: [PATCH] Radius update with changes to address original PR and review comments (#620) * Update isd_generate.py add in PROJ like options for radius names ("-a", "-r", "--radius", "-b") * Update isd_generate.py updated required statement for --semimajor to catch if only --semiminor or -b is sent. Request that radius is sent in meters and updated some typos. --------- Co-authored-by: Austin Sanders <arsanders@usgs.gov> --- ale/isd_generate.py | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/ale/isd_generate.py b/ale/isd_generate.py index 8692db2..b343bde 100755 --- a/ale/isd_generate.py +++ b/ale/isd_generate.py @@ -53,31 +53,31 @@ def main(): ) parser.add_argument( "--semimajor", "-a", "-r", "--radius", - required="--semiminor" in sys.argv, + required="--semiminor" in sys.argv or "-b" in sys.argv, type=float, default=None, - help="Optional spherical radius (km) override. Setting " - " '--semimajor 3396.19' " + help="Optional spherical radius (m) override. Setting " + " '--semimajor 3396190.0' " "will override both semi-major and semi-minor radius values with the same value. " - "An ellipse can be defined if '--semiminor' is also sent. " - "If not specified, the default radius " - "values (e.g.; from NAIF kernels or the ISIS Cube) will be used. " - "When is needed? Beyond a specialized need, it is common " + "An ellipsoid can be defined if '--semiminor' is also sent. " + "If not specified, the default radius values " + "(e.g.; from NAIF kernels or the ISIS Cube) will be used. " + "When is a semimajor specification needed? Beyond a specialized need, it is common " "that planetary bodies are defined as a triaxial body. " "In most of these cases, the IAU WGCCRE report recommends the use of a " "best-fit sphere for a derived map product. " "For current IAU spherical recommendations see: " "https://doi.org/10.1007/s10569-017-9805-5 or " "http://voparis-vespa-crs.obspm.fr:8080/web/ ." - "Make sure radius values are in kilometers." + "Make sure radius values are in meters (not kilometers)." ) parser.add_argument( "--semiminor", "-b", type=float, default=None, - help="Optional semi-minor radius (km) override. When using this parameter, you must also define the semi-major radius. Setting " - " '--semimajor 3396.19 --semiminor 3376.2' " - "will override the semi-major and semi-minor radii to define an ellipse. " + help="Optional semi-minor radius (m) override. When using this parameter, you must also define the semi-major radius. For example: " + " '--semimajor 3396190.0 --semiminor 3376200.0' " + "will override the semi-major and semi-minor radii to define an ellipsoid. " ) parser.add_argument( "-v", "--verbose", @@ -117,7 +117,7 @@ def main(): else: if args.semiminor is None: # set a sphere radii = [args.semimajor, args.semimajor] - else: # set as ellipse + else: # set as ellipsoid radii = [args.semimajor, args.semiminor] if len(args.input) == 1: @@ -181,10 +181,13 @@ def file_to_isd( usgscsm_str = ale.loads(file) if radii is not None: + # first convert to kilometers for ISD + radii = [x / 1000.0 for x in radii] + usgscsm_json = json.loads(usgscsm_str) usgscsm_json["radii"]["semimajor"] = radii[0] usgscsm_json["radii"]["semiminor"] = radii[1] - logger.info(f"Overriding radius to:") + logger.info(f"Overriding radius to (km):") logger.info(usgscsm_json["radii"]) usgscsm_str = json.dumps(usgscsm_json, indent=2) -- GitLab