Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NASA-AMMOS SLIM Repository Essentials Assistance -- Baseline Files #4

Open
wants to merge 639 commits into
base: main
Choose a base branch
from
Open
Changes from 4 commits
Commits
Show all changes
639 commits
Select commit Hold shift + click to select a range
997c96e
Update geojson data when removing features from vector layers (#230)
ac-61 Sep 9, 2022
1ffaedc
Fix onClick event listener bug (#233)
ac-61 Sep 13, 2022
ae93596
#232 Primary Coordinates (#234)
tariqksoliman Sep 17, 2022
9be1975
#235 - api:drawn:<file_id> layers (#236)
tariqksoliman Sep 19, 2022
4bc03b3
#237 ViewshedTool Target Height and MeasureTool Line-of-Sight (#238)
tariqksoliman Sep 22, 2022
0a84c70
Minor style tweak
tariqksoliman Sep 22, 2022
77d8400
Various bug fixes, collapse and sort on query layer
tariqksoliman Sep 23, 2022
f4e662e
#239 Higher toGeoJSON preicision, stop guest being a user, DrawTool r…
tariqksoliman Sep 27, 2022
1a416f4
Fix TimeControl so WMS information is set before layers are loaded (#…
ac-61 Sep 27, 2022
d19ef25
#242 Allow Users to Hide Features (#243)
tariqksoliman Sep 29, 2022
7a0f06f
Minor DrawTool fixes
tariqksoliman Sep 29, 2022
57a24d8
Add toggleLayer function to MMGIS API (#244)
ac-61 Sep 29, 2022
322d78a
#245 Description and Tags layer fields in COnfig
tariqksoliman Sep 30, 2022
ce47e69
Merge branch 'development' of https://github.com/NASA-AMMOS/MMGIS int…
tariqksoliman Sep 30, 2022
f42e1b0
#245 Finalize layer metadata (#248)
tariqksoliman Sep 30, 2022
c4dc638
Add WebSockets feature to enable pushing updates to clients (#246)
ac-61 Oct 3, 2022
64972f5
#249 LayersTool Filter on Tags and Description (#250)
tariqksoliman Oct 5, 2022
ec58352
Update Deep Linking docs
tariqksoliman Oct 5, 2022
ded9bb2
Fix deep link times for vector layers (#252)
ac-61 Oct 5, 2022
3621295
ts-251 Model Improvements - GLTF support, multiple markerAttachment.m…
tariqksoliman Oct 5, 2022
6531611
Add mmgisAPI.getLayers and mmgisAPI.getLayerConfigs
tariqksoliman Oct 6, 2022
f6de0b7
Minor docs update
tariqksoliman Oct 6, 2022
083ea8f
Another minor docs update
tariqksoliman Oct 6, 2022
6b28994
Fix hardcoding of localhost for websocket (#254)
ac-61 Oct 6, 2022
72bae25
Set correct protocol for WebSocket (#255)
ac-61 Oct 6, 2022
fdd9955
WSS https check 2
tariqksoliman Oct 6, 2022
e8abc03
Minor style change
tariqksoliman Oct 6, 2022
cd4faf6
Minor Filtering improvements
tariqksoliman Oct 6, 2022
a6b7868
Query layer forceGeoJSON
tariqksoliman Oct 6, 2022
f47c0e7
Clean up logs
tariqksoliman Oct 6, 2022
8609698
Fix LayersTool Sublayers not showing up if layer begins off
tariqksoliman Oct 7, 2022
02bcdfd
#258 Labels for Layer Features (#259)
tariqksoliman Oct 13, 2022
4a436f6
Fix docs Coordinates page name
tariqksoliman Oct 13, 2022
befa972
Fix bad name parsing in data shader
tariqksoliman Oct 14, 2022
a23bc85
Label sublayers work on Globe
tariqksoliman Oct 18, 2022
5007ae8
Fix keepLastN and similar
tariqksoliman Oct 18, 2022
7e8146b
Fix updateVectorLayer issue with losing reference
tariqksoliman Oct 19, 2022
32985b0
Max length top description, photosphere damping
tariqksoliman Oct 19, 2022
03b126e
Remove external google font links
tariqksoliman Oct 19, 2022
f3be118
Fix Photosphere rotate direction
tariqksoliman Oct 20, 2022
9286dd4
DrawTool Projection aware circles (#263)
tariqksoliman Oct 20, 2022
4da72dd
Fix stuck sublayers on mmgisAPI updates
tariqksoliman Oct 24, 2022
89ce961
Fix stuck sublayers on mmgisAPI updates 2
tariqksoliman Oct 25, 2022
e971c4f
Add missing mmgisAPI project documentation
tariqksoliman Oct 25, 2022
ae3f8c7
#264 Upgrade gdal2tiles to 3.5.2 for data layer tiling (#266)
tariqksoliman Nov 3, 2022
d044f15
Update gdal2customtiles README
tariqksoliman Nov 3, 2022
9f76f11
Datashaders recompute minmax on tileload not on load
tariqksoliman Nov 7, 2022
a4059d0
#267 Fix litho patterns (#268)
tariqksoliman Nov 8, 2022
24cdf3c
Fix logout cookie deletion
tariqksoliman Nov 9, 2022
580ef8e
gda2tiles dem encode and decode 0s through 2^31
tariqksoliman Nov 10, 2022
8d6b4a6
Update Data README.md
tariqksoliman Nov 10, 2022
6ac2c9c
Update gdal2tiles composite mask
tariqksoliman Nov 11, 2022
e0b5bb7
Add print debug
tariqksoliman Nov 11, 2022
1f4e06b
gdal2tiles exclude 0,0,0,0 from mask
tariqksoliman Nov 11, 2022
be56533
#265 TimeUI and Time Server calls (#271)
tariqksoliman Nov 14, 2022
f643aec
Fix clearVectorLayer switch toggledArray state to off
tariqksoliman Nov 14, 2022
f025455
mmgisAPI Add selectFeature
tariqksoliman Nov 14, 2022
30b52fe
Bump to v2.8.0
tariqksoliman Nov 14, 2022
20c0cdd
Merge
tariqksoliman Nov 15, 2022
6fd57ec
Make sure to remove time tab in time disabled
tariqksoliman Nov 16, 2022
1370cb0
IFrame examples
tariqksoliman Nov 16, 2022
1ec3a54
#279 Time Improvements (#280)
tariqksoliman Nov 21, 2022
cd1c0c8
InfoTool checks for links in metadata and renders anchor tags
tariqksoliman Nov 22, 2022
da230f8
Fix environment variable in sample.env for enabling websockets (#281)
ac-61 Nov 30, 2022
39fc506
Bug Fix: Don't drawing uncertainty ellipse if either axis is 0
tariqksoliman Nov 30, 2022
85bc729
ts-282 Composite Time Tiles, Time Tiles with range (#283)
tariqksoliman Dec 2, 2022
c36eddd
Update Time Tile path structure
tariqksoliman Dec 6, 2022
c039c2e
#285 init-db (#286)
tariqksoliman Dec 8, 2022
d52f58a
#290 Upgrade config page jquery, fix i closing tag (#291)
tariqksoliman Dec 12, 2022
3e9604e
#292 Controlled Time Layers only make initial query, refactored to re…
tariqksoliman Dec 12, 2022
2cf39a4
Fix crash when Time is completely disabled
tariqksoliman Dec 13, 2022
16967fa
#296 Fix WMS url query (#297)
tariqksoliman Dec 15, 2022
22f27c2
#298 TimeUI Pan and Zoom and Improvements (#299)
tariqksoliman Jan 4, 2023
3d2387e
Make marker bearings projection-aware
tariqksoliman Jan 4, 2023
83520b1
Update Docs, Add redundant stopGuests check
tariqksoliman Jan 5, 2023
862990c
Fix Invalid Date when using deep linked timestamps, improve mmgisAPI …
tariqksoliman Jan 6, 2023
6c93cd1
Fix typo
tariqksoliman Jan 6, 2023
2eac369
#294 SameSite None env and login improvements (#302)
tariqksoliman Jan 9, 2023
ba84b7f
Add feature to reconnect WebSocket from client to server (#295)
ac-61 Jan 11, 2023
e426d36
#304 Fix bug in latest too
tariqksoliman Jan 13, 2023
2b53c85
Layer UUIDs (#308)
tariqksoliman Jan 19, 2023
7da18cd
#309 Controlled Raster for initial query only (#311)
tariqksoliman Jan 21, 2023
3d09a79
Fix function call order bug in addNewLayer function (#310)
ac-61 Jan 21, 2023
e81d2fe
Account for non-uuid deep link names
tariqksoliman Jan 23, 2023
8fdacd3
Fix toggleLayer bug (#260)
ac-61 Jan 23, 2023
b4dd759
Fix Node 18+ build (#312)
tariqksoliman Jan 24, 2023
2396a9a
ci: build docker image and push to GitHub Container Registry (#316)
jamesmontalvo3 Jan 26, 2023
14bf101
#317 Fix time vectors not applying correctly (#319)
tariqksoliman Jan 27, 2023
ce6414a
Fix bug where initially on annotations features have no click events
tariqksoliman Jan 31, 2023
e959617
Add function to overwrite elements displayed in LegendTool (#320)
ac-61 Jan 31, 2023
a2bef30
#322 Add ROOT_PATH, Deprecate PUBLIC_URL (#323)
tariqksoliman Feb 2, 2023
3d33ea0
Update docker-build workflow to trigger on deve branch and releases
tariqksoliman Feb 2, 2023
16b33df
Update README.md
tariqksoliman Feb 3, 2023
a5fc368
Update README.md
tariqksoliman Feb 3, 2023
8d290f9
#324 Configurable Context Menu Actions (#325)
tariqksoliman Feb 4, 2023
04ebd72
Add docker build workflow
tariqksoliman Feb 4, 2023
503ba24
Make sure user input UUIDs through REST API are unique (#326)
ac-61 Feb 8, 2023
228bede
#327 Assorted UI Improvements (#328)
tariqksoliman Feb 8, 2023
ae72d16
#313 Expose as much as possible to the mmgisAPI (#330)
tariqksoliman Feb 10, 2023
50d46e2
#331 Websocket aware configure page (#332)
tariqksoliman Feb 14, 2023
9f97fe1
Update addLayer and removeLayer endpoints in REST API (#337)
ac-61 Feb 21, 2023
dc4d7ff
#336 Add GitHub Templates (#338)
tariqksoliman Feb 22, 2023
4ce961b
#303 Photosphere Targets and Target Pairing (#340)
tariqksoliman Feb 22, 2023
9e92fe8
#341 Export working config, disable override (#342)
tariqksoliman Feb 22, 2023
977f5be
Add xml2js and proj4 packages. (#343)
tariqksoliman Feb 23, 2023
1e992cf
#335 Feature Request: GetMissions (#345)
tariqksoliman Feb 23, 2023
5f1a403
Fix typo
tariqksoliman Feb 23, 2023
ab1c96a
#346 Deep Link additional encodeURI
tariqksoliman Feb 27, 2023
3a3f748
Fix missing uuids from configure
tariqksoliman Feb 27, 2023
6a65074
WMS TILESIZE param, features without uncertainty properties won't dra…
tariqksoliman Feb 28, 2023
d12810d
Fix clearOnMapClick function for layers with no fill (#348)
ac-61 Mar 1, 2023
dc6f97b
Fix angleUnit on image attachment
tariqksoliman Mar 6, 2023
0d430e6
Optional Info button for projects that need a link to project info #350
jtroberts Mar 7, 2023
be30b44
Support existing az el properties for pairing attachments
tariqksoliman Mar 9, 2023
9a9d89d
Fix bug in Photosphere where points with matching names get stuck
tariqksoliman Mar 10, 2023
251cdae
Add dontFloor to mod function
tariqksoliman Mar 10, 2023
5bd3ae4
Updates to info and help buttons
jtroberts Mar 13, 2023
2e3450f
Merge pull request #351 from NASA-AMMOS/jr-350
jtroberts Mar 13, 2023
a66c7af
#352 [New Feature]: DrawTool - Feature Property Templates (#353)
tariqksoliman Mar 29, 2023
0b47af1
#354 Add MAIN_MISSION ENV (#355)
tariqksoliman Mar 29, 2023
e760193
Do not append time parameters to wmts tile layers
tariqksoliman Apr 3, 2023
318615d
Fix configure layer cloning
tariqksoliman Apr 4, 2023
bf67629
Remove typo ; in MAIN_MISSION env
tariqksoliman Apr 4, 2023
2ee56bc
Remove outdated firefox-specific css fix
tariqksoliman Apr 11, 2023
87e05ea
Add blob to default-src csp
tariqksoliman Apr 11, 2023
0b75b14
#356 DrawTool Templating - Incrementer field (#357)
tariqksoliman Apr 12, 2023
af11505
#358 - DrawTool - Grouping editing should only update changed templat…
tariqksoliman Apr 13, 2023
253376b
#360 Expose all endpoints to longtermtokens (#362)
tariqksoliman Apr 17, 2023
cf98873
#363 Support file_owner in webhook body. Include body for onFileDelet…
tariqksoliman Apr 17, 2023
502b6b9
Fix layer uuids showing up in bottom-right coords
tariqksoliman Apr 18, 2023
a27b388
Expose ToolController_
tariqksoliman Apr 18, 2023
9cbe4ef
#366 Don't copy uuid on layer clone (#367)
tariqksoliman Apr 24, 2023
2d6acf8
#369 Refresh vector layers, also some WEBSOCKET_ROOT_PATH (#370)
tariqksoliman Apr 27, 2023
5338f9f
#368 Fix Websocket usage with ROOT_PATH (#373)
tariqksoliman May 1, 2023
3406c0f
Fix bad Configure/websockets json writing
tariqksoliman May 3, 2023
6a26e95
Fix time memory leak from improper cleanup of tooltips and slider
tariqksoliman May 8, 2023
d690af2
chore(config): Inline import from same namespace (#375)
evenstensberg May 8, 2023
223fd10
#378 LegendTool as Popup (#379)
tariqksoliman May 11, 2023
627848d
#380 DrawTool - Fix error saving templateless features (#381)
tariqksoliman May 15, 2023
239a0c6
Reset stroke styles too
tariqksoliman May 16, 2023
9cdcca7
fix(imports): destructure modules (#384)
evenstensberg May 26, 2023
68d9a02
chore(naming): use standardized name (#385)
evenstensberg May 26, 2023
18fad9c
Merging MGViz with recent MMGIS in progress
jtroberts Jun 6, 2023
4991070
Temporarily adding private tools before splitting into separate repo
jtroberts Jun 6, 2023
8759f54
Add event listener for toggleSeparatedTool in MMGIS API (#388)
ac-61 Jun 23, 2023
c85c3bc
Added initial TACLS API script and sample data
jtroberts Jun 27, 2023
d44ca3a
Set historical significant earthquake threshold to 5.95
jtroberts Jun 27, 2023
dbfae0e
Merge branch 'development' of github.com:NASA-AMMOS/MMGIS into mgviz1
jtroberts Jun 27, 2023
4c43f33
Prioritize Map splitscreen size when resizing
tariqksoliman Jun 27, 2023
e6a5e0d
#372 calls to updateVectorLayer and appendLineString cause selected f…
tariqksoliman Jun 27, 2023
9fac207
#390 InfoTool - Clicks Intersect Polygons (#391)
tariqksoliman Jun 28, 2023
8f794ce
#387 DrawTool - Group Editing (#392)
tariqksoliman Jul 5, 2023
122b682
Dynamically retrieve TACLS test sites
jtroberts Jul 8, 2023
bfcc59d
DrawTool / Group Editing - Let other users save changes to features
tariqksoliman Jul 12, 2023
25431b3
Added an option to the LegendTool to automatically display on start
jtroberts Jul 12, 2023
cb41d0c
LegendTool needs to have hasVars set to true for the last commit
jtroberts Jul 12, 2023
e608671
Merge pull request #393 from NASA-AMMOS/jr-displayonstart-legend
jtroberts Jul 12, 2023
f0c0319
Added max-width to legend to prevent long text from filling screen
jtroberts Jul 12, 2023
ee3f33d
Added a .nvmrc file with node version
jtroberts Jul 12, 2023
9ca8c11
Merge pull request #395 from NASA-AMMOS/jr-nvmrc
jtroberts Jul 13, 2023
9d5d3a9
Added ellipsis and title for overflow legend text
jtroberts Jul 13, 2023
eb10fc4
Merge pull request #394 from NASA-AMMOS/jr-maxwidth-legend
jtroberts Jul 13, 2023
30ccad9
Merge branch 'development' of github.com:NASA-AMMOS/MMGIS
jtroberts Jul 13, 2023
9ff43d8
Include TACLS results in legend
jtroberts Jul 13, 2023
d8c8ea7
#386 Local Login Issue (#396)
tariqksoliman Jul 13, 2023
843475d
#383 Support raster option on gdal2tiles_3.5.2/gdal2customtiles (#397)
tariqksoliman Jul 17, 2023
48bcefb
Fix mmgisAPI featuresContained when a failed to load layer = null
tariqksoliman Jul 17, 2023
fec9c89
#399 Crashes if Layers are valid JSON but not valid GeoJSON (#400)
tariqksoliman Jul 24, 2023
2ea99c3
#401 Extend CSSO timeout check to main client (#402)
tariqksoliman Jul 24, 2023
3fcdd7e
#403 rightClickMenuActions - Polygons and WKT (#404)
tariqksoliman Jul 25, 2023
dc149c3
#405 DrawTool - Template - Incrementer - Move to backend (#406)
tariqksoliman Jul 31, 2023
3d007b1
Mini fix to allow [] as empty geojson layer data
tariqksoliman Jul 31, 2023
8910424
Fix DrawTool Incrementer self collision bug
tariqksoliman Jul 31, 2023
9be2eba
Convert layer data [<FeatureCollection>] to geojson
tariqksoliman Aug 1, 2023
1984777
#407 Click intersects on Query and Draw layers (#408)
tariqksoliman Aug 4, 2023
0be76c0
Allow the legend tool to be right justified on the screen
jtroberts Aug 7, 2023
bd19a7e
Added HistoricalModerate earthquake layer
jtroberts Aug 8, 2023
ba30c8d
#409 Added example config in description for LegendTool
jtroberts Aug 8, 2023
6b881cb
Merge pull request #409 from NASA-AMMOS/jr-legend-justify
jtroberts Aug 8, 2023
a4ac710
Merge branch 'development' of github.com:NASA-AMMOS/MMGIS into mgviz1
jtroberts Aug 8, 2023
3d1eb0b
Initial Draw Box option for Chart Tool
jtroberts Aug 8, 2023
4c16d88
Updated cron paths for MGViz
jtroberts Aug 8, 2023
526c454
#410 Draw Tool - Time Integration (#411)
tariqksoliman Aug 14, 2023
f95355e
Fixed Velocity tool and updated it to sidebar
jtroberts Aug 17, 2023
2e91145
#412 Add Configuration Option to set TimeUI Extent (#413)
tariqksoliman Aug 21, 2023
5914a93
Custom floating search tool and related UI updates
jtroberts Aug 30, 2023
c426165
Missing configurations for custom search tool
jtroberts Aug 30, 2023
f4b6453
Read custom file names for TACLS output
jtroberts Aug 30, 2023
3f92ab1
Added external jquery-ui that SearchTool needs
jtroberts Aug 30, 2023
d8d6350
#414 IdentifierTool works again with human layer names (#415)
tariqksoliman Sep 5, 2023
2f421aa
#422 Removed event blocking popup functions (#423)
tariqksoliman Sep 5, 2023
5a0e51f
Bump to 2.9.0
tariqksoliman Sep 6, 2023
d7dfce4
2.9.0 merge
tariqksoliman Sep 6, 2023
50472e1
#425 Description Item fixes (#426)
tariqksoliman Sep 8, 2023
7fcdca9
Fixed search site by distance functionality
jtroberts Sep 8, 2023
1fd0063
Initial search sites by drawing polygon option
jtroberts Sep 19, 2023
1ae2ce6
Fix export pdf in ChartTool
jtroberts Sep 19, 2023
9d10bc4
Fix subtitle y spacing on ChartTool
jtroberts Sep 19, 2023
a2a7e59
Remove odd duplicate triggerWebhookds
tariqksoliman Sep 20, 2023
406c152
Fix draw upload webhook not populating geojson field
tariqksoliman Sep 20, 2023
340f6c0
Remove extra log
tariqksoliman Sep 20, 2023
0d2b839
Fix DrawTool deleting tag closing modal bug
tariqksoliman Sep 21, 2023
2402e04
DrawTool - Remove timetoggle when tool closes
tariqksoliman Sep 26, 2023
3bc3e94
DrawTool - Deselect file when turning off
tariqksoliman Sep 26, 2023
dc71787
Fixed SearchTool cross marker not disappearing
jtroberts Sep 26, 2023
8de8b08
#427 Expandable Tools (#428)
tariqksoliman Sep 27, 2023
ba2d8bc
#427 Allow DrawTool names to expand too
tariqksoliman Sep 27, 2023
440ea15
#429 Hotkeys (#430)
tariqksoliman Oct 3, 2023
2de964c
shortcutSuffix and raw variables for tile layers
tariqksoliman Oct 3, 2023
b7d08e9
Update Dependencies (#431)
tariqksoliman Oct 3, 2023
d6b2bdc
docker build workflow - add no-cache param
tariqksoliman Oct 4, 2023
9467d04
Merge branch 'development' of https://github.com/NASA-AMMOS/MMGIS int…
tariqksoliman Oct 4, 2023
f5bc3f9
Update ModuleScopePlugin
tariqksoliman Oct 4, 2023
44ed04f
#432 Image Overlay Fixes (#433)
tariqksoliman Oct 4, 2023
bb5fe75
Support for selecting sites by drawing a polygon on the map
jtroberts Oct 5, 2023
d4a61ac
#435 DrawTool - Reorder Template fields (#436)
tariqksoliman Oct 5, 2023
b311701
#437 Add CONTRIBUTING.md (#438)
tariqksoliman Oct 6, 2023
73b84d8
Update README.md
tariqksoliman Oct 6, 2023
39168ab
Only use valid vertices with polygon search
jtroberts Oct 10, 2023
22d6ae6
Ability to copy earthquake info to clipboard
jtroberts Oct 13, 2023
c52bdfc
#439 DrawTool - Add Advanced Search and Filter UI to Shapes Tab (#440)
tariqksoliman Oct 13, 2023
11e0653
Support booleans in LocalFilterer
tariqksoliman Oct 16, 2023
acd48d1
Show earthquake info even if there is an error
jtroberts Oct 17, 2023
76e8e19
Fixed several minor UI bugs with ChartTool
jtroberts Oct 17, 2023
0710f03
Add coordinates to earthquake info
jtroberts Oct 18, 2023
ec2ea75
ChartTool fixes and disabled TACLS display
jtroberts Oct 18, 2023
637c92d
Fixed chart loading label
jtroberts Oct 18, 2023
92a5567
Make sure python3 is used
jtroberts Oct 23, 2023
e8e209b
Add MGViz Mission data for now
jtroberts Oct 24, 2023
54f7b3d
Fixed CopyLink not working with site selected
jtroberts Oct 24, 2023
23c61aa
Updated sioCron directory
jtroberts Oct 24, 2023
058c9f4
Added legends for point data
jtroberts Oct 24, 2023
2725e64
Fixed site list decoding
jtroberts Oct 24, 2023
c0741cf
#443 Add Database docs (#445)
tariqksoliman Oct 24, 2023
27def3c
Identifier tool vsicurl support (#444)
Wieschie Oct 24, 2023
386054b
Minor updates for API calls (#446)
tariqksoliman Oct 24, 2023
ee4ed5d
Replace mmgis logo with mgviz
jtroberts Oct 25, 2023
04918ca
Fixed Stack Separation not working
jtroberts Oct 25, 2023
9ec6a5c
Fixed Stack On charts not reloading on selection
jtroberts Oct 25, 2023
f3ad3f8
Add file_description tagging schemes to DB docs
tariqksoliman Oct 25, 2023
5fddb04
Add file_description tagging schemes to DB docs 2
tariqksoliman Oct 25, 2023
71b4849
Add file_description tagging schemes to DB docs 3
tariqksoliman Oct 26, 2023
600ef5d
#447 Deep Link shall also deep link to start and end times (#448)
tariqksoliman Oct 26, 2023
d2830ba
Merge branch 'development' of github.com:NASA-AMMOS/MMGIS into mgviz1
jtroberts Oct 31, 2023
6a0e3b2
#398 ShadeTool (#450)
tariqksoliman Nov 8, 2023
3fba967
#449 Export .shp and .kml layers (#451)
tariqksoliman Nov 9, 2023
8bd22d0
Improve KML Export Styles
tariqksoliman Nov 14, 2023
39fbea7
Merge branch 'development' of github.com:NASA-AMMOS/MMGIS into mgviz1
jtroberts Nov 14, 2023
4632b75
Fixed SearchTool not refreshing chart if ChartTool already loaded
jtroberts Nov 14, 2023
0a4b407
Slim Infusion: Update baseline SLIM templates with core information. ...
jpl-jengelke Jan 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@
/API/logs/*
/Missions/*
!/Missions/.gitkeep
/private/api/spice/kernels/*

#Nested repo where private backend might reside
/API/MMGIS-Private-Backend
5 changes: 4 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -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 . .

9 changes: 9 additions & 0 deletions config/js/config.js
Original file line number Diff line number Diff line change
@@ -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"
@@ -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();
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_
Loading