Skip to content

Commit

Permalink
#398 ShadeTool (#450)
Browse files Browse the repository at this point in the history
* #398 ShadeTool part 1

* #398 Spice, somewhat working shade tool, needs touchups and verification

* #398 Update python-requirement.txt

* #398 Improve shade tool 1

* #398 Auto fill dynamic template

* #398 Chronos part 1

* #398 Add getKernel helpers

* #398 Shade - Chronos integration, test with 2 orbiters, cleanup UI, sources and observers from config

* #398 Final touchups, docs, includeSunEarth, bug fixes, utc instead of tdb

* #398 configurable height, remove altitude, timeUI start in point mode

* #398 Fix bad target lnglat issue and fix altitude units

* touchups

* Update python-requirements.txt

* Update Dockerfile

* Update python-requirements.txt

* Merge Dev into Feature Branch (#441)

* MMGIS 2.6.0 (#160)

* Added function to set initial layer times based on current time

* Remove debug print out (#126)

* #127 DrawTool - enable panning around without dropping points while d… (#128)

* #127 DrawTool - enable panning around without dropping points while drawing

* DrawTool - make active layer deselectable

* DrawTool - Fix uploaded file edit panel

* #129 BottomBar UI Visibility Modal (#130)

* Fix PUBLIC_URL configure urls (#131)

* env comment on DB_HOST in docker

* Fix controlled layer returning null

* Sublayers on Controlled Layers

* #134 - Any Projection Image Marker Attachments (#137)

* #139 Control Raster Filters in LithoSphere (#140)

* Update litho to css friendly filter effects

* #138 Projection agnostic Uncertain Ellipses, touch ups (#141)

* Minor colorramp dropdown fix

* leaflet-imagetransfrom map check

* Dockerfile node:16 (#145)

* Update README.md

Node 10.10 -> Node 14.9.0

* Implement webhooks feature (#146)

* First implementation of webhooks

* Remove webhooktoken field

* Reorganize files and functions

* Clean up webhook cards

* Add routes for testing webhooks when using development environment

* Fix Config subpage scrollbar issue

* Fix delete button

Co-authored-by: Tariq Soliman <Tariq.K.Soliman@jpl.nasa.gov>

* Added docs for how to use remote virtual layers via GDAL

- Also updated Measure Tool to support remote DEMs

* A bit more info on gdalwmscache directory in docs

* Remote_Virtual_Layer typo fixes

* Curtain Support (#152)

* Curtain part 2

* rgrams styles

* Touch ups

* Use litho 1.3.0

* #151 Support 3D Uncertainty Ellipses on Point Features (#153)

* 3D Uncertainty ellipses

* #151 Upgrade lithosphere, more uncertainty ellipse options, docs

* Fix minor bugs (#155)

* Upgrade litho

* Litho 1.3.2

* Litho 1.3.3

* Add LineString functions (#156)

* Add function to trim layers containing LineString features

* Add appendLineString function and clean up trimLineString function

* Remove debug code

* Minor fixes

* Add args to dockerfile so PUBLIC_URL can be specified at image build time (#157)

Co-authored-by: David Lees <david.lees@nasa.gov>

* Update the globe when vector layers are modified (#158)

* Update the globe when vector layers are modified

* Remove extraneous code

* Remove extra variable

* Fixed vector time updates not actually refreshing when told to reload (#159)

* Dropdowns can expand up, draw tests

* Bump to 2.6.0

Co-authored-by: Joe Roberts <joe.t.roberts@jpl.nasa.gov>
Co-authored-by: ac-61 <ac-61@users.noreply.github.com>
Co-authored-by: dsl3000 <dsl3001@gmail.com>
Co-authored-by: David Lees <david.lees@nasa.gov>

* Description should be updated to match example code (#189)

* ci: build docker image and push to GitHub Container Registry (#316)

* Update docker-build workflow to trigger on deve branch and releases

* #336 Add GitHub Templates (#338)

* #399 Crashes if Layers are valid JSON but not valid GeoJSON (#400)

* #399 Add geojson validater to map

* #399 allow overloaded coordinates in geojson for extended geojson

* #401 Extend CSSO timeout check to main client (#402)

* #401 Main site timeout notification part 1

* #401 Main site timeout notification part 2

* #401 Main site timeout notification - warn at 20 min

* #403 rightClickMenuActions - Polygons and WKT (#404)

* #403 - Bugfixes and rightclick finds features

* #403 ContextMenu, Actions on features, WKT link populate

* #405 DrawTool - Template - Incrementer - Move to backend (#406)

* Mini fix to allow [] as empty geojson layer data

* Fix DrawTool Incrementer self collision bug

* Convert layer data [<FeatureCollection>] to geojson

* #407 Click intersects on Query and Draw layers (#408)

* #407 Include Query layers in click intersections

* #407 Support intersects on DrawTool layers too

* Allow the legend tool to be right justified on the screen

* #409 Added example config in description for LegendTool

* #410 Draw Tool - Time Integration (#411)

* ts-410 DrawTool - Temporal part 1

* #410 DrawlTool - Temporal Integration

* #410 Clearer DrawTool Template Date Start/End Icons

* #412 Add Configuration Option to set TimeUI Extent (#413)

* #414 IdentifierTool works again with human layer names (#415)

* #422 Removed event blocking popup functions (#423)

* Bump to 2.9.0

* #425 Description Item fixes (#426)

* #425 Description Item fixes

* Remove outdated comment

* Remove odd duplicate triggerWebhookds

* Fix draw upload webhook not populating geojson field

* Remove extra log

* Fix DrawTool deleting tag closing modal bug

* DrawTool - Remove timetoggle when tool closes

* DrawTool - Deselect file when turning off

* #427 Expandable Tools (#428)

* #427 Allow DrawTool names to expand too

* #429 Hotkeys (#430)

* #239 Hotkeys 1

* #429 DrawTool toggle last file hotkey

* shortcutSuffix and raw variables for tile layers

* Update Dependencies (#431)

* #365 Separate out dev deps in package.json

* Closer but webapck is broken

* Dev server works - build still broken

* Fix build

* Update Expressjs

* docker build workflow - add no-cache param

* Update ModuleScopePlugin

* #432 Image Overlay Fixes (#433)

* #435 DrawTool - Reorder Template fields (#436)

* #437 Add CONTRIBUTING.md (#438)

* Update README.md

* #439 DrawTool - Add Advanced Search and Filter UI to Shapes Tab (#440)

* #439 DrawTool Shape Tab Filter

* #439 DrawTool - Features Tab filter 2

* Support booleans in LocalFilterer

---------

Co-authored-by: fcalef <49040273+fcalef@users.noreply.github.com>
Co-authored-by: Joe Roberts <joe.t.roberts@jpl.nasa.gov>
Co-authored-by: ac-61 <ac-61@users.noreply.github.com>
Co-authored-by: dsl3000 <dsl3001@gmail.com>
Co-authored-by: David Lees <david.lees@nasa.gov>
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
Co-authored-by: James Montalvo <jamesmontalvo3@gmail.com>

---------

Co-authored-by: fcalef <49040273+fcalef@users.noreply.github.com>
Co-authored-by: Joe Roberts <joe.t.roberts@jpl.nasa.gov>
Co-authored-by: ac-61 <ac-61@users.noreply.github.com>
Co-authored-by: dsl3000 <dsl3001@gmail.com>
Co-authored-by: David Lees <david.lees@nasa.gov>
Co-authored-by: David Tsay <3614296+davetsay@users.noreply.github.com>
Co-authored-by: James Montalvo <jamesmontalvo3@gmail.com>
  • Loading branch information
8 people authored Nov 8, 2023
1 parent 600ef5d commit 6a0e3b2
Show file tree
Hide file tree
Showing 49 changed files with 41,369 additions and 17,332 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
/API/logs/*
/Missions/*
!/Missions/.gitkeep
/private/api/spice/kernels/*

#Nested repo where private backend might reside
/API/MMGIS-Private-Backend
Expand Down
5 changes: 4 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,13 @@ RUN rm /usr/bin/python && ln -s /usr/bin/python3 /usr/bin/python
WORKDIR /usr/src/app

# Install app dependencies
COPY package*.json ./
COPY python-requirements.txt ./
RUN python -m pip install --upgrade pip && python -m pip install -r ./python-requirements.txt

COPY package*.json ./
RUN npm install


# Bundle app source
COPY . .

Expand Down
9 changes: 9 additions & 0 deletions config/js/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,10 @@ function initialize() {
"checked",
cData.time.initiallyOpen ? true : false
);
$("#tab_time #time_startInPointMode").prop(
"checked",
cData.time.startInPointMode ? true : false
);
}
$("#tab_time #time_format").val(
cData.time ? cData.time.format : "%Y-%m-%dT%H:%M:%SZ"
Expand Down Expand Up @@ -2197,6 +2201,11 @@ function save(returnJSON) {
} else {
json.time.initiallyOpen = false;
}
if ($("#tab_time #time_startInPointMode").prop("checked")) {
json.time.startInPointMode = true;
} else {
json.time.startInPointMode = false;
}
json.time.format = $("#tab_time #time_format").val();
json.time.initialstart = $("#tab_time #time_initialstart").val();
json.time.initialend = $("#tab_time #time_initialend").val();
Expand Down
149 changes: 149 additions & 0 deletions docs/pages/Tools/Shade/Shade.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
---
layout: page
title: Shade
permalink: /tools/shade
parent: Tools
---

# Shade

_Shades the ground when line-of-sights to an orbiting target are occluded._

## SPICE

Site administrators are responsible for keeping SPICE kernels up-to-date in `/private/api/spice/kernels` and CHRONOS setup files relevant in `/private/api/spice/chronosSetups`.

There are two SPICE python scripts that require these backend kernel setups:

- `/private/api/spice/chronos.py`
- Converts between time systems.
- Looks for `/private/api/spice/chronosSetups/chronos-{target}.setup` where `{target}` here is filled in as a lowercased ShadeTool variables `"observers"`s `"value"`.
- `/private/api/spice/ll2aer11.py`
- Turns a lnglat and target into a directional azimuth, elevation, range, and lntlat
- Reads in all kernels `/private/api/spice/kernels`.
- `/private/api/spice/getKernelUtils` has some wget scripts as examples for downloadign new kernels (however these resources will quickly become outdated)

## Tool Configuration

### Example

```javascript
{
"dem": "Data/missionDEM.tif",
"data": [
{
"name": "MSL_DEM",
"demtileurl": "pathToDEMTiles/MSL_Gale_DEM_Mosaic_1m_v3/{z}/{x}/{y}.png",
"minZoom": 8,
"maxNativeZoom": 18
}
],
"sources": [
{
"name": "MRO",
"value": "MRO"
},
{
"name": "ODY",
"value": "-53"
},
{
"name": "TGO",
"value": "TGO"
},
{
"name": "MVN",
"value": "MAVEN"
},
{
"name": "The Sun",
"value": "SUN"
}
],
"observers": [
{
"name": "MSL",
"value": "MSL"
}
],
"defaultHeight": 0
}
```

_**dem**_ - A path to a DEM.tif. This is used to get the current center elevation. This can/should be the same file used for the Measure Tool and the Coordinate's elevation.

_**data**_ - At minimum, the Shade tool requires at least one "data" source. A data source describes a DEM tileset (see /auxiliary/gdal2customtiles or /auxiliary/1bto4b) and allows users to select it by name to generate shade maps over.

_**source**_ - An array of objects with the properties "name" and "value". "name" is the display name for the Source Entity dropdown. "value" is the SPICE spacecraft ID that gets passed to the backend `ll2aerll.py` script. Ensure the right kernels for the configured source entities/targets exist in `/private/api/spice/kernels`.

_**observers**_ - An array of objects with the properties "name" and "value". "name" is the display name for the Source Entity dropdown. "value" is the SPICE spacecraft ID that gets passed to the backend `chronos.py` scripts. Ensure the right kernels for the configured observers exist in `/private/api/spice/kernels` and that there is a proper chronos setup file for each observer's value `private/api/spice/chronosSetups/chronos-{lowercased_observer_value}.setup`.

_**defaultHeight**_ - Sets a default for the 'Height' parameter (see below). The regular default is 0 meters.

## Tool Use

**Note:** Terrain beyond the screen's current extent is **not** factored into the displayed visiblity map — only observer-target direction and on-screen terrain is considered. A distant off-screen mountain will **not** cast shadows.

### Interface

- _Time_
- The desired datetime to query. Formatted as `YYYY MMM DD HH:MM:SS` and for example `2023 SEP 06 19:27:05`. Updating this time and pressing 'Enter' will set it as the current time for the ShadeTool and for all of MMGIS. It is both connected to the Observer's local time as well as MMGIS' timeline (expandable via the clock icon in the bottom left of the screen).

#### Source

- _Entity_
- Indicates which spacecraft, orbiter or celestial body to "look towards" and to "shine light back" upon the visible terrain.
- _Include Sun + Earth_
- If true, the relative Sun and Earth positions will also be computed and their directional arrows will be rendered in the bottom azimuth and elevation indicators. In the azimuth and elevation indicators, the Sun is represented by a medium-length yellow arrow and the Earth is represented by a short-length blue-green arrow. These do **not** cast shadows on the visible terrain — only the source entity casts shadows.

#### Observer

- _Entity_
- Which observing spacecraft/orbiter to use. This is only used for formatting and converting the upcoming 'Time' parameter. The true observer position is always the visible map's center longitude and latitude value (represented by a green circle) and always facing north with zero tilt.
- _Time_
- Offers the ability to set the current working time using a mission/spacecraft's custom date type.
- _Height_
- Height in meters above the surface to use when calculating line-of-sight shading. For instance, a point on the surface (0m) may not be visible to a 'Source Entity', say the Mars Reconnaissance Orbiter (MRO), but 2m above that point may be. This value does not _only_ apply to the center longtitude and latitude but to all points on the visible terrain. Gradually increaing this value shows the shade map n-meters above the surface.

#### Shaded Region Options

- _Color_
- The color to shade the shadowed regions on the map.
- _Opacity_
- The opaqueness to shade the shadowed regions on the map. A value of 0 is fully transparent and a value of 1 is fully opaque.
- _Resolution_
- MMGIS downloads terrain data needed for the shading alogrithm. Increasing the resolution improves the quality of the shade map and the cost of download and render speed. Each higher option is 4x the resolution of the previous one (i.e. 'ultra' is 4x more terrain data than 'high' and 16x more data than 'medium'). To save on performance, if the resolution is 'high' or 'ultra', the Shade Tool will no longer regenerate the shaded map whenever any parameter changes and instead 'Generate/Regenerate' must manually be pressed.
- _Elevation Map_

- Specifies the terrain dataset to use.

- _Generate/Regenerate_
- Submits a request to generate a shade map with the provided parameters. Note that if the resolution is 'high' or 'ultra', the Shade Tool will not regenerate the shaded map whenever any parameter changes and instead 'Generate/Regenerate' must manually be pressed.

#### Results

- _Azimuth_: The compass-angle in (0 -> 360) degrees clockwise from north of the direction of the 'Source Entity' as seen from the map's center longitude and latitude. 0 = North, 90 = East, 180 = South, 270 = West.
- _Elevation_: The angular height (-90 -> 90) between the horizon and the 'Source Entity'. -90 = Straight Down, 0 = Level with the Horizon, 90 = Straight Overhead.
- _Range_: The straight-line distance in kilometers between the map's center longitude, latitude and terrain elevation and the 'Source Entity'.
- _Longitude_: The map's center longitude value used in the computation.
- _Latitude_: The map's center latitude value used in the computation.
- _Altitude_: The distance in kilometers above the map's center position's tangential plane and the 'Source Entity'. In other words, in a 3D cartesian coordinate-system where the Z-axis goes through both the center of the visible map and the center of the planet, this 'Altitude' is the Z distance between that center and the 'Source Entity'.

#### Indicators

- _Azimuth_: A top-down birds-eye view of the surface with north up. The long yellow-orange arrow visualizes the azimuthal direction towards the 'Source Entity'. If 'Include Sun + Earth' is on, shorter Sun and Earth arrows will also appear in the indicator with the respective yellow and green-blue colors.
- _Elevation_: A horizontal and half-submerged side view of the surface. The long yellow-orange arrow visualizes the elevational direction towards the 'Source Entity'. If 'Include Sun + Earth' is on, shorter Sun and Earth arrows will also appear in the indicator with the respective yellow and green-blue colors. Note that elevation values only goes from -90 -> 90 but that the rendered elevation arrow can be drawn between 0 -> 360. This is because, while only half a circle is needed, the elevation arrow will choose whether to draw in the left or right half circle depending on which half-circle the azimuth value is in. Azimuth values from 0 -> 180 will result in an elevation arrow drawn in the right half-circle and azimuth values from 180 -> 360 will results in an elevation arrow drawn in the left half-circle. This is to aid in visualizing the 'Source Entity's 3D direction.

### Algorithm

1. The following are taken and fed into SPICE:
- The longitude, latitude, and elevation location at the center of the map (the observer)
- The current date
- The target/source-entity (which may be an orbiter, the Sun, etc.)
2. The following are returned
- The azimuth, elevation, and range from that location to the target
- Source location is assumed to be facing north with no tilt
- The longitude, latitude on the map directly under the target and its elevation
3. All elevation values from the current screen extent and queried
4. The target's longitude, latitude, elevation are projected onto a plane tangential to the observer
5. The screen elevation values are placed in an xy grid and the, from the previous values, the target's respective x,y,elev is computed and run through a modified version of [_Generating Viewsheds without Using Sightlines_](https://www.asprs.org/wp-content/uploads/pers/2000journal/january/2000_jan_87-90.pdf) by _Jianjun Wang, Gary J. Robinson, and Kevin White_
Binary file added private/api/spice/chronos
Binary file not shown.
Binary file added private/api/spice/chronos.exe
Binary file not shown.
60 changes: 60 additions & 0 deletions private/api/spice/chronos.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# SImply wraps commands such as
# chronos.exe -setup ./chronos/chronos-msl.setup -from utc -fromtype scet -to lst -totype lst -time "2023-07-27 23:16:05.644" -NOLABEL
# chronos.exe -setup ./chronos/chronos-msl.setup -to utc -totype scet -from lst -fromtype lst -time "SOL 3901 03:46:54" -NOLABEL

# Run like:
# python chronos.py {target} {from} {fromtype} {to} {totype} {time}
# python chronos.py msl utc scet lst lst "2023-07-27 23:16:05.644"
# returns: {"result": "SOL 3901 03:46:54"}
# if errors, returns: {"error": true, "message": "error_message"}

import sys
import json
import os
import subprocess
import shlex
import platform


try:
from urllib.parse import unquote
except ImportError:
from urllib import unquote

def chronos(target, fromFormat, fromtype, to, totype, time):
package_dir = os.path.dirname(os.path.abspath(__file__)).replace('\\','/')

plt = platform.system()

if plt == "Windows":
cmd = os.path.join(package_dir + '/', 'chronos.exe')
else:
cmd = os.path.join(package_dir + '/', 'chronos')

target = target.replace('\\','').replace('/','')
setup = os.path.join(package_dir + '/', f'chronosSetups/chronos-{target}.setup')
fullCmd = shlex.split(f'{cmd} -setup {setup} -from {fromFormat} -fromtype {fromtype} -to {to} -totype {totype} -time {time} -NOLABEL')

result = subprocess.run(fullCmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

if result.returncode == 0:
return json.dumps({
"result": result.stdout.rstrip()
})
return json.dumps({
"error": True,
"message": result.stdout.rstrip()
})

# Start
target = unquote(sys.argv[1])
fromFormat = unquote(sys.argv[2])
fromtype = unquote(sys.argv[3])
to = unquote(sys.argv[4])
totype = unquote(sys.argv[5])
time = unquote(sys.argv[6])

try:
print(chronos(target, fromFormat, fromtype, to, totype, time))
except:
print(json.dumps({"error": True, "message": 'Error: ' + str(sys.exc_info()[0])}))
29 changes: 29 additions & 0 deletions private/api/spice/chronosSetups/chronos-msl.setup
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
\begindata
PATH_VALUES = (
'./private/api/spice/kernels'
)
PATH_SYMBOLS = (
'KERNELS'
)
KERNELS_TO_LOAD = (
'$KERNELS/naif0012.tls'
'$KERNELS/mar097s.bsp'

'$KERNELS/MSL_76_SCLKSCET.00019.tsc'
'$KERNELS/msl_lmst_ops120808_v1.tsc'

'$KERNELS/pck00011.tpc'

'$KERNELS/de440.bsp'

'$KERNELS/msl_ls_ops120808_iau2000_v1.bsp'
'$KERNELS/msl_atls_ops120808_v1.bsp'

'$KERNELS/msl_v08.tf'
)
SPACECRAFT_ID = -76
CENTER_ID = 499
LANDING_TIME = '2012-08-06T05:17:57'
LANDING_SOL_INDEX = 0
BODY10_GM = 132712440035.0199
\begintext
7 changes: 7 additions & 0 deletions private/api/spice/getKernelUtils/get-kernels-mro.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/MRO/kernels/spk/mro_psp.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/lsk/naif0012.tls
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/pck00011.tpc
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de440.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/MARS2020/kernels/spk/mar097s.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/mars_iau2000_v1.tpc
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de440.bsp
10 changes: 10 additions & 0 deletions private/api/spice/getKernelUtils/get-kernels-msl.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/lsk/naif0012.tls
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/pck00011.tpc
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de440.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/MARS2020/kernels/spk/mar097s.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/mars_iau2000_v1.tpc
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/MSL/kernels/spk/msl_atls_ops120808_v1.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/MSL/kernels/spk/msl_ls_ops120808_iau2000_v1.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/MSL/kernels/sclk/MSL_76_SCLKSCET.00019.tsc
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/MSL/kernels/sclk/msl_lmst_ops120808_v1.tsc
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/MSL/kernels/fk/msl_v08.tf
7 changes: 7 additions & 0 deletions private/api/spice/getKernelUtils/get-kernels-mvn.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/MAVEN/kernels/spk/maven_orb.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/lsk/naif0012.tls
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/pck00011.tpc
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de440.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/MARS2020/kernels/spk/mar097s.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/mars_iau2000_v1.tpc
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de440.bsp
7 changes: 7 additions & 0 deletions private/api/spice/getKernelUtils/get-kernels-ody.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/M01/kernels/spk/m01_map.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/lsk/naif0012.tls
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/pck00011.tpc
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de440.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/MARS2020/kernels/spk/mar097s.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/mars_iau2000_v1.tpc
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de440.bsp
7 changes: 7 additions & 0 deletions private/api/spice/getKernelUtils/get-kernels-tgo.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/EXOMARS2016/kernels/spk/em16_tgo_fsp_296_01_20230424_20231007_v01.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/lsk/naif0012.tls
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/pck00011.tpc
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de440.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/MARS2020/kernels/spk/mar097s.bsp
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/mars_iau2000_v1.tpc
wget -nc -P ../kernels https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de440.bsp
Loading

0 comments on commit 6a0e3b2

Please sign in to comment.