Skip to content
Snippets Groups Projects
Unverified Commit 25e44f98 authored by Trent Hare's avatar Trent Hare Committed by GitHub
Browse files

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: default avatarAustin Sanders <arsanders@usgs.gov>
parent 74bde41f
No related branches found
No related tags found
No related merge requests found
...@@ -53,31 +53,31 @@ def main(): ...@@ -53,31 +53,31 @@ def main():
) )
parser.add_argument( parser.add_argument(
"--semimajor", "-a", "-r", "--radius", "--semimajor", "-a", "-r", "--radius",
required="--semiminor" in sys.argv, required="--semiminor" in sys.argv or "-b" in sys.argv,
type=float, type=float,
default=None, default=None,
help="Optional spherical radius (km) override. Setting " help="Optional spherical radius (m) override. Setting "
" '--semimajor 3396.19' " " '--semimajor 3396190.0' "
"will override both semi-major and semi-minor radius values with the same value. " "will override both semi-major and semi-minor radius values with the same value. "
"An ellipse can be defined if '--semiminor' is also sent. " "An ellipsoid can be defined if '--semiminor' is also sent. "
"If not specified, the default radius " "If not specified, the default radius values "
"values (e.g.; from NAIF kernels or the ISIS Cube) will be used. " "(e.g.; from NAIF kernels or the ISIS Cube) will be used. "
"When is needed? Beyond a specialized need, it is common " "When is a semimajor specification needed? Beyond a specialized need, it is common "
"that planetary bodies are defined as a triaxial body. " "that planetary bodies are defined as a triaxial body. "
"In most of these cases, the IAU WGCCRE report recommends the use of a " "In most of these cases, the IAU WGCCRE report recommends the use of a "
"best-fit sphere for a derived map product. " "best-fit sphere for a derived map product. "
"For current IAU spherical recommendations see: " "For current IAU spherical recommendations see: "
"https://doi.org/10.1007/s10569-017-9805-5 or " "https://doi.org/10.1007/s10569-017-9805-5 or "
"http://voparis-vespa-crs.obspm.fr:8080/web/ ." "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( parser.add_argument(
"--semiminor", "-b", "--semiminor", "-b",
type=float, type=float,
default=None, default=None,
help="Optional semi-minor radius (km) override. When using this parameter, you must also define the semi-major radius. Setting " help="Optional semi-minor radius (m) override. When using this parameter, you must also define the semi-major radius. For example: "
" '--semimajor 3396.19 --semiminor 3376.2' " " '--semimajor 3396190.0 --semiminor 3376200.0' "
"will override the semi-major and semi-minor radii to define an ellipse. " "will override the semi-major and semi-minor radii to define an ellipsoid. "
) )
parser.add_argument( parser.add_argument(
"-v", "--verbose", "-v", "--verbose",
...@@ -117,7 +117,7 @@ def main(): ...@@ -117,7 +117,7 @@ def main():
else: else:
if args.semiminor is None: # set a sphere if args.semiminor is None: # set a sphere
radii = [args.semimajor, args.semimajor] radii = [args.semimajor, args.semimajor]
else: # set as ellipse else: # set as ellipsoid
radii = [args.semimajor, args.semiminor] radii = [args.semimajor, args.semiminor]
if len(args.input) == 1: if len(args.input) == 1:
...@@ -181,10 +181,13 @@ def file_to_isd( ...@@ -181,10 +181,13 @@ def file_to_isd(
usgscsm_str = ale.loads(file) usgscsm_str = ale.loads(file)
if radii is not None: 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 = json.loads(usgscsm_str)
usgscsm_json["radii"]["semimajor"] = radii[0] usgscsm_json["radii"]["semimajor"] = radii[0]
usgscsm_json["radii"]["semiminor"] = radii[1] usgscsm_json["radii"]["semiminor"] = radii[1]
logger.info(f"Overriding radius to:") logger.info(f"Overriding radius to (km):")
logger.info(usgscsm_json["radii"]) logger.info(usgscsm_json["radii"])
usgscsm_str = json.dumps(usgscsm_json, indent=2) usgscsm_str = json.dumps(usgscsm_json, indent=2)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment