├── .env ├── .github └── workflows │ ├── test.yml │ └── test_docker_build.yml ├── .gitignore ├── .gitmodules ├── .python-version ├── LICENSE.md ├── README.md ├── app ├── Dockerfile ├── README.md ├── backup_db.py ├── config_default.ini ├── delete_db_entry.py ├── download_logs.py ├── generate_overview_img.py ├── notebook_helper.py ├── plot_app │ ├── __init__.py │ ├── colors.py │ ├── config.py │ ├── config_tables.py │ ├── configured_plots.py │ ├── db_entry.py │ ├── downsampling.py │ ├── events.py │ ├── helper.py │ ├── leaflet.py │ ├── main.py │ ├── overview_generator.py │ ├── pid_analysis.py │ ├── pid_analysis_plots.py │ ├── plotted_tables.py │ ├── plotting.py │ ├── static │ │ ├── cesium │ │ │ ├── Build │ │ │ │ └── Cesium │ │ │ │ │ ├── Assets │ │ │ │ │ ├── IAU2006_XYS │ │ │ │ │ │ ├── IAU2006_XYS_0.json │ │ │ │ │ │ ├── IAU2006_XYS_1.json │ │ │ │ │ │ ├── IAU2006_XYS_10.json │ │ │ │ │ │ ├── IAU2006_XYS_11.json │ │ │ │ │ │ ├── IAU2006_XYS_12.json │ │ │ │ │ │ ├── IAU2006_XYS_13.json │ │ │ │ │ │ ├── IAU2006_XYS_14.json │ │ │ │ │ │ ├── IAU2006_XYS_15.json │ │ │ │ │ │ ├── IAU2006_XYS_16.json │ │ │ │ │ │ ├── IAU2006_XYS_17.json │ │ │ │ │ │ ├── IAU2006_XYS_18.json │ │ │ │ │ │ ├── IAU2006_XYS_19.json │ │ │ │ │ │ ├── IAU2006_XYS_2.json │ │ │ │ │ │ ├── IAU2006_XYS_20.json │ │ │ │ │ │ ├── IAU2006_XYS_21.json │ │ │ │ │ │ ├── IAU2006_XYS_22.json │ │ │ │ │ │ ├── IAU2006_XYS_23.json │ │ │ │ │ │ ├── IAU2006_XYS_24.json │ │ │ │ │ │ ├── IAU2006_XYS_25.json │ │ │ │ │ │ ├── IAU2006_XYS_26.json │ │ │ │ │ │ ├── IAU2006_XYS_27.json │ │ │ │ │ │ ├── IAU2006_XYS_3.json │ │ │ │ │ │ ├── IAU2006_XYS_4.json │ │ │ │ │ │ ├── IAU2006_XYS_5.json │ │ │ │ │ │ ├── IAU2006_XYS_6.json │ │ │ │ │ │ ├── IAU2006_XYS_7.json │ │ │ │ │ │ ├── IAU2006_XYS_8.json │ │ │ │ │ │ └── IAU2006_XYS_9.json │ │ │ │ │ ├── Images │ │ │ │ │ │ ├── bing_maps_credit.png │ │ │ │ │ │ ├── cesium_credit.png │ │ │ │ │ │ ├── google_earth_credit.png │ │ │ │ │ │ └── ion-credit.png │ │ │ │ │ ├── Textures │ │ │ │ │ │ ├── LensFlare │ │ │ │ │ │ │ ├── DirtMask.jpg │ │ │ │ │ │ │ └── StarBurst.jpg │ │ │ │ │ │ ├── NaturalEarthII │ │ │ │ │ │ │ ├── 0 │ │ │ │ │ │ │ │ ├── 0 │ │ │ │ │ │ │ │ │ └── 0.jpg │ │ │ │ │ │ │ │ └── 1 │ │ │ │ │ │ │ │ │ └── 0.jpg │ │ │ │ │ │ │ ├── 1 │ │ │ │ │ │ │ │ ├── 0 │ │ │ │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ │ │ │ └── 1.jpg │ │ │ │ │ │ │ │ ├── 1 │ │ │ │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ │ │ │ └── 1.jpg │ │ │ │ │ │ │ │ ├── 2 │ │ │ │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ │ │ │ └── 1.jpg │ │ │ │ │ │ │ │ └── 3 │ │ │ │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ │ │ │ └── 1.jpg │ │ │ │ │ │ │ ├── 2 │ │ │ │ │ │ │ │ ├── 0 │ │ │ │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ │ │ │ ├── 1 │ │ │ │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ │ │ │ ├── 2 │ │ │ │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ │ │ │ ├── 3 │ │ │ │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ │ │ │ ├── 4 │ │ │ │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ │ │ │ ├── 5 │ │ │ │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ │ │ │ ├── 6 │ │ │ │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ │ │ │ └── 7 │ │ │ │ │ │ │ │ │ ├── 0.jpg │ │ │ │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ │ │ │ └── 3.jpg │ │ │ │ │ │ │ └── tilemapresource.xml │ │ │ │ │ │ ├── SkyBox │ │ │ │ │ │ │ ├── tycho2t3_80_mx.jpg │ │ │ │ │ │ │ ├── tycho2t3_80_my.jpg │ │ │ │ │ │ │ ├── tycho2t3_80_mz.jpg │ │ │ │ │ │ │ ├── tycho2t3_80_px.jpg │ │ │ │ │ │ │ ├── tycho2t3_80_py.jpg │ │ │ │ │ │ │ └── tycho2t3_80_pz.jpg │ │ │ │ │ │ ├── maki │ │ │ │ │ │ │ ├── airfield.png │ │ │ │ │ │ │ ├── airport.png │ │ │ │ │ │ │ ├── alcohol-shop.png │ │ │ │ │ │ │ ├── america-football.png │ │ │ │ │ │ │ ├── art-gallery.png │ │ │ │ │ │ │ ├── bakery.png │ │ │ │ │ │ │ ├── bank.png │ │ │ │ │ │ │ ├── bar.png │ │ │ │ │ │ │ ├── baseball.png │ │ │ │ │ │ │ ├── basketball.png │ │ │ │ │ │ │ ├── beer.png │ │ │ │ │ │ │ ├── bicycle.png │ │ │ │ │ │ │ ├── building.png │ │ │ │ │ │ │ ├── bus.png │ │ │ │ │ │ │ ├── cafe.png │ │ │ │ │ │ │ ├── camera.png │ │ │ │ │ │ │ ├── campsite.png │ │ │ │ │ │ │ ├── car.png │ │ │ │ │ │ │ ├── cemetery.png │ │ │ │ │ │ │ ├── cesium.png │ │ │ │ │ │ │ ├── chemist.png │ │ │ │ │ │ │ ├── cinema.png │ │ │ │ │ │ │ ├── circle-stroked.png │ │ │ │ │ │ │ ├── circle.png │ │ │ │ │ │ │ ├── city.png │ │ │ │ │ │ │ ├── clothing-store.png │ │ │ │ │ │ │ ├── college.png │ │ │ │ │ │ │ ├── commercial.png │ │ │ │ │ │ │ ├── cricket.png │ │ │ │ │ │ │ ├── cross.png │ │ │ │ │ │ │ ├── dam.png │ │ │ │ │ │ │ ├── danger.png │ │ │ │ │ │ │ ├── disability.png │ │ │ │ │ │ │ ├── dog-park.png │ │ │ │ │ │ │ ├── embassy.png │ │ │ │ │ │ │ ├── emergency-telephone.png │ │ │ │ │ │ │ ├── entrance.png │ │ │ │ │ │ │ ├── farm.png │ │ │ │ │ │ │ ├── fast-food.png │ │ │ │ │ │ │ ├── ferry.png │ │ │ │ │ │ │ ├── fire-station.png │ │ │ │ │ │ │ ├── fuel.png │ │ │ │ │ │ │ ├── garden.png │ │ │ │ │ │ │ ├── gift.png │ │ │ │ │ │ │ ├── golf.png │ │ │ │ │ │ │ ├── grocery.png │ │ │ │ │ │ │ ├── hairdresser.png │ │ │ │ │ │ │ ├── harbor.png │ │ │ │ │ │ │ ├── heart.png │ │ │ │ │ │ │ ├── heliport.png │ │ │ │ │ │ │ ├── hospital.png │ │ │ │ │ │ │ ├── ice-cream.png │ │ │ │ │ │ │ ├── industrial.png │ │ │ │ │ │ │ ├── land-use.png │ │ │ │ │ │ │ ├── laundry.png │ │ │ │ │ │ │ ├── library.png │ │ │ │ │ │ │ ├── lighthouse.png │ │ │ │ │ │ │ ├── lodging.png │ │ │ │ │ │ │ ├── logging.png │ │ │ │ │ │ │ ├── london-underground.png │ │ │ │ │ │ │ ├── marker-stroked.png │ │ │ │ │ │ │ ├── marker.png │ │ │ │ │ │ │ ├── minefield.png │ │ │ │ │ │ │ ├── mobilephone.png │ │ │ │ │ │ │ ├── monument.png │ │ │ │ │ │ │ ├── museum.png │ │ │ │ │ │ │ ├── music.png │ │ │ │ │ │ │ ├── oil-well.png │ │ │ │ │ │ │ ├── park.png │ │ │ │ │ │ │ ├── park2.png │ │ │ │ │ │ │ ├── parking-garage.png │ │ │ │ │ │ │ ├── parking.png │ │ │ │ │ │ │ ├── pharmacy.png │ │ │ │ │ │ │ ├── pitch.png │ │ │ │ │ │ │ ├── place-of-worship.png │ │ │ │ │ │ │ ├── playground.png │ │ │ │ │ │ │ ├── police.png │ │ │ │ │ │ │ ├── polling-place.png │ │ │ │ │ │ │ ├── post.png │ │ │ │ │ │ │ ├── prison.png │ │ │ │ │ │ │ ├── rail-above.png │ │ │ │ │ │ │ ├── rail-light.png │ │ │ │ │ │ │ ├── rail-metro.png │ │ │ │ │ │ │ ├── rail-underground.png │ │ │ │ │ │ │ ├── rail.png │ │ │ │ │ │ │ ├── religious-christian.png │ │ │ │ │ │ │ ├── religious-jewish.png │ │ │ │ │ │ │ ├── religious-muslim.png │ │ │ │ │ │ │ ├── restaurant.png │ │ │ │ │ │ │ ├── roadblock.png │ │ │ │ │ │ │ ├── rocket.png │ │ │ │ │ │ │ ├── school.png │ │ │ │ │ │ │ ├── scooter.png │ │ │ │ │ │ │ ├── shop.png │ │ │ │ │ │ │ ├── skiing.png │ │ │ │ │ │ │ ├── slaughterhouse.png │ │ │ │ │ │ │ ├── soccer.png │ │ │ │ │ │ │ ├── square-stroked.png │ │ │ │ │ │ │ ├── square.png │ │ │ │ │ │ │ ├── star-stroked.png │ │ │ │ │ │ │ ├── star.png │ │ │ │ │ │ │ ├── suitcase.png │ │ │ │ │ │ │ ├── swimming.png │ │ │ │ │ │ │ ├── telephone.png │ │ │ │ │ │ │ ├── tennis.png │ │ │ │ │ │ │ ├── theatre.png │ │ │ │ │ │ │ ├── toilets.png │ │ │ │ │ │ │ ├── town-hall.png │ │ │ │ │ │ │ ├── town.png │ │ │ │ │ │ │ ├── triangle-stroked.png │ │ │ │ │ │ │ ├── triangle.png │ │ │ │ │ │ │ ├── village.png │ │ │ │ │ │ │ ├── warehouse.png │ │ │ │ │ │ │ ├── waste-basket.png │ │ │ │ │ │ │ ├── water.png │ │ │ │ │ │ │ ├── wetland.png │ │ │ │ │ │ │ └── zoo.png │ │ │ │ │ │ ├── moonSmall.jpg │ │ │ │ │ │ ├── pin.svg │ │ │ │ │ │ ├── waterNormals.jpg │ │ │ │ │ │ └── waterNormalsSmall.jpg │ │ │ │ │ └── approximateTerrainHeights.json │ │ │ │ │ ├── Cesium.js │ │ │ │ │ ├── ThirdParty │ │ │ │ │ ├── Workers │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── pako_deflate.min.js │ │ │ │ │ │ ├── pako_inflate.min.js │ │ │ │ │ │ └── z-worker-pako.js │ │ │ │ │ ├── basis_transcoder.wasm │ │ │ │ │ ├── draco_decoder.wasm │ │ │ │ │ └── google-earth-dbroot-parser.js │ │ │ │ │ ├── Widgets │ │ │ │ │ ├── Animation │ │ │ │ │ │ ├── Animation.css │ │ │ │ │ │ └── lighter.css │ │ │ │ │ ├── BaseLayerPicker │ │ │ │ │ │ ├── BaseLayerPicker.css │ │ │ │ │ │ └── lighter.css │ │ │ │ │ ├── Cesium3DTilesInspector │ │ │ │ │ │ └── Cesium3DTilesInspector.css │ │ │ │ │ ├── CesiumInspector │ │ │ │ │ │ └── CesiumInspector.css │ │ │ │ │ ├── CesiumWidget │ │ │ │ │ │ ├── CesiumWidget.css │ │ │ │ │ │ └── lighter.css │ │ │ │ │ ├── FullscreenButton │ │ │ │ │ │ └── FullscreenButton.css │ │ │ │ │ ├── Geocoder │ │ │ │ │ │ ├── Geocoder.css │ │ │ │ │ │ └── lighter.css │ │ │ │ │ ├── I3SBuildingSceneLayerExplorer │ │ │ │ │ │ └── I3SBuildingSceneLayerExplorer.css │ │ │ │ │ ├── Images │ │ │ │ │ │ ├── ImageryProviders │ │ │ │ │ │ │ ├── ArcGisMapServiceWorldHillshade.png │ │ │ │ │ │ │ ├── ArcGisMapServiceWorldImagery.png │ │ │ │ │ │ │ ├── ArcGisMapServiceWorldOcean.png │ │ │ │ │ │ │ ├── bingAerial.png │ │ │ │ │ │ │ ├── bingAerialLabels.png │ │ │ │ │ │ │ ├── bingRoads.png │ │ │ │ │ │ │ ├── blueMarble.png │ │ │ │ │ │ │ ├── earthAtNight.png │ │ │ │ │ │ │ ├── mapQuestOpenStreetMap.png │ │ │ │ │ │ │ ├── mapboxSatellite.png │ │ │ │ │ │ │ ├── mapboxStreets.png │ │ │ │ │ │ │ ├── mapboxTerrain.png │ │ │ │ │ │ │ ├── naturalEarthII.png │ │ │ │ │ │ │ ├── openStreetMap.png │ │ │ │ │ │ │ ├── sentinel-2.png │ │ │ │ │ │ │ ├── stadiaAlidadeSmooth.png │ │ │ │ │ │ │ ├── stadiaAlidadeSmoothDark.png │ │ │ │ │ │ │ ├── stamenToner.png │ │ │ │ │ │ │ └── stamenWatercolor.png │ │ │ │ │ │ ├── NavigationHelp │ │ │ │ │ │ │ ├── Mouse.svg │ │ │ │ │ │ │ ├── MouseLeft.svg │ │ │ │ │ │ │ ├── MouseMiddle.svg │ │ │ │ │ │ │ ├── MouseRight.svg │ │ │ │ │ │ │ ├── Touch.svg │ │ │ │ │ │ │ ├── TouchDrag.svg │ │ │ │ │ │ │ ├── TouchRotate.svg │ │ │ │ │ │ │ ├── TouchTilt.svg │ │ │ │ │ │ │ └── TouchZoom.svg │ │ │ │ │ │ ├── TerrainProviders │ │ │ │ │ │ │ ├── CesiumWorldTerrain.png │ │ │ │ │ │ │ └── Ellipsoid.png │ │ │ │ │ │ ├── TimelineIcons.png │ │ │ │ │ │ └── info-loading.gif │ │ │ │ │ ├── InfoBox │ │ │ │ │ │ ├── InfoBox.css │ │ │ │ │ │ └── InfoBoxDescription.css │ │ │ │ │ ├── NavigationHelpButton │ │ │ │ │ │ ├── NavigationHelpButton.css │ │ │ │ │ │ └── lighter.css │ │ │ │ │ ├── PerformanceWatchdog │ │ │ │ │ │ └── PerformanceWatchdog.css │ │ │ │ │ ├── ProjectionPicker │ │ │ │ │ │ └── ProjectionPicker.css │ │ │ │ │ ├── SceneModePicker │ │ │ │ │ │ └── SceneModePicker.css │ │ │ │ │ ├── SelectionIndicator │ │ │ │ │ │ └── SelectionIndicator.css │ │ │ │ │ ├── Timeline │ │ │ │ │ │ ├── Timeline.css │ │ │ │ │ │ └── lighter.css │ │ │ │ │ ├── VRButton │ │ │ │ │ │ └── VRButton.css │ │ │ │ │ ├── Viewer │ │ │ │ │ │ └── Viewer.css │ │ │ │ │ ├── VoxelInspector │ │ │ │ │ │ └── VoxelInspector.css │ │ │ │ │ ├── lighter.css │ │ │ │ │ ├── lighterShared.css │ │ │ │ │ ├── shared.css │ │ │ │ │ └── widgets.css │ │ │ │ │ ├── Workers │ │ │ │ │ ├── chunk-2HSPJH3C.js │ │ │ │ │ ├── chunk-2QX3ZRAN.js │ │ │ │ │ ├── chunk-3EKULFHC.js │ │ │ │ │ ├── chunk-3R25OJXK.js │ │ │ │ │ ├── chunk-56S3WY3H.js │ │ │ │ │ ├── chunk-5NCMUEUX.js │ │ │ │ │ ├── chunk-6A5E2WLP.js │ │ │ │ │ ├── chunk-6DBAMVE2.js │ │ │ │ │ ├── chunk-6QVIJ7JA.js │ │ │ │ │ ├── chunk-6UMNSGJM.js │ │ │ │ │ ├── chunk-7GU2ORNB.js │ │ │ │ │ ├── chunk-7MCGOXW3.js │ │ │ │ │ ├── chunk-A2ZU5ON6.js │ │ │ │ │ ├── chunk-AODSXSC5.js │ │ │ │ │ ├── chunk-AXIFPJHM.js │ │ │ │ │ ├── chunk-B4L3YPI4.js │ │ │ │ │ ├── chunk-BLYOACVP.js │ │ │ │ │ ├── chunk-BRFVOFKF.js │ │ │ │ │ ├── chunk-BSHGEEYG.js │ │ │ │ │ ├── chunk-C6CGQVLL.js │ │ │ │ │ ├── chunk-CHGCLMPO.js │ │ │ │ │ ├── chunk-DRYFJEFT.js │ │ │ │ │ ├── chunk-E3BAMNKM.js │ │ │ │ │ ├── chunk-E5APRSR6.js │ │ │ │ │ ├── chunk-EEABWYUP.js │ │ │ │ │ ├── chunk-GCC64MRJ.js │ │ │ │ │ ├── chunk-H3L4SJP4.js │ │ │ │ │ ├── chunk-IIPSFM7Z.js │ │ │ │ │ ├── chunk-IISQCXJ5.js │ │ │ │ │ ├── chunk-IY45XUGY.js │ │ │ │ │ ├── chunk-K4YWEDY2.js │ │ │ │ │ ├── chunk-KYVZRNFI.js │ │ │ │ │ ├── chunk-LNO7O274.js │ │ │ │ │ ├── chunk-M243PNMW.js │ │ │ │ │ ├── chunk-MOE32UQS.js │ │ │ │ │ ├── chunk-NYU5F26A.js │ │ │ │ │ ├── chunk-ONYACCBZ.js │ │ │ │ │ ├── chunk-OYWUGDKS.js │ │ │ │ │ ├── chunk-QNEABTP2.js │ │ │ │ │ ├── chunk-RCNUJLF4.js │ │ │ │ │ ├── chunk-RYO6NY7F.js │ │ │ │ │ ├── chunk-T53UE6JF.js │ │ │ │ │ ├── chunk-T5AUOWE7.js │ │ │ │ │ ├── chunk-TC4O6KYE.js │ │ │ │ │ ├── chunk-TRPXTCDK.js │ │ │ │ │ ├── chunk-UBAKWGRR.js │ │ │ │ │ ├── chunk-UKQRKTK2.js │ │ │ │ │ ├── chunk-WHQYJFDH.js │ │ │ │ │ ├── chunk-XDFUUQMZ.js │ │ │ │ │ ├── chunk-XQG25LEF.js │ │ │ │ │ ├── chunk-Y5B6Y3WD.js │ │ │ │ │ ├── chunk-ZEP44EYN.js │ │ │ │ │ ├── combineGeometry.js │ │ │ │ │ ├── createBoxGeometry.js │ │ │ │ │ ├── createBoxOutlineGeometry.js │ │ │ │ │ ├── createCircleGeometry.js │ │ │ │ │ ├── createCircleOutlineGeometry.js │ │ │ │ │ ├── createCoplanarPolygonGeometry.js │ │ │ │ │ ├── createCoplanarPolygonOutlineGeometry.js │ │ │ │ │ ├── createCorridorGeometry.js │ │ │ │ │ ├── createCorridorOutlineGeometry.js │ │ │ │ │ ├── createCylinderGeometry.js │ │ │ │ │ ├── createCylinderOutlineGeometry.js │ │ │ │ │ ├── createEllipseGeometry.js │ │ │ │ │ ├── createEllipseOutlineGeometry.js │ │ │ │ │ ├── createEllipsoidGeometry.js │ │ │ │ │ ├── createEllipsoidOutlineGeometry.js │ │ │ │ │ ├── createFrustumGeometry.js │ │ │ │ │ ├── createFrustumOutlineGeometry.js │ │ │ │ │ ├── createGeometry.js │ │ │ │ │ ├── createGroundPolylineGeometry.js │ │ │ │ │ ├── createPlaneGeometry.js │ │ │ │ │ ├── createPlaneOutlineGeometry.js │ │ │ │ │ ├── createPolygonGeometry.js │ │ │ │ │ ├── createPolygonOutlineGeometry.js │ │ │ │ │ ├── createPolylineGeometry.js │ │ │ │ │ ├── createPolylineVolumeGeometry.js │ │ │ │ │ ├── createPolylineVolumeOutlineGeometry.js │ │ │ │ │ ├── createRectangleGeometry.js │ │ │ │ │ ├── createRectangleOutlineGeometry.js │ │ │ │ │ ├── createSimplePolylineGeometry.js │ │ │ │ │ ├── createSphereGeometry.js │ │ │ │ │ ├── createSphereOutlineGeometry.js │ │ │ │ │ ├── createTaskProcessorWorker.js │ │ │ │ │ ├── createVectorTileClampedPolylines.js │ │ │ │ │ ├── createVectorTileGeometries.js │ │ │ │ │ ├── createVectorTilePoints.js │ │ │ │ │ ├── createVectorTilePolygons.js │ │ │ │ │ ├── createVectorTilePolylines.js │ │ │ │ │ ├── createVerticesFromGoogleEarthEnterpriseBuffer.js │ │ │ │ │ ├── createVerticesFromHeightmap.js │ │ │ │ │ ├── createVerticesFromQuantizedTerrainMesh.js │ │ │ │ │ ├── createWallGeometry.js │ │ │ │ │ ├── createWallOutlineGeometry.js │ │ │ │ │ ├── decodeDraco.js │ │ │ │ │ ├── decodeGoogleEarthEnterprisePacket.js │ │ │ │ │ ├── decodeI3S.js │ │ │ │ │ ├── transcodeKTX2.js │ │ │ │ │ ├── transferTypedArrayTest.js │ │ │ │ │ └── upsampleQuantizedTerrainMesh.js │ │ │ │ │ ├── index.cjs │ │ │ │ │ └── index.js │ │ │ ├── README │ │ │ ├── SampleData │ │ │ │ └── models │ │ │ │ │ ├── CesiumAir │ │ │ │ │ └── Cesium_Air.glb │ │ │ │ │ └── CesiumBalloon │ │ │ │ │ └── CesiumBalloon.glb │ │ │ └── models │ │ │ │ ├── bebop2 │ │ │ │ ├── bebop2_full.blend │ │ │ │ ├── bebop2_full.dae │ │ │ │ ├── bebop2_full.glb │ │ │ │ └── hull.glb │ │ │ │ └── iris │ │ │ │ ├── 1_Cesium_Air_Prop.png │ │ │ │ ├── 1_Cesium_Air_Prop.png.004.png │ │ │ │ ├── 1_Cesium_Air_Prop_larger_disk.png │ │ │ │ ├── HOWTO │ │ │ │ ├── iris.blend │ │ │ │ ├── iris.blend1 │ │ │ │ ├── iris.dae │ │ │ │ ├── iris.glb │ │ │ │ ├── iris.zip │ │ │ │ └── iris_3d_props.blend │ │ ├── css │ │ │ ├── animate.min.css │ │ │ ├── bootstrap.min.css │ │ │ ├── lightbox.css │ │ │ └── main.css │ │ ├── images │ │ │ ├── favicon-32x32.png │ │ │ └── logo.png │ │ └── js │ │ │ ├── bootstrap-filestyle.min.js │ │ │ ├── bootstrap.min.js │ │ │ ├── lightbox.min.js │ │ │ ├── pace.min.js │ │ │ ├── popper.min.js │ │ │ ├── radio_controller.js │ │ │ ├── two.min.js │ │ │ └── upload.js │ ├── statistics_plots.py │ ├── templates │ │ ├── 3d.html │ │ ├── browse.html │ │ ├── edit.html │ │ ├── footer.html │ │ ├── header.html │ │ ├── index.html │ │ ├── main.js │ │ ├── radio_controller.html │ │ └── upload.html │ ├── theme.yaml │ └── vtol_tailsitter.py ├── private_key │ └── dummy_key.pem ├── prune_old_logs.py ├── pylintrc ├── requirements.txt ├── run.sh ├── serve.py ├── setup_db.py ├── testing_notebook.ipynb └── tornado_handlers │ ├── browse.py │ ├── common.py │ ├── db_info_json.py │ ├── download.py │ ├── edit_entry.py │ ├── error_labels.py │ ├── multipart_streamer.py │ ├── radio_controller.py │ ├── send_email.py │ ├── three_d.py │ └── upload.py ├── data └── .gitignore ├── docker-compose.dev.yml ├── docker-compose.prod.yml ├── docker-compose.yml ├── init-letsencrypt.sh ├── letsencrypt ├── Dockerfile └── letsencrypt-renew ├── nginx ├── Dockerfile ├── README.md ├── default.conf └── default_ssl.conf ├── run_pylint.sh └── screenshots ├── 3d_view.gif └── plot_view.png /.env: -------------------------------------------------------------------------------- 1 | # DOMAIN such as example.com or local development 192.168.1.2 2 | DOMAIN=review.px4.io 3 | PORT=5006 4 | EMAIL= 5 | CERT_PATH=./data/certbot 6 | USE_PROXY="True" 7 | # uncomment this for local development 8 | # BOKEH_ALLOW_WS_ORIGIN=192.168.1.2:5006 9 | 10 | # Nginx config to use default.conf or default_ssl.conf 11 | # Please modify the file in nginx/default.conf or nginx/default_ssl.conf for your use cases 12 | NGINX_CONF=default.conf -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Run Tests 2 | 3 | on: 4 | push: 5 | branches: 6 | - 'main' 7 | pull_request: 8 | branches: 9 | - '*' 10 | 11 | jobs: 12 | build: 13 | runs-on: ubuntu-latest 14 | strategy: 15 | fail-fast: false # don't cancel if a job from the matrix fails 16 | matrix: 17 | python-version: ["3.10", "3.11", "3.12", "3.13"] 18 | 19 | steps: 20 | - uses: actions/checkout@v2 21 | with: 22 | submodules: 'recursive' 23 | - name: Set up Python ${{ matrix.python-version }} 24 | uses: actions/setup-python@v2 25 | with: 26 | python-version: ${{ matrix.python-version }} 27 | - name: Install Dependencies 28 | run: | 29 | sudo apt install -y sqlite3 libfftw3-bin libfftw3-dev 30 | pip install -r app/requirements.txt 31 | - name : Running Tests 32 | run: | 33 | ./run_pylint.sh 34 | 35 | -------------------------------------------------------------------------------- /.github/workflows/test_docker_build.yml: -------------------------------------------------------------------------------- 1 | name: Run Docker Build Tests 2 | 3 | on: 4 | push: 5 | branches: 6 | - 'main' 7 | pull_request: 8 | branches: 9 | - '*' 10 | 11 | jobs: 12 | build: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: Build the stack 17 | run: docker compose build --no-cache 18 | 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | __pycache__ 3 | *.pyc 4 | 5 | *.sqlite 6 | *.sql 7 | 8 | *sublime-project 9 | *sublime-workspace 10 | 11 | /.ipynb_checkpoints 12 | /app/.ipynb_checkpoints 13 | 14 | /config_user.ini 15 | /app/config_user.ini 16 | 17 | data/img/* 18 | 19 | data/app_data 20 | data/certbot 21 | 22 | /.idea 23 | 24 | app/private_key/private_key.pem 25 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "app/plot_app/libevents"] 2 | path = app/plot_app/libevents 3 | url = https://github.com/mavlink/libevents.git 4 | -------------------------------------------------------------------------------- /.python-version: -------------------------------------------------------------------------------- 1 | 3.7.4 2 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016-2017, PX4 Pro Drone Autopilot 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | * Neither the name of GpsDrivers nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /app/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:noble 2 | 3 | COPY requirements.txt requirements.txt 4 | 5 | RUN apt-get update && \ 6 | apt-get install -y --no-install-recommends apt-utils python3 python3-pip sqlite3 libfftw3-bin python3-setuptools && \ 7 | apt-get install -y --no-install-recommends python3-dev libfftw3-dev git && \ 8 | pip3 install --break-system-packages --no-cache-dir -r requirements.txt && \ 9 | apt-get remove -y python3-dev libfftw3-dev git && \ 10 | apt-get -y autoremove && \ 11 | rm -rf /var/lib/apt/lists/* 12 | 13 | RUN mkdir -p /opt/service/data 14 | COPY [".", "/opt/service/"] 15 | 16 | WORKDIR /opt/service 17 | EXPOSE 5006 18 | CMD ["/opt/service/run.sh"] 19 | 20 | ## USAGE 21 | ## ## ## ## ## ## ## ## ## ## ## ## 22 | ## BUILD docker build -t px4flightreview -f docker/Dockerfile . 23 | ## RUN docker run -d -p 5006:5006 -v //config_user.ini:/opt/service/config_user.ini px4flightreview 24 | -------------------------------------------------------------------------------- /app/README.md: -------------------------------------------------------------------------------- 1 | # Encrypted logs 2 | To be able to handle encrypted logs you need to add/replace the dummy key with your private key in the file 3 | ```bash 4 | flight_review/app/private_key/private_key.pem 5 | ``` 6 | 7 | Once you have the private key there, you should be able to upload encrypted logs and display them using the corresponding private key. -------------------------------------------------------------------------------- /app/backup_db.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python3 2 | 3 | # Script to backup the SQLite DB 4 | 5 | from __future__ import print_function 6 | import sys 7 | import os 8 | import datetime 9 | 10 | # this is needed for the following imports 11 | sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'plot_app')) 12 | from plot_app.config import get_db_filename 13 | 14 | db_filename = get_db_filename() 15 | backup_file = "backups/backup_db_"+ \ 16 | datetime.datetime.now().strftime('%Y_%m_%d-%H_%M') 17 | 18 | if not os.path.exists('backups'): 19 | os.mkdir('backups') 20 | 21 | os.system('sqlite3 '+db_filename+' ".backup '+backup_file+'.sqlite"') 22 | os.system('sqlite3 '+db_filename+' "SELECT * from Logs" >'+backup_file+'.sql') 23 | os.system('sqlite3 '+db_filename+' "SELECT * from Vehicle" >'+backup_file+'_vehicle.sql') 24 | 25 | num_lines = sum(1 for line in open(backup_file+'.sql')) 26 | print('Backed up {} records to {}'.format(num_lines, backup_file+'.sqlite')) 27 | 28 | -------------------------------------------------------------------------------- /app/config_default.ini: -------------------------------------------------------------------------------- 1 | [general] 2 | # web site url = eg. 'http://' + domain_name + '/upload' 3 | domain_name = review.px4.io 4 | # http or https 5 | http_protocol = http 6 | 7 | # path for everything that will be stored on disk (including the database) 8 | storage_path = ../data 9 | 10 | # DB file name (if empty, $storage_path/logs.sqlite is used) 11 | db_filename = 12 | 13 | airframes_url = https://px4-travis.s3.amazonaws.com/Firmware/master/_general/airframes.xml 14 | parameters_url = https://px4-travis.s3.amazonaws.com/Firmware/master/_general/parameters.xml 15 | events_url = https://px4-travis.s3.amazonaws.com/Firmware/master/_general/all_events.json.xz 16 | 17 | # for 3D view, https://cesium.com/ion/ 18 | cesium_api_key = 19 | # https://www.mapbox.com/account/access-tokens 20 | mapbox_api_access_token = 21 | 22 | # maximum number of log files to keep in RAM (LRU cache). This depends on 23 | # available RAM and Log file size. Should be a power of 2. 24 | log_cache_size = 8 25 | 26 | # Encryption key 27 | # Suggested location:../private_key/private_key.pem 28 | ulge_private_key = 29 | 30 | [debug] 31 | print_timing = 0 32 | verbose_output = 0 33 | 34 | [email] 35 | # Will use SSL, port 465 36 | smtpserver = smtp.example.com 37 | #sender = Flight Review 38 | sender = 39 | #user_name = review@px4.io 40 | user_name = 41 | password = 42 | 43 | [email_notifications] 44 | # comma-separated list of email adresses 45 | public_flightreport = 46 | # comma-separated list of email adresses for crashes or unsatisfactory 47 | public_flightreport_bad = 48 | -------------------------------------------------------------------------------- /app/delete_db_entry.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python3 2 | 3 | # Script to remove a single DB entry 4 | 5 | import sqlite3 as lite 6 | import sys 7 | import os 8 | import argparse 9 | 10 | from plot_app.config import get_db_filename 11 | 12 | 13 | parser = argparse.ArgumentParser(description='Remove a DB entry (but not the log file)') 14 | 15 | parser.add_argument('log_id', metavar='log-id', action='store', nargs='+', 16 | help='log id to remove (eg. 8600ac02-cf06-4650-bdd5-7d27ea081852)') 17 | 18 | args = parser.parse_args() 19 | 20 | con = lite.connect(get_db_filename()) 21 | with con: 22 | cur = con.cursor() 23 | for log_id in args.log_id: 24 | print('Removing '+log_id) 25 | cur.execute("DELETE FROM LogsGenerated WHERE Id = ?", (log_id,)) 26 | cur.execute("DELETE FROM Logs WHERE Id = ?", (log_id,)) 27 | num_deleted = cur.rowcount 28 | if num_deleted != 1: 29 | print('Error: not found ({})'.format(num_deleted)) 30 | con.commit() 31 | 32 | con.close() 33 | 34 | -------------------------------------------------------------------------------- /app/generate_overview_img.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python3 2 | 3 | import os 4 | import sys 5 | 6 | import sqlite3 7 | 8 | # this is needed for the following imports 9 | sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'plot_app')) 10 | from plot_app.overview_generator import generate_overview_img_from_id 11 | from plot_app.config import get_db_filename 12 | 13 | # get the logs (but only the public ones) 14 | con = sqlite3.connect(get_db_filename(), detect_types=sqlite3.PARSE_DECLTYPES) 15 | cur = con.cursor() 16 | cur.execute('SELECT Id FROM Logs WHERE Public = 1 ORDER BY Date DESC') 17 | db_tuples = cur.fetchall() 18 | 19 | for db_row in db_tuples: 20 | log_id=db_row[0] 21 | generate_overview_img_from_id(log_id) 22 | 23 | cur.close() 24 | con.close() 25 | 26 | -------------------------------------------------------------------------------- /app/notebook_helper.py: -------------------------------------------------------------------------------- 1 | 2 | def print_ulog_info(ulog): 3 | print('System: {:}'.format(ulog.msg_info_dict['sys_name'])) 4 | if 'ver_hw' in ulog.msg_info_dict: 5 | print('Hardware: {:}'.format(ulog.msg_info_dict['ver_hw'])) 6 | if 'ver_sw' in ulog.msg_info_dict: 7 | print('Software Version: {:}'.format(ulog.msg_info_dict['ver_sw'])) 8 | # dropouts 9 | dropout_durations = [ dropout.duration for dropout in ulog.dropouts] 10 | if len(dropout_durations) > 0: 11 | total_duration = sum(dropout_durations) / 1000 12 | if total_duration > 5: 13 | total_duration_str = '{:.0f}'.format(total_duration) 14 | else: 15 | total_duration_str = '{:.2f}'.format(total_duration) 16 | print('Dropouts: {:} ({:} s)'.format( 17 | len(dropout_durations), total_duration_str)) 18 | 19 | # logging duration 20 | m, s = divmod(int((ulog.last_timestamp - ulog.start_timestamp)/1e6), 60) 21 | h, m = divmod(m, 60) 22 | print('Logging duration: {:d}:{:02d}:{:02d}'.format( h, m, s)) 23 | -------------------------------------------------------------------------------- /app/plot_app/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/__init__.py -------------------------------------------------------------------------------- /app/plot_app/colors.py: -------------------------------------------------------------------------------- 1 | """ color helper functions """ 2 | 3 | #pylint: disable=invalid-name 4 | 5 | import colorsys 6 | 7 | def get_N_colors(N, s=0.8, v=0.9): 8 | """ get N distinct colors as a list of hex strings """ 9 | HSV_tuples = [(x*1.0/N, s, v) for x in range(N)] 10 | hex_out = [] 11 | for rgb in HSV_tuples: 12 | rgb = map(lambda x: int(x*255), colorsys.hsv_to_rgb(*rgb)) 13 | hex_out.append("#"+"".join(map(lambda x: format(x, '02x'), rgb))) 14 | return hex_out 15 | 16 | def HTML_color_to_RGB(html_color): 17 | """ convert a HTML string color (eg. '#4422aa') into an RGB list (range 0-255) 18 | """ 19 | if html_color[0] == '#': html_color = html_color[1:] 20 | r, g, b = html_color[:2], html_color[2:4], html_color[4:] 21 | return [int(n, 16) for n in (r, g, b)] 22 | 23 | -------------------------------------------------------------------------------- /app/plot_app/config_tables.py: -------------------------------------------------------------------------------- 1 | """ configuration tables """ 2 | 3 | #pylint: disable=invalid-name 4 | 5 | flight_modes_table = { 6 | 0: ('Manual', '#cc0000'), # red 7 | 1: ('Altitude', '#eecc00'), # yellow 8 | 2: ('Position', '#00cc33'), # green 9 | 6: ('Position (Slow)', '#00cc33'), # green 10 | 10: ('Acro', '#66cc00'), # olive 11 | 14: ('Offboard', '#00cccc'), # light blue 12 | 15: ('Stabilized', '#0033cc'), # dark blue 13 | 14 | # all AUTO-modes use the same color 15 | 3: ('Mission', '#6600cc'), # purple 16 | 4: ('Loiter', '#6600cc'), # purple 17 | 5: ('Return to Land', '#6600cc'), # purple 18 | 12: ('Descend', '#6600cc'), # purple 19 | 13: ('Terminate', '#6600cc'), # purple 20 | 17: ('Takeoff', '#6600cc'), # purple 21 | 18: ('Land', '#6600cc'), # purple 22 | 19: ('Follow Target', '#6600cc'), # purple 23 | 20: ('Precision Land', '#6600cc'), # purple 24 | 21: ('Orbit', '#6600cc'), # purple 25 | 22: ('VTOL Takeoff', '#6600cc'), # purple 26 | } 27 | 28 | vtol_modes_table = { 29 | 1: ('Transition', '#cc0000'), # red 30 | 2: ('Fixed-Wing', '#eecc00'), # yellow 31 | 3: ('Multicopter', '#0033cc'), # dark blue 32 | } 33 | 34 | error_labels_table = { 35 | # the labels (values) have to be capitalized! 36 | # 'validate_error_labels_and_get_ids' will return an error otherwise 37 | 1: 'Other', 38 | 2: 'Vibration', 39 | 3: 'Airframe-design', 40 | 4: 'Sensor-error', 41 | 5: 'Component-failure', 42 | 6: 'Software', 43 | 7: 'Human-error', 44 | 8: 'External-conditions' 45 | # Note: when adding new labels, always increase the id, never re-use a lower value 46 | } 47 | 48 | -------------------------------------------------------------------------------- /app/plot_app/events.py: -------------------------------------------------------------------------------- 1 | """ Event parsing """ 2 | import json 3 | import lzma 4 | from typing import Optional, Any, List, Tuple 5 | 6 | from helper import download_file_maybe 7 | from config import get_events_url, get_events_filename 8 | from pyulog import ULog 9 | from pyulog.px4_events import PX4Events 10 | 11 | # pylint: disable=global-statement 12 | __event_parser: PX4Events = None # Keep the parser to cache the default event definitions 13 | 14 | 15 | def get_logged_events(ulog: ULog) -> List[Tuple[int, str, str]]: 16 | """ 17 | Get the events as list of messages 18 | :return: list of (timestamp, log level str, message) tuples 19 | """ 20 | 21 | def get_default_json_definitions(already_has_default_parser: bool) -> Optional[Any]: 22 | """ Retrieve the default json event definitions """ 23 | 24 | events_json_xz = get_events_filename() 25 | # Check for cached file update 26 | downloaded = download_file_maybe(events_json_xz, get_events_url()) 27 | if downloaded == 2 or (downloaded == 1 and not already_has_default_parser): 28 | # Decompress 29 | with lzma.open(events_json_xz, 'rt') as json_file: 30 | return json.load(json_file) 31 | 32 | return None 33 | 34 | global __event_parser 35 | if __event_parser is None: 36 | __event_parser = PX4Events() 37 | __event_parser.set_default_json_definitions_cb(get_default_json_definitions) 38 | 39 | return __event_parser.get_logged_events(ulog) 40 | -------------------------------------------------------------------------------- /app/plot_app/leaflet.py: -------------------------------------------------------------------------------- 1 | """ Data extraction/conversion methods to get the flight path that is passed to 2 | a Leaflet map via jinja arguments """ 3 | 4 | from colors import HTML_color_to_RGB 5 | from config_tables import flight_modes_table 6 | from helper import get_lat_lon_alt_deg 7 | 8 | #pylint: disable=consider-using-enumerate 9 | 10 | def ulog_to_polyline(ulog, flight_mode_changes): 11 | """ extract flight mode colors and position data from the log 12 | :return: tuple(position data list, flight modes) 13 | """ 14 | def rgb_colors(flight_mode): 15 | """ flight mode color from a flight mode """ 16 | if flight_mode not in flight_modes_table: flight_mode = 0 17 | 18 | color_str = flight_modes_table[flight_mode][1] # color in form '#ff00aa' 19 | # increase brightness to match colors with template 20 | rgb = HTML_color_to_RGB(color_str) 21 | for i in range(3): 22 | rgb[i] += 40 23 | if rgb[i] > 255: rgb[i] = 255 24 | 25 | return "#" + "".join(map(lambda x: format(x, '02x'), rgb)) 26 | cur_data = ulog.get_dataset('vehicle_gps_position') 27 | pos_lat, pos_lon, _ = get_lat_lon_alt_deg(ulog, cur_data) 28 | pos_t = cur_data.data['timestamp'] 29 | 30 | if 'fix_type' in cur_data.data: 31 | indices = cur_data.data['fix_type'] > 2 # use only data with a fix 32 | pos_lon = pos_lon[indices] 33 | pos_lat = pos_lat[indices] 34 | pos_t = pos_t[indices] 35 | 36 | pos_datas = [] 37 | flight_modes = [] 38 | last_t = 0 39 | minimum_interval_s = 0.1 40 | current_flight_mode_idx = 0 41 | for i in range(len(pos_lon)): 42 | curr_t = pos_t[i] 43 | if (curr_t - last_t) / 1e6 > minimum_interval_s: 44 | pos_datas.append([float(pos_lat[i]), float(pos_lon[i])]) 45 | last_t = curr_t 46 | while current_flight_mode_idx < len(flight_mode_changes) - 1 and \ 47 | flight_mode_changes[current_flight_mode_idx][0] <= curr_t: 48 | current_flight_mode = flight_mode_changes[current_flight_mode_idx][1] 49 | current_flight_mode_idx += 1 50 | flight_modes.append([rgb_colors(current_flight_mode), i]) 51 | flight_modes.append(['', len(pos_lon)]) 52 | return (pos_datas, flight_modes) 53 | -------------------------------------------------------------------------------- /app/plot_app/overview_generator.py: -------------------------------------------------------------------------------- 1 | """ 2 | Module for generating overview map 3 | """ 4 | 5 | import os 6 | #pylint: disable=ungrouped-imports 7 | import matplotlib 8 | matplotlib.use('Agg') 9 | import smopy 10 | import matplotlib.pyplot as plt 11 | 12 | from config import get_log_filepath, get_overview_img_filepath 13 | from helper import load_ulog_file, get_lat_lon_alt_deg 14 | 15 | MAXTILES = 16 16 | def get_zoom(input_box, z=18): 17 | """ 18 | Return acceptable zoom - we take this function from Map to get lover zoom 19 | """ 20 | box_tile = smopy.get_tile_box(input_box, z) 21 | box = smopy.correct_box(box_tile, z) 22 | sx, sy = smopy.get_box_size(box) 23 | if sx * sy >= MAXTILES: 24 | z = get_zoom(input_box, z - 1) 25 | return z 26 | 27 | def generate_overview_img_from_id(log_id): 28 | ''' This function will load file and save overview from/into configured directories 29 | ''' 30 | ulog_file = os.path.join(get_log_filepath(), log_id+'.ulg') 31 | ulog = load_ulog_file(ulog_file) 32 | generate_overview_img(ulog, log_id) 33 | 34 | def generate_overview_img(ulog, log_id): 35 | ''' This funciton will generate overwie for loaded ULog data 36 | ''' 37 | output_filename = os.path.join(get_overview_img_filepath(), log_id+'.png') 38 | 39 | if os.path.exists(output_filename): 40 | return 41 | 42 | try: 43 | cur_dataset = ulog.get_dataset('vehicle_gps_position') 44 | indices = cur_dataset.data['fix_type'] > 2 # use only data with a fix 45 | lat, lon, _ = get_lat_lon_alt_deg(ulog, cur_dataset) 46 | lat = lat[indices] 47 | lon = lon[indices] 48 | 49 | min_lat = min(lat) 50 | max_lat = max(lat) 51 | 52 | min_lon = min(lon) 53 | max_lon = max(lon) 54 | 55 | z = max(get_zoom((min_lat, min_lon, max_lat, max_lon)) - 2, 0) 56 | 57 | render_map = smopy.Map((min_lat, min_lon, max_lat, max_lon), z=z) 58 | fig, axes = plt.subplots(nrows=1, ncols=1) 59 | render_map.show_mpl(figsize=(8, 6), ax=axes) 60 | 61 | x, y = render_map.to_pixels(lat, lon) 62 | axes.plot(x, y, 'r') 63 | 64 | axes.set_axis_off() 65 | plt.savefig(output_filename, bbox_inches='tight') 66 | plt.close(fig) 67 | 68 | print('Saving overview file '+ output_filename) 69 | 70 | except: 71 | # Ignore. Eg. if topic not found 72 | print('Error generating overview file: '+ output_filename+' - No GPS?') 73 | 74 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Images/bing_maps_credit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Images/bing_maps_credit.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Images/cesium_credit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Images/cesium_credit.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Images/google_earth_credit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Images/google_earth_credit.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Images/ion-credit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Images/ion-credit.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/LensFlare/DirtMask.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/LensFlare/DirtMask.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/LensFlare/StarBurst.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/LensFlare/StarBurst.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | NE2_HR_LC_SR_W_DR_recolored.tif 4 | 5 | EPSG:4326 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/airfield.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/airfield.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/airport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/airport.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/alcohol-shop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/alcohol-shop.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/america-football.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/america-football.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/art-gallery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/art-gallery.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/bakery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/bakery.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/bank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/bank.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/bar.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/baseball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/baseball.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/basketball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/basketball.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/beer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/beer.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/bicycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/bicycle.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/building.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/building.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/bus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/bus.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/cafe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/cafe.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/camera.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/campsite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/campsite.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/car.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/car.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/cemetery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/cemetery.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/cesium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/cesium.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/chemist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/chemist.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/cinema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/cinema.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/circle-stroked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/circle-stroked.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/circle.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/city.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/city.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/clothing-store.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/clothing-store.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/college.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/college.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/commercial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/commercial.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/cricket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/cricket.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/cross.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/dam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/dam.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/danger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/danger.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/disability.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/disability.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/dog-park.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/dog-park.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/embassy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/embassy.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/emergency-telephone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/emergency-telephone.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/entrance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/entrance.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/farm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/farm.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/fast-food.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/fast-food.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/ferry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/ferry.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/fire-station.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/fire-station.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/fuel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/fuel.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/garden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/garden.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/gift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/gift.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/golf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/golf.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/grocery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/grocery.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/hairdresser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/hairdresser.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/harbor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/harbor.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/heart.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/heliport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/heliport.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/hospital.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/hospital.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/ice-cream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/ice-cream.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/industrial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/industrial.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/land-use.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/land-use.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/laundry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/laundry.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/library.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/library.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/lighthouse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/lighthouse.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/lodging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/lodging.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/logging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/logging.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/london-underground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/london-underground.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/marker-stroked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/marker-stroked.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/marker.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/minefield.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/minefield.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/mobilephone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/mobilephone.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/monument.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/monument.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/museum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/museum.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/music.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/oil-well.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/oil-well.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/park.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/park.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/park2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/park2.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/parking-garage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/parking-garage.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/parking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/parking.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/pharmacy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/pharmacy.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/pitch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/pitch.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/place-of-worship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/place-of-worship.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/playground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/playground.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/police.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/police.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/polling-place.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/polling-place.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/post.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/prison.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/prison.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/rail-above.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/rail-above.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/rail-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/rail-light.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/rail-metro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/rail-metro.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/rail-underground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/rail-underground.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/rail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/rail.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/religious-christian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/religious-christian.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/religious-jewish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/religious-jewish.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/religious-muslim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/religious-muslim.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/restaurant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/restaurant.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/roadblock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/roadblock.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/rocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/rocket.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/school.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/school.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/scooter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/scooter.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/shop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/shop.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/skiing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/skiing.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/slaughterhouse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/slaughterhouse.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/soccer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/soccer.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/square-stroked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/square-stroked.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/square.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/star-stroked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/star-stroked.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/star.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/suitcase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/suitcase.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/swimming.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/swimming.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/telephone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/telephone.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/tennis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/tennis.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/theatre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/theatre.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/toilets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/toilets.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/town-hall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/town-hall.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/town.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/town.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/triangle-stroked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/triangle-stroked.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/triangle.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/village.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/village.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/warehouse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/warehouse.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/waste-basket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/waste-basket.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/water.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/wetland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/wetland.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/zoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/maki/zoo.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/moonSmall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/moonSmall.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/pin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/waterNormals.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/waterNormals.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Assets/Textures/waterNormalsSmall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/waterNormalsSmall.jpg -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/package.json: -------------------------------------------------------------------------------- 1 | {"type":"commonjs"} -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/ThirdParty/basis_transcoder.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/ThirdParty/basis_transcoder.wasm -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/ThirdParty/draco_decoder.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/ThirdParty/draco_decoder.wasm -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Animation/lighter.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/Animation/lighter.css */ 2 | .cesium-lighter .cesium-animation-themeNormal { 3 | color: #e5f2fe; 4 | } 5 | .cesium-lighter .cesium-animation-themeHover { 6 | color: #abd6ff; 7 | } 8 | .cesium-lighter .cesium-animation-themeSelect { 9 | color: #e5f2fe; 10 | } 11 | .cesium-lighter .cesium-animation-themeDisabled { 12 | color: #efefef; 13 | } 14 | .cesium-lighter .cesium-animation-themeKnob { 15 | color: #e1e2e3; 16 | } 17 | .cesium-lighter .cesium-animation-themePointer { 18 | color: #fa5; 19 | } 20 | .cesium-lighter .cesium-animation-themeSwoosh { 21 | color: #ace; 22 | } 23 | .cesium-lighter .cesium-animation-themeSwooshHover { 24 | color: #bdf; 25 | } 26 | .cesium-lighter .cesium-animation-svgText { 27 | fill: #111; 28 | } 29 | .cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonPath { 30 | fill: #111; 31 | } 32 | .cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonMain { 33 | stroke: #759dc0; 34 | } 35 | .cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonGlow { 36 | fill: #ffaa2a; 37 | } 38 | .cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonMain { 39 | stroke: #ea0; 40 | } 41 | .cesium-lighter .cesium-animation-rectButton:hover .cesium-animation-buttonMain { 42 | stroke: #759dc0; 43 | } 44 | .cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { 45 | fill: #fff; 46 | } 47 | .cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { 48 | stroke: #ea0; 49 | } 50 | .cesium-lighter .cesium-animation-rectButton:active .cesium-animation-buttonMain { 51 | fill: #abd6ff; 52 | } 53 | .cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonMain { 54 | stroke: #d3d3d3; 55 | } 56 | .cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonPath { 57 | fill: #818181; 58 | } 59 | .cesium-lighter .cesium-animation-shuttleRingBack { 60 | fill: #fafafa; 61 | fill-opacity: 1; 62 | stroke: #aeaeae; 63 | stroke-width: 1.2; 64 | } 65 | .cesium-lighter .cesium-animation-shuttleRingSwoosh line { 66 | stroke: #8ac; 67 | } 68 | .cesium-lighter .cesium-animation-knobOuter { 69 | stroke: #a5a5a5; 70 | } 71 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/BaseLayerPicker/BaseLayerPicker.css */ 2 | .cesium-baseLayerPicker-selected { 3 | position: absolute; 4 | top: 0; 5 | left: 0; 6 | width: 100%; 7 | height: 100%; 8 | border: none; 9 | } 10 | .cesium-baseLayerPicker-dropDown { 11 | display: block; 12 | position: absolute; 13 | box-sizing: content-box; 14 | top: auto; 15 | right: 0; 16 | width: 320px; 17 | max-height: 500px; 18 | margin-top: 5px; 19 | background-color: rgba(38, 38, 38, 0.75); 20 | border: 1px solid #444; 21 | padding: 6px; 22 | overflow: auto; 23 | border-radius: 10px; 24 | -moz-user-select: none; 25 | -webkit-user-select: none; 26 | -ms-user-select: none; 27 | user-select: none; 28 | transform: translate(0, -20%); 29 | visibility: hidden; 30 | opacity: 0; 31 | transition: 32 | visibility 0s 0.2s, 33 | opacity 0.2s ease-in, 34 | transform 0.2s ease-in; 35 | } 36 | .cesium-baseLayerPicker-dropDown-visible { 37 | transform: translate(0, 0); 38 | visibility: visible; 39 | opacity: 1; 40 | transition: opacity 0.2s ease-out, transform 0.2s ease-out; 41 | } 42 | .cesium-baseLayerPicker-sectionTitle { 43 | display: block; 44 | font-family: sans-serif; 45 | font-size: 16pt; 46 | text-align: left; 47 | color: #edffff; 48 | margin-bottom: 4px; 49 | } 50 | .cesium-baseLayerPicker-choices { 51 | margin-bottom: 5px; 52 | } 53 | .cesium-baseLayerPicker-categoryTitle { 54 | color: #edffff; 55 | font-size: 11pt; 56 | } 57 | .cesium-baseLayerPicker-choices { 58 | display: block; 59 | border: 1px solid #888; 60 | border-radius: 5px; 61 | padding: 5px 0; 62 | } 63 | .cesium-baseLayerPicker-item { 64 | display: inline-block; 65 | vertical-align: top; 66 | margin: 2px 5px; 67 | width: 64px; 68 | text-align: center; 69 | cursor: pointer; 70 | } 71 | .cesium-baseLayerPicker-itemLabel { 72 | display: block; 73 | font-family: sans-serif; 74 | font-size: 8pt; 75 | text-align: center; 76 | vertical-align: middle; 77 | color: #edffff; 78 | cursor: pointer; 79 | word-wrap: break-word; 80 | } 81 | .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel, 82 | .cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel { 83 | text-decoration: underline; 84 | } 85 | .cesium-baseLayerPicker-itemIcon { 86 | display: inline-block; 87 | position: relative; 88 | width: inherit; 89 | height: auto; 90 | background-size: 100% 100%; 91 | border: solid 1px #444; 92 | border-radius: 9px; 93 | color: #edffff; 94 | margin: 0; 95 | padding: 0; 96 | cursor: pointer; 97 | box-sizing: border-box; 98 | } 99 | .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { 100 | border-color: #fff; 101 | box-shadow: 0 0 8px #fff, 0 0 8px #fff; 102 | } 103 | .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { 104 | color: rgb(189, 236, 248); 105 | } 106 | .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { 107 | border: double 4px rgb(189, 236, 248); 108 | } 109 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/BaseLayerPicker/lighter.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/BaseLayerPicker/lighter.css */ 2 | .cesium-lighter .cesium-baseLayerPicker-itemIcon { 3 | border-color: #759dc0; 4 | } 5 | .cesium-lighter .cesium-baseLayerPicker-dropDown { 6 | background-color: rgba(240, 240, 240, 0.75); 7 | } 8 | .cesium-lighter .cesium-baseLayerPicker-sectionTitle { 9 | color: black; 10 | } 11 | .cesium-lighter .cesium-baseLayerPicker-itemLabel { 12 | color: black; 13 | } 14 | .cesium-lighter .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { 15 | border-color: #000; 16 | } 17 | .cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { 18 | color: rgb(0, 61, 168); 19 | } 20 | .cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { 21 | border: double 4px rgb(0, 61, 168); 22 | } 23 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/Cesium3DTilesInspector/Cesium3DTilesInspector.css */ 2 | ul.cesium-cesiumInspector-statistics { 3 | margin: 0; 4 | padding-top: 3px; 5 | padding-bottom: 3px; 6 | } 7 | ul.cesium-cesiumInspector-statistics + ul.cesium-cesiumInspector-statistics { 8 | border-top: 1px solid #aaa; 9 | } 10 | .cesium-cesiumInspector-slider { 11 | margin-top: 5px; 12 | } 13 | .cesium-cesiumInspector-slider input[type=number] { 14 | text-align: left; 15 | background-color: #222; 16 | outline: none; 17 | border: 1px solid #444; 18 | color: #edffff; 19 | width: 100px; 20 | border-radius: 3px; 21 | padding: 1px; 22 | margin-left: 10px; 23 | cursor: auto; 24 | } 25 | .cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button, 26 | .cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button { 27 | -webkit-appearance: none; 28 | margin: 0; 29 | } 30 | .cesium-cesiumInspector-slider input[type=range] { 31 | margin-left: 5px; 32 | vertical-align: middle; 33 | } 34 | .cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor { 35 | display: none; 36 | } 37 | .cesium-cesiumInspector-styleEditor { 38 | padding: 10px; 39 | border-radius: 5px; 40 | background: rgba(48, 51, 54, 0.8); 41 | border: 1px solid #444; 42 | } 43 | .cesium-cesiumInspector-styleEditor textarea { 44 | width: 100%; 45 | height: 300px; 46 | background: transparent; 47 | color: #edffff; 48 | border: none; 49 | padding: 0; 50 | white-space: pre; 51 | overflow-wrap: normal; 52 | overflow-x: auto; 53 | } 54 | .cesium-3DTilesInspector { 55 | width: 300px; 56 | pointer-events: all; 57 | } 58 | .cesium-3DTilesInspector-statistics { 59 | font-size: 11px; 60 | } 61 | .cesium-3DTilesInspector-disabledElementsInfo { 62 | margin: 5px 0 0 0; 63 | padding: 0 0 0 20px; 64 | color: #eed202; 65 | } 66 | .cesium-3DTilesInspector div, 67 | .cesium-3DTilesInspector input[type=range] { 68 | width: 100%; 69 | box-sizing: border-box; 70 | } 71 | .cesium-cesiumInspector-error { 72 | color: #ff9e9e; 73 | overflow: auto; 74 | } 75 | .cesium-3DTilesInspector .cesium-cesiumInspector-section { 76 | margin-top: 3px; 77 | } 78 | .cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { 79 | border-top: 1px solid white; 80 | } 81 | input.cesium-cesiumInspector-url { 82 | overflow: hidden; 83 | white-space: nowrap; 84 | overflow-x: scroll; 85 | background-color: transparent; 86 | color: white; 87 | outline: none; 88 | border: none; 89 | height: 1em; 90 | width: 100%; 91 | } 92 | .cesium-cesiumInspector .field-group { 93 | display: table; 94 | } 95 | .cesium-cesiumInspector .field-group > label { 96 | display: table-cell; 97 | font-weight: bold; 98 | } 99 | .cesium-cesiumInspector .field-group > .field { 100 | display: table-cell; 101 | width: 100%; 102 | } 103 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumWidget/CesiumWidget.css: -------------------------------------------------------------------------------- 1 | .cesium-widget { 2 | font-family: sans-serif; 3 | font-size: 16px; 4 | overflow: hidden; 5 | display: block; 6 | position: relative; 7 | top: 0; 8 | left: 0; 9 | width: 100%; 10 | height: 100%; 11 | } 12 | 13 | .cesium-widget, 14 | .cesium-widget canvas { 15 | width: 100%; 16 | height: 100%; 17 | touch-action: none; 18 | } 19 | 20 | .cesium-widget-credits { 21 | display: block; 22 | position: absolute; 23 | bottom: 0; 24 | left: 0; 25 | color: #fff; 26 | font-size: 10px; 27 | text-shadow: 0px 0px 2px #000000; 28 | padding-right: 5px; 29 | } 30 | 31 | .cesium-widget-errorPanel { 32 | position: absolute; 33 | top: 0; 34 | right: 0; 35 | bottom: 0; 36 | left: 0; 37 | text-align: center; 38 | background: rgba(0, 0, 0, 0.7); 39 | z-index: 99999; 40 | } 41 | 42 | .cesium-widget-errorPanel:before { 43 | display: inline-block; 44 | vertical-align: middle; 45 | height: 100%; 46 | content: ""; 47 | } 48 | 49 | .cesium-widget-errorPanel-content { 50 | width: 75%; 51 | max-width: 500px; 52 | display: inline-block; 53 | text-align: left; 54 | vertical-align: middle; 55 | border: 1px solid #510c00; 56 | border-radius: 7px; 57 | background-color: #f0d9d5; 58 | font-size: 14px; 59 | color: #510c00; 60 | } 61 | 62 | .cesium-widget-errorPanel-content.expanded { 63 | max-width: 75%; 64 | } 65 | 66 | .cesium-widget-errorPanel-header { 67 | font-size: 18px; 68 | font-family: "Open Sans", Verdana, Geneva, sans-serif; 69 | background: #d69d93; 70 | border-bottom: 2px solid #510c00; 71 | padding-bottom: 10px; 72 | border-radius: 3px 3px 0 0; 73 | padding: 15px; 74 | } 75 | 76 | .cesium-widget-errorPanel-scroll { 77 | overflow: auto; 78 | font-family: "Open Sans", Verdana, Geneva, sans-serif; 79 | white-space: pre-wrap; 80 | padding: 0 15px; 81 | margin: 10px 0 20px 0; 82 | } 83 | 84 | .cesium-widget-errorPanel-buttonPanel { 85 | padding: 0 15px; 86 | margin: 10px 0 20px 0; 87 | text-align: right; 88 | } 89 | 90 | .cesium-widget-errorPanel-buttonPanel button { 91 | border-color: #510c00; 92 | background: #d69d93; 93 | color: #202020; 94 | margin: 0; 95 | } 96 | .cesium-widget-errorPanel-buttonPanel button:focus { 97 | border-color: #510c00; 98 | background: #f0d9d5; 99 | color: #510c00; 100 | } 101 | .cesium-widget-errorPanel-buttonPanel button:hover { 102 | border-color: #510c00; 103 | background: #f0d9d5; 104 | color: #510c00; 105 | } 106 | .cesium-widget-errorPanel-buttonPanel button:active { 107 | border-color: #510c00; 108 | background: #b17b72; 109 | color: #510c00; 110 | } 111 | 112 | .cesium-widget-errorPanel-more-details { 113 | text-decoration: underline; 114 | cursor: pointer; 115 | } 116 | 117 | .cesium-widget-errorPanel-more-details:hover { 118 | color: #2b0700; 119 | } 120 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumWidget/lighter.css: -------------------------------------------------------------------------------- 1 | .cesium-lighter .cesium-widget-errorPanel { 2 | background: rgba(255, 255, 255, 0.7); 3 | } 4 | 5 | .cesium-lighter .cesium-widget-errorPanel-content { 6 | border: 1px solid #526f82; 7 | border-radius: 7px; 8 | background-color: white; 9 | color: black; 10 | } 11 | 12 | .cesium-lighter .cesium-widget-errorPanel-header { 13 | color: #b87d00; 14 | } 15 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/FullscreenButton/FullscreenButton.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/FullscreenButton/FullscreenButton.css */ 2 | .cesium-button.cesium-fullscreenButton { 3 | display: block; 4 | width: 100%; 5 | height: 100%; 6 | margin: 0; 7 | border-radius: 0; 8 | } 9 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Geocoder/Geocoder.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/Geocoder/Geocoder.css */ 2 | .cesium-viewer-geocoderContainer .cesium-geocoder-input { 3 | border: solid 1px #444; 4 | background-color: rgba(40, 40, 40, 0.7); 5 | color: white; 6 | display: inline-block; 7 | vertical-align: middle; 8 | width: 0; 9 | height: 32px; 10 | margin: 0; 11 | padding: 0 32px 0 0; 12 | border-radius: 0; 13 | box-sizing: border-box; 14 | transition: width ease-in-out 0.25s, background-color 0.2s ease-in-out; 15 | -webkit-appearance: none; 16 | } 17 | .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { 18 | border-color: #aef; 19 | box-shadow: 0 0 8px #fff; 20 | } 21 | .cesium-viewer-geocoderContainer .cesium-geocoder-input:focus { 22 | border-color: #ea4; 23 | background-color: rgba(15, 15, 15, 0.9); 24 | box-shadow: none; 25 | outline: none; 26 | } 27 | .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input, 28 | .cesium-viewer-geocoderContainer .cesium-geocoder-input:focus, 29 | .cesium-viewer-geocoderContainer .cesium-geocoder-input-wide { 30 | padding-left: 4px; 31 | width: 250px; 32 | } 33 | .cesium-viewer-geocoderContainer .search-results { 34 | position: absolute; 35 | background-color: #000; 36 | color: #eee; 37 | overflow-y: auto; 38 | opacity: 0.8; 39 | width: 100%; 40 | } 41 | .cesium-viewer-geocoderContainer .search-results ul { 42 | list-style-type: none; 43 | margin: 0; 44 | padding: 0; 45 | } 46 | .cesium-viewer-geocoderContainer .search-results ul li { 47 | font-size: 14px; 48 | padding: 3px 10px; 49 | } 50 | .cesium-viewer-geocoderContainer .search-results ul li:hover { 51 | cursor: pointer; 52 | } 53 | .cesium-viewer-geocoderContainer .search-results ul li.active { 54 | background: #48b; 55 | } 56 | .cesium-geocoder-searchButton { 57 | background-color: #303336; 58 | display: inline-block; 59 | position: absolute; 60 | cursor: pointer; 61 | width: 32px; 62 | top: 1px; 63 | right: 1px; 64 | height: 30px; 65 | vertical-align: middle; 66 | fill: #edffff; 67 | } 68 | .cesium-geocoder-searchButton:hover { 69 | background-color: #48b; 70 | } 71 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Geocoder/lighter.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/Geocoder/lighter.css */ 2 | .cesium-lighter .cesium-geocoder-input { 3 | border: solid 1px #759dc0; 4 | background-color: rgba(240, 240, 240, 0.9); 5 | color: black; 6 | } 7 | .cesium-lighter .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { 8 | border-color: #aef; 9 | box-shadow: 0 0 8px #fff; 10 | } 11 | .cesium-lighter .cesium-geocoder-searchButton { 12 | background-color: #e2f0ff; 13 | fill: #111; 14 | } 15 | .cesium-lighter .cesium-geocoder-searchButton:hover { 16 | background-color: #a6d2ff; 17 | } 18 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css */ 2 | .cesium-viewer-i3s-explorer ul { 3 | list-style-type: none; 4 | } 5 | .cesium-viewer-i3s-explorer .layersList { 6 | padding: 0; 7 | } 8 | .cesium-viewer-i3s-explorer input { 9 | margin: 0 3px 0 0; 10 | } 11 | .cesium-viewer-i3s-explorer .expandItem { 12 | cursor: pointer; 13 | user-select: none; 14 | width: 20px; 15 | } 16 | .cesium-viewer-i3s-explorer .nested, 17 | .cesium-viewer-i3s-explorer #bsl-wrapper { 18 | display: none; 19 | } 20 | .cesium-viewer-i3s-explorer .active { 21 | display: block; 22 | } 23 | .cesium-viewer-i3s-explorer .li-wrapper { 24 | display: flex; 25 | flex-direction: row; 26 | align-content: center; 27 | } 28 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/bingAerial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/bingAerial.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/bingRoads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/bingRoads.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/blueMarble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/blueMarble.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/earthAtNight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/earthAtNight.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapboxStreets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapboxStreets.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/naturalEarthII.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/naturalEarthII.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/openStreetMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/openStreetMap.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/sentinel-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/sentinel-2.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stamenToner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stamenToner.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/TerrainProviders/Ellipsoid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/TerrainProviders/Ellipsoid.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/TimelineIcons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/TimelineIcons.png -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Images/info-loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/info-loading.gif -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/InfoBox/InfoBox.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/InfoBox/InfoBox.css */ 2 | .cesium-infoBox { 3 | display: block; 4 | position: absolute; 5 | top: 50px; 6 | right: 0; 7 | width: 40%; 8 | max-width: 480px; 9 | background: rgba(38, 38, 38, 0.95); 10 | color: #edffff; 11 | border: 1px solid #444; 12 | border-right: none; 13 | border-top-left-radius: 7px; 14 | border-bottom-left-radius: 7px; 15 | box-shadow: 0 0 10px 1px #000; 16 | transform: translate(100%, 0); 17 | visibility: hidden; 18 | opacity: 0; 19 | transition: 20 | visibility 0s 0.2s, 21 | opacity 0.2s ease-in, 22 | transform 0.2s ease-in; 23 | } 24 | .cesium-infoBox-visible { 25 | transform: translate(0, 0); 26 | visibility: visible; 27 | opacity: 1; 28 | transition: opacity 0.2s ease-out, transform 0.2s ease-out; 29 | } 30 | .cesium-infoBox-title { 31 | display: block; 32 | height: 20px; 33 | padding: 5px 30px 5px 25px; 34 | background: rgba(84, 84, 84, 1); 35 | border-top-left-radius: 7px; 36 | text-align: center; 37 | text-overflow: ellipsis; 38 | white-space: nowrap; 39 | overflow: hidden; 40 | box-sizing: content-box; 41 | } 42 | .cesium-infoBox-bodyless .cesium-infoBox-title { 43 | border-bottom-left-radius: 7px; 44 | } 45 | button.cesium-infoBox-camera { 46 | display: block; 47 | position: absolute; 48 | top: 4px; 49 | left: 4px; 50 | width: 22px; 51 | height: 22px; 52 | background: transparent; 53 | border-color: transparent; 54 | border-radius: 3px; 55 | padding: 0 5px; 56 | margin: 0; 57 | } 58 | button.cesium-infoBox-close { 59 | display: block; 60 | position: absolute; 61 | top: 5px; 62 | right: 5px; 63 | height: 20px; 64 | background: transparent; 65 | border: none; 66 | border-radius: 2px; 67 | font-weight: bold; 68 | font-size: 16px; 69 | padding: 0 5px; 70 | margin: 0; 71 | color: #edffff; 72 | } 73 | button.cesium-infoBox-close:focus { 74 | background: rgba(238, 136, 0, 0.44); 75 | outline: none; 76 | } 77 | button.cesium-infoBox-close:hover { 78 | background: #888; 79 | color: #000; 80 | } 81 | button.cesium-infoBox-close:active { 82 | background: #a00; 83 | color: #000; 84 | } 85 | .cesium-infoBox-bodyless .cesium-infoBox-iframe { 86 | display: none; 87 | } 88 | .cesium-infoBox-iframe { 89 | border: none; 90 | width: 100%; 91 | width: calc(100% - 2px); 92 | } 93 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/NavigationHelpButton/NavigationHelpButton.css */ 2 | .cesium-navigationHelpButton-wrapper { 3 | position: relative; 4 | display: inline-block; 5 | } 6 | .cesium-navigation-help { 7 | visibility: hidden; 8 | position: absolute; 9 | top: 38px; 10 | right: 2px; 11 | width: 250px; 12 | border-radius: 10px; 13 | transform: scale(0.01); 14 | transform-origin: 234px -10px; 15 | transition: visibility 0s 0.25s, transform 0.25s ease-in; 16 | } 17 | .cesium-navigation-help-visible { 18 | visibility: visible; 19 | transform: scale(1); 20 | transition: transform 0.25s ease-out; 21 | } 22 | .cesium-navigation-help-instructions { 23 | border: 1px solid #444; 24 | background-color: rgba(38, 38, 38, 0.75); 25 | padding-bottom: 5px; 26 | border-radius: 0 0 10px 10px; 27 | } 28 | .cesium-click-navigation-help { 29 | display: none; 30 | } 31 | .cesium-touch-navigation-help { 32 | display: none; 33 | padding-top: 5px; 34 | } 35 | .cesium-click-navigation-help-visible { 36 | display: block; 37 | } 38 | .cesium-touch-navigation-help-visible { 39 | display: block; 40 | } 41 | .cesium-navigation-help-pan { 42 | color: #66ccff; 43 | font-weight: bold; 44 | } 45 | .cesium-navigation-help-zoom { 46 | color: #65fd00; 47 | font-weight: bold; 48 | } 49 | .cesium-navigation-help-rotate { 50 | color: #ffd800; 51 | font-weight: bold; 52 | } 53 | .cesium-navigation-help-tilt { 54 | color: #d800d8; 55 | font-weight: bold; 56 | } 57 | .cesium-navigation-help-details { 58 | color: #ffffff; 59 | } 60 | .cesium-navigation-button { 61 | color: #fff; 62 | background-color: transparent; 63 | border-bottom: none; 64 | border-top: 1px solid #444; 65 | border-right: 1px solid #444; 66 | margin: 0; 67 | width: 50%; 68 | cursor: pointer; 69 | } 70 | .cesium-navigation-button-icon { 71 | vertical-align: middle; 72 | padding: 5px 1px; 73 | } 74 | .cesium-navigation-button:focus { 75 | outline: none; 76 | } 77 | .cesium-navigation-button-left { 78 | border-radius: 10px 0 0 0; 79 | border-left: 1px solid #444; 80 | } 81 | .cesium-navigation-button-right { 82 | border-radius: 0 10px 0 0; 83 | border-left: none; 84 | } 85 | .cesium-navigation-button-selected { 86 | background-color: rgba(38, 38, 38, 0.75); 87 | } 88 | .cesium-navigation-button-unselected { 89 | background-color: rgba(0, 0, 0, 0.75); 90 | } 91 | .cesium-navigation-button-unselected:hover { 92 | background-color: rgba(76, 76, 76, 0.75); 93 | } 94 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/NavigationHelpButton/lighter.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/NavigationHelpButton/lighter.css */ 2 | .cesium-lighter .cesium-navigation-help-instructions { 3 | border: 1px solid #759dc0; 4 | background-color: rgba(255, 255, 255, 0.9); 5 | } 6 | .cesium-lighter .cesium-navigation-help-pan { 7 | color: #66ccee; 8 | font-weight: bold; 9 | } 10 | .cesium-lighter .cesium-navigation-help-zoom { 11 | color: #65ec00; 12 | font-weight: bold; 13 | } 14 | .cesium-lighter .cesium-navigation-help-rotate { 15 | color: #eec722; 16 | font-weight: bold; 17 | } 18 | .cesium-lighter .cesium-navigation-help-tilt { 19 | color: #d800d8; 20 | font-weight: bold; 21 | } 22 | .cesium-lighter .cesium-navigation-help-details { 23 | color: #222222; 24 | } 25 | .cesium-lighter .cesium-navigation-button { 26 | color: #222222; 27 | border-top: 1px solid #759dc0; 28 | border-right: 1px solid #759dc0; 29 | } 30 | .cesium-lighter .cesium-navigation-button-selected { 31 | background-color: rgba(196, 225, 255, 0.9); 32 | } 33 | .cesium-lighter .cesium-navigation-button-unselected { 34 | background-color: rgba(226, 240, 255, 0.9); 35 | } 36 | .cesium-lighter .cesium-navigation-button-unselected:hover { 37 | background-color: rgba(166, 210, 255, 0.9); 38 | } 39 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/PerformanceWatchdog/PerformanceWatchdog.css */ 2 | .cesium-performance-watchdog-message-area { 3 | position: relative; 4 | background-color: yellow; 5 | color: black; 6 | padding: 10px; 7 | } 8 | .cesium-performance-watchdog-message { 9 | margin-right: 30px; 10 | } 11 | .cesium-performance-watchdog-message-dismiss { 12 | position: absolute; 13 | right: 0; 14 | margin: 0 10px 0 0; 15 | } 16 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/ProjectionPicker/ProjectionPicker.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/ProjectionPicker/ProjectionPicker.css */ 2 | span.cesium-projectionPicker-wrapper { 3 | display: inline-block; 4 | position: relative; 5 | margin: 0 3px; 6 | } 7 | .cesium-projectionPicker-visible { 8 | visibility: visible; 9 | opacity: 1; 10 | transition: opacity 0.25s linear; 11 | } 12 | .cesium-projectionPicker-hidden { 13 | visibility: hidden; 14 | opacity: 0; 15 | transition: visibility 0s 0.25s, opacity 0.25s linear; 16 | } 17 | .cesium-projectionPicker-wrapper .cesium-projectionPicker-none { 18 | display: none; 19 | } 20 | .cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon { 21 | box-sizing: border-box; 22 | padding: 0; 23 | margin: 3px 0; 24 | } 25 | .cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective, 26 | .cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic { 27 | margin: 0 0 3px 0; 28 | } 29 | .cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic { 30 | left: 100%; 31 | } 32 | .cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective { 33 | left: -100%; 34 | } 35 | .cesium-projectionPicker-wrapper .cesium-projectionPicker-selected { 36 | border-color: #2e2; 37 | box-shadow: 0 0 8px #fff, 0 0 8px #fff; 38 | } 39 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/SceneModePicker/SceneModePicker.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/SceneModePicker/SceneModePicker.css */ 2 | span.cesium-sceneModePicker-wrapper { 3 | display: inline-block; 4 | position: relative; 5 | margin: 0 3px; 6 | } 7 | .cesium-sceneModePicker-visible { 8 | visibility: visible; 9 | opacity: 1; 10 | transition: opacity 0.25s linear; 11 | } 12 | .cesium-sceneModePicker-hidden { 13 | visibility: hidden; 14 | opacity: 0; 15 | transition: visibility 0s 0.25s, opacity 0.25s linear; 16 | } 17 | .cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none { 18 | display: none; 19 | } 20 | .cesium-sceneModePicker-slide-svg { 21 | transition: left 2s; 22 | top: 0; 23 | left: 0; 24 | } 25 | .cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon { 26 | box-sizing: border-box; 27 | padding: 0; 28 | margin: 3px 0; 29 | } 30 | .cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D, 31 | .cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView, 32 | .cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D { 33 | margin: 0 0 3px 0; 34 | } 35 | .cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D { 36 | left: 100%; 37 | } 38 | .cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView { 39 | left: 200%; 40 | } 41 | .cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D { 42 | left: -200%; 43 | } 44 | .cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D { 45 | left: -100%; 46 | } 47 | .cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D { 48 | left: -100%; 49 | } 50 | .cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView { 51 | left: 100%; 52 | } 53 | .cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected { 54 | border-color: #2e2; 55 | box-shadow: 0 0 8px #fff, 0 0 8px #fff; 56 | } 57 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/SelectionIndicator/SelectionIndicator.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/SelectionIndicator/SelectionIndicator.css */ 2 | .cesium-selection-wrapper { 3 | position: absolute; 4 | width: 160px; 5 | height: 160px; 6 | pointer-events: none; 7 | visibility: hidden; 8 | opacity: 0; 9 | transition: visibility 0s 0.2s, opacity 0.2s ease-in; 10 | } 11 | .cesium-selection-wrapper-visible { 12 | visibility: visible; 13 | opacity: 1; 14 | transition: opacity 0.2s ease-out; 15 | } 16 | .cesium-selection-wrapper svg { 17 | fill: #2e2; 18 | stroke: #000; 19 | stroke-width: 1.1px; 20 | } 21 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Timeline/lighter.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/Timeline/lighter.css */ 2 | .cesium-lighter .cesium-timeline-bar { 3 | background: 4 | linear-gradient( 5 | to bottom, 6 | #eeeeee 0%, 7 | #ffffff 50%, 8 | #fafafa 100%); 9 | } 10 | .cesium-lighter .cesium-timeline-ticLabel { 11 | color: #000; 12 | } 13 | .cesium-lighter .cesium-timeline-ticMain { 14 | position: absolute; 15 | bottom: 0; 16 | left: 0; 17 | width: 1px; 18 | height: 50%; 19 | background: #000; 20 | } 21 | .cesium-lighter .cesium-timeline-ticSub { 22 | background: #444; 23 | } 24 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/VRButton/VRButton.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/VRButton/VRButton.css */ 2 | .cesium-button.cesium-vrButton { 3 | display: block; 4 | width: 100%; 5 | height: 100%; 6 | margin: 0; 7 | border-radius: 0; 8 | } 9 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/Viewer/Viewer.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/Viewer/Viewer.css */ 2 | .cesium-viewer { 3 | font-family: sans-serif; 4 | font-size: 16px; 5 | overflow: hidden; 6 | display: block; 7 | position: relative; 8 | top: 0; 9 | left: 0; 10 | width: 100%; 11 | height: 100%; 12 | } 13 | .cesium-viewer-cesiumWidgetContainer { 14 | width: 100%; 15 | height: 100%; 16 | } 17 | .cesium-viewer-bottom { 18 | display: block; 19 | position: absolute; 20 | bottom: 0; 21 | left: 0; 22 | padding-right: 5px; 23 | } 24 | .cesium-viewer .cesium-widget-credits { 25 | display: inline; 26 | position: static; 27 | bottom: auto; 28 | left: auto; 29 | padding-right: 0; 30 | color: #ffffff; 31 | font-size: 10px; 32 | text-shadow: 0 0 2px #000000; 33 | } 34 | .cesium-viewer-timelineContainer { 35 | position: absolute; 36 | bottom: 0; 37 | left: 169px; 38 | right: 29px; 39 | height: 27px; 40 | padding: 0; 41 | margin: 0; 42 | overflow: hidden; 43 | font-size: 14px; 44 | } 45 | .cesium-viewer-animationContainer { 46 | position: absolute; 47 | bottom: 0; 48 | left: 0; 49 | padding: 0; 50 | width: 169px; 51 | height: 112px; 52 | } 53 | .cesium-viewer-fullscreenContainer { 54 | position: absolute; 55 | bottom: 0; 56 | right: 0; 57 | padding: 0; 58 | width: 29px; 59 | height: 29px; 60 | overflow: hidden; 61 | } 62 | .cesium-viewer-vrContainer { 63 | position: absolute; 64 | bottom: 0; 65 | right: 0; 66 | padding: 0; 67 | width: 29px; 68 | height: 29px; 69 | overflow: hidden; 70 | } 71 | .cesium-viewer-toolbar { 72 | display: block; 73 | position: absolute; 74 | top: 5px; 75 | right: 5px; 76 | } 77 | .cesium-viewer-cesiumInspectorContainer { 78 | display: block; 79 | position: absolute; 80 | top: 50px; 81 | right: 10px; 82 | } 83 | .cesium-viewer-geocoderContainer { 84 | position: relative; 85 | display: inline-block; 86 | margin: 0 3px; 87 | } 88 | .cesium-viewer-cesium3DTilesInspectorContainer { 89 | display: block; 90 | position: absolute; 91 | top: 50px; 92 | right: 10px; 93 | max-height: calc(100% - 120px); 94 | box-sizing: border-box; 95 | overflow-y: auto; 96 | overflow-x: hidden; 97 | } 98 | .cesium-viewer-voxelInspectorContainer { 99 | display: block; 100 | position: absolute; 101 | top: 50px; 102 | right: 10px; 103 | max-height: calc(100% - 120px); 104 | box-sizing: border-box; 105 | overflow-y: auto; 106 | overflow-x: hidden; 107 | } 108 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/VoxelInspector/VoxelInspector.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/VoxelInspector/VoxelInspector.css */ 2 | .cesium-VoxelInspector { 3 | width: 300px; 4 | pointer-events: all; 5 | } 6 | .cesium-VoxelInspector div, 7 | .cesium-VoxelInspector input[type=range] { 8 | width: 100%; 9 | box-sizing: border-box; 10 | } 11 | .cesium-VoxelInspector .cesium-cesiumInspector-section { 12 | margin-top: 3px; 13 | } 14 | .cesium-VoxelInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { 15 | border-top: 1px solid white; 16 | } 17 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/lighterShared.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/lighterShared.css */ 2 | .cesium-lighter .cesium-button { 3 | color: #111; 4 | fill: #111; 5 | background: #e2f0ff; 6 | border: 1px solid #759dc0; 7 | } 8 | .cesium-lighter .cesium-button:focus { 9 | color: #000; 10 | fill: #000; 11 | border-color: #ea4; 12 | } 13 | .cesium-lighter .cesium-button:hover { 14 | color: #000; 15 | fill: #000; 16 | background: #a6d2ff; 17 | border-color: #aef; 18 | box-shadow: 0 0 8px #777; 19 | } 20 | .cesium-lighter .cesium-button:active { 21 | color: #fff; 22 | fill: #fff; 23 | background: #48b; 24 | border-color: #ea0; 25 | } 26 | .cesium-lighter .cesium-button:disabled, 27 | .cesium-lighter .cesium-button-disabled, 28 | .cesium-lighter .cesium-button-disabled:focus, 29 | .cesium-lighter .cesium-button-disabled:hover, 30 | .cesium-lighter .cesium-button-disabled:active { 31 | background: #ccc; 32 | border-color: #999; 33 | color: #999; 34 | fill: #999; 35 | box-shadow: none; 36 | } 37 | .cesium-lighter .cesium-performanceDisplay { 38 | background-color: #e2f0ff; 39 | border-color: #759dc0; 40 | } 41 | .cesium-lighter .cesium-performanceDisplay-fps { 42 | color: #e52; 43 | } 44 | .cesium-lighter .cesium-performanceDisplay-ms { 45 | color: #ea4; 46 | } 47 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Widgets/shared.css: -------------------------------------------------------------------------------- 1 | /* packages/widgets/Source/shared.css */ 2 | .cesium-svgPath-svg { 3 | position: absolute; 4 | top: 0; 5 | left: 0; 6 | width: 100%; 7 | height: 100%; 8 | overflow: hidden; 9 | } 10 | .cesium-button { 11 | display: inline-block; 12 | position: relative; 13 | background: #303336; 14 | border: 1px solid #444; 15 | color: #edffff; 16 | fill: #edffff; 17 | border-radius: 4px; 18 | padding: 5px 12px; 19 | margin: 2px 3px; 20 | cursor: pointer; 21 | overflow: hidden; 22 | -moz-user-select: none; 23 | -webkit-user-select: none; 24 | -ms-user-select: none; 25 | user-select: none; 26 | } 27 | .cesium-button:focus { 28 | color: #fff; 29 | fill: #fff; 30 | border-color: #ea4; 31 | outline: none; 32 | } 33 | .cesium-button:hover { 34 | color: #fff; 35 | fill: #fff; 36 | background: #48b; 37 | border-color: #aef; 38 | box-shadow: 0 0 8px #fff; 39 | } 40 | .cesium-button:active { 41 | color: #000; 42 | fill: #000; 43 | background: #adf; 44 | border-color: #fff; 45 | box-shadow: 0 0 8px #fff; 46 | } 47 | .cesium-button:disabled, 48 | .cesium-button-disabled, 49 | .cesium-button-disabled:focus, 50 | .cesium-button-disabled:hover, 51 | .cesium-button-disabled:active { 52 | background: #303336; 53 | border-color: #444; 54 | color: #646464; 55 | fill: #646464; 56 | box-shadow: none; 57 | cursor: default; 58 | } 59 | .cesium-button option { 60 | background-color: #000; 61 | color: #eee; 62 | } 63 | .cesium-button option:disabled { 64 | color: #777; 65 | } 66 | .cesium-button input, 67 | .cesium-button label { 68 | cursor: pointer; 69 | } 70 | .cesium-button input { 71 | vertical-align: sub; 72 | } 73 | .cesium-toolbar-button { 74 | box-sizing: border-box; 75 | width: 32px; 76 | height: 32px; 77 | border-radius: 14%; 78 | padding: 0; 79 | vertical-align: middle; 80 | z-index: 0; 81 | } 82 | .cesium-performanceDisplay-defaultContainer { 83 | position: absolute; 84 | top: 50px; 85 | right: 10px; 86 | text-align: right; 87 | } 88 | .cesium-performanceDisplay { 89 | background-color: rgba(40, 40, 40, 0.7); 90 | padding: 7px; 91 | border-radius: 5px; 92 | border: 1px solid #444; 93 | font: bold 12px sans-serif; 94 | } 95 | .cesium-performanceDisplay-fps { 96 | color: #e52; 97 | } 98 | .cesium-performanceDisplay-throttled { 99 | color: #a42; 100 | } 101 | .cesium-performanceDisplay-ms { 102 | color: #de3; 103 | } 104 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/chunk-3EKULFHC.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as c}from"./chunk-AODSXSC5.js";import{b as t}from"./chunk-OYWUGDKS.js";import{e as g}from"./chunk-DRYFJEFT.js";function f(){this.high=c.clone(c.ZERO),this.low=c.clone(c.ZERO)}f.encode=function(n,o){t.typeOf.number("value",n),g(o)||(o={high:0,low:0});let h;return n>=0?(h=Math.floor(n/65536)*65536,o.high=h,o.low=n-h):(h=Math.floor(-n/65536)*65536,o.high=-h,o.low=n+h),o};var e={high:0,low:0};f.fromCartesian=function(n,o){t.typeOf.object("cartesian",n),g(o)||(o=new f);let h=o.high,i=o.low;return f.encode(n.x,e),h.x=e.high,i.x=e.low,f.encode(n.y,e),h.y=e.high,i.y=e.low,f.encode(n.z,e),h.z=e.high,i.z=e.low,o};var m=new f;f.writeElements=function(n,o,h){t.defined("cartesianArray",o),t.typeOf.number("index",h),t.typeOf.number.greaterThanOrEquals("index",h,0),f.fromCartesian(n,m);let i=m.high,w=m.low;o[h]=i.x,o[h+1]=i.y,o[h+2]=i.z,o[h+3]=w.x,o[h+4]=w.y,o[h+5]=w.z};var O=f;export{O as a}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/chunk-3R25OJXK.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{e as f}from"./chunk-DRYFJEFT.js";function c(t){let n,a=t.name,e=t.message;f(a)&&f(e)?n=`${a}: ${e}`:n=t.toString();let o=t.stack;return f(o)&&(n+=` 27 | ${o}`),n}var i=c;function l(t){async function n({data:e}){let o=[],s={id:e.id,result:void 0,error:void 0};self.CESIUM_BASE_URL=e.baseUrl;try{let r=await t(e.parameters,o);s.result=r}catch(r){r instanceof Error?s.error={name:r.name,message:r.message,stack:r.stack}:s.error=r}e.canTransferArrayBuffer||(o.length=0);try{postMessage(s,o)}catch(r){s.result=void 0,s.error=`postMessage failed with error: ${i(r)} 28 | with responseMessage: ${JSON.stringify(s)}`,postMessage(s)}}function a(e){postMessage({id:e.data?.id,error:`postMessage failed with error: ${JSON.stringify(e)}`})}return self.onmessage=n,self.onmessageerror=a,self}var d=l;export{d as a}; 29 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6UMNSGJM.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | var e={NONE:0,TOP:1,ALL:2},t=Object.freeze(e);export{t as a}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/chunk-7GU2ORNB.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{b as t}from"./chunk-Y5B6Y3WD.js";import{a as r}from"./chunk-WHQYJFDH.js";import{a as m}from"./chunk-OYWUGDKS.js";import{e as i}from"./chunk-DRYFJEFT.js";function d(e){if(e=r(e,r.EMPTY_OBJECT),!i(e.geometry))throw new m("options.geometry is required.");this.geometry=e.geometry,this.modelMatrix=t.clone(r(e.modelMatrix,t.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=r(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}var s=d;export{s as a}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/chunk-A2ZU5ON6.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as C}from"./chunk-BLYOACVP.js";import{a as P}from"./chunk-BRFVOFKF.js";import{a as O,b as L}from"./chunk-AODSXSC5.js";import{a as y}from"./chunk-IISQCXJ5.js";import{e as S}from"./chunk-DRYFJEFT.js";var T={};function b(a,e){return y.equalsEpsilon(a.latitude,e.latitude,y.EPSILON10)&&y.equalsEpsilon(a.longitude,e.longitude,y.EPSILON10)}var q=new L,v=new L;function w(a,e,i,h){e=P(e,O.equalsEpsilon);let p=e.length;if(p<2)return;let E=S(h),u=S(i),l=new Array(p),g=new Array(p),r=new Array(p),d=e[0];l[0]=d;let f=a.cartesianToCartographic(d,q);u&&(f.height=i[0]),g[0]=f.height,E?r[0]=h[0]:r[0]=0;let o=g[0],m=r[0],t=o===m,n=1;for(let c=1;c0?d.INSIDE:o+u<0?d.OUTSIDE:d.INTERSECTING};t.prototype.clone=function(m){return t.clone(this,m)};t.prototype.intersectPlane=function(m){return t.intersectPlane(this,m)};t.prototype.equals=function(m){return t.equals(this,m)};var P=t;export{P as a}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/chunk-DRYFJEFT.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | var i=Object.create;var u=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var o=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var a=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,d)=>(typeof require<"u"?require:e)[d]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')}),b=n=>e=>{var d=n[e];if(d)return d();throw new Error("Module not found in bundle: "+e)};var g=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var p=(n,e,d,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let f of l(e))!c.call(n,f)&&f!==d&&u(n,f,{get:()=>e[f],enumerable:!(t=r(e,f))||t.enumerable});return n};var h=(n,e,d)=>(d=n!=null?i(o(n)):{},p(e||!n||!n.__esModule?u(d,"default",{value:n,enumerable:!0}):d,n));function x(n){return n!=null}var k=x;export{a,b,g as c,h as d,k as e}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/chunk-E3BAMNKM.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | var e={NONE:0,GEODESIC:1,RHUMB:2},t=Object.freeze(e);export{t as a}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IIPSFM7Z.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{e}from"./chunk-DRYFJEFT.js";function t(r){this.name="RuntimeError",this.message=r;let o;try{throw new Error}catch(s){o=s.stack}this.stack=o}e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t);t.prototype.toString=function(){let r=`${this.name}: ${this.message}`;return e(this.stack)&&(r+=` 27 | ${this.stack.toString()}`),r};var c=t;export{c as a}; 28 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/chunk-LNO7O274.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as l,b as d}from"./chunk-Y5B6Y3WD.js";import{a as t}from"./chunk-AODSXSC5.js";import{a as s}from"./chunk-IISQCXJ5.js";import{a as f,b as r}from"./chunk-OYWUGDKS.js";import{e as m}from"./chunk-DRYFJEFT.js";function o(e,n){if(r.typeOf.object("normal",e),!s.equalsEpsilon(t.magnitude(e),1,s.EPSILON6))throw new f("normal must be normalized.");r.typeOf.number("distance",n),this.normal=t.clone(e),this.distance=n}o.fromPointNormal=function(e,n,a){if(r.typeOf.object("point",e),r.typeOf.object("normal",n),!s.equalsEpsilon(t.magnitude(n),1,s.EPSILON6))throw new f("normal must be normalized.");let c=-t.dot(n,e);return m(a)?(t.clone(n,a.normal),a.distance=c,a):new o(n,c)};var b=new t;o.fromCartesian4=function(e,n){r.typeOf.object("coefficients",e);let a=t.fromCartesian4(e,b),c=e.w;if(!s.equalsEpsilon(t.magnitude(a),1,s.EPSILON6))throw new f("normal must be normalized.");return m(n)?(t.clone(a,n.normal),n.distance=c,n):new o(a,c)};o.getPointDistance=function(e,n){return r.typeOf.object("plane",e),r.typeOf.object("point",n),t.dot(e.normal,n)+e.distance};var y=new t;o.projectPointOntoPlane=function(e,n,a){r.typeOf.object("plane",e),r.typeOf.object("point",n),m(a)||(a=new t);let c=o.getPointDistance(e,n),p=t.multiplyByScalar(e.normal,c,y);return t.subtract(n,p,a)};var w=new d,j=new l,N=new t;o.transform=function(e,n,a){r.typeOf.object("plane",e),r.typeOf.object("transform",n);let c=e.normal,p=e.distance,u=d.inverseTranspose(n,w),i=l.fromElements(c.x,c.y,c.z,p,j);i=d.multiplyByVector(u,i,i);let O=t.fromCartesian4(i,N);return i=l.divideByScalar(i,t.magnitude(O),i),o.fromCartesian4(i,a)};o.clone=function(e,n){return r.typeOf.object("plane",e),m(n)?(t.clone(e.normal,n.normal),n.distance=e.distance,n):new o(e.normal,e.distance)};o.equals=function(e,n){return r.typeOf.object("left",e),r.typeOf.object("right",n),e.distance===n.distance&&t.equals(e.normal,n.normal)};o.ORIGIN_XY_PLANE=Object.freeze(new o(t.UNIT_Z,0));o.ORIGIN_YZ_PLANE=Object.freeze(new o(t.UNIT_X,0));o.ORIGIN_ZX_PLANE=Object.freeze(new o(t.UNIT_Y,0));var T=o;export{T as a}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/chunk-ONYACCBZ.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as h}from"./chunk-7MCGOXW3.js";import{a as n,c as y,e as a}from"./chunk-AODSXSC5.js";import{b as f}from"./chunk-OYWUGDKS.js";var x={},b=new n,P=new n,B=new n,M=new n,w=new h;x.validOutline=function(i){f.defined("positions",i);let o=h.fromPoints(i,w).halfAxes,e=a.getColumn(o,0,P),r=a.getColumn(o,1,B),t=a.getColumn(o,2,M),u=n.magnitude(e),s=n.magnitude(r),l=n.magnitude(t);return!(u===0&&(s===0||l===0)||s===0&&l===0)};x.computeProjectTo2DArguments=function(i,c,o,e){f.defined("positions",i),f.defined("centerResult",c),f.defined("planeAxis1Result",o),f.defined("planeAxis2Result",e);let r=h.fromPoints(i,w),t=r.halfAxes,u=a.getColumn(t,0,P),s=a.getColumn(t,1,B),l=a.getColumn(t,2,M),A=n.magnitude(u),d=n.magnitude(s),g=n.magnitude(l),m=Math.min(A,d,g);if(A===0&&(d===0||g===0)||d===0&&g===0)return!1;let p,C;return(m===d||m===g)&&(p=u),m===A?p=s:m===g&&(C=s),(m===A||m===d)&&(C=l),n.normalize(p,o),n.normalize(C,e),n.clone(r.center,c),!0};function z(i,c,o,e,r){let t=n.subtract(i,c,b),u=n.dot(o,t),s=n.dot(e,t);return y.fromElements(u,s,r)}x.createProjectPointsTo2DFunction=function(i,c,o){return function(e){let r=new Array(e.length);for(let t=0;t=o)throw new r(`Expected ${t} to be less than ${o}, actual value was ${e}`)};n.typeOf.number.lessThanOrEquals=function(t,e,o){if(n.typeOf.number(t,e),e>o)throw new r(`Expected ${t} to be less than or equal to ${o}, actual value was ${e}`)};n.typeOf.number.greaterThan=function(t,e,o){if(n.typeOf.number(t,e),e<=o)throw new r(`Expected ${t} to be greater than ${o}, actual value was ${e}`)};n.typeOf.number.greaterThanOrEquals=function(t,e,o){if(n.typeOf.number(t,e),e=a.SIXTY_FOUR_KILOBYTES?new Uint32Array(n):new Uint16Array(n)};r.createTypedArrayFromArrayBuffer=function(e,n,E,o){if(!i(e))throw new t("numberOfVertices is required.");if(!i(n))throw new t("sourceArray is required.");if(!i(E))throw new t("byteOffset is required.");return e>=a.SIXTY_FOUR_KILOBYTES?new Uint32Array(n,E,o):new Uint16Array(n,E,o)};r.fromTypedArray=function(e){if(e instanceof Uint8Array)return r.UNSIGNED_BYTE;if(e instanceof Uint16Array)return r.UNSIGNED_SHORT;if(e instanceof Uint32Array)return r.UNSIGNED_INT;throw new t("array must be a Uint8Array, Uint16Array, or Uint32Array.")};var u=Object.freeze(r);export{u as a}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/chunk-WHQYJFDH.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | function u(e,n){return e??n}u.EMPTY_OBJECT=Object.freeze({});var t=u;export{t as a}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/chunk-ZEP44EYN.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as c,b as p,d as f}from"./chunk-AODSXSC5.js";import{a as d}from"./chunk-IISQCXJ5.js";import{a as u}from"./chunk-WHQYJFDH.js";import{a as s}from"./chunk-OYWUGDKS.js";import{e as a}from"./chunk-DRYFJEFT.js";function e(t){this._ellipsoid=u(t,f.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(e.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});e.mercatorAngleToGeodeticLatitude=function(t){return d.PI_OVER_TWO-2*Math.atan(Math.exp(-t))};e.geodeticLatitudeToMercatorAngle=function(t){t>e.MaximumLatitude?t=e.MaximumLatitude:t<-e.MaximumLatitude&&(t=-e.MaximumLatitude);let i=Math.sin(t);return .5*Math.log((1+i)/(1-i))};e.MaximumLatitude=e.mercatorAngleToGeodeticLatitude(Math.PI);e.prototype.project=function(t,i){let o=this._semimajorAxis,r=t.longitude*o,n=e.geodeticLatitudeToMercatorAngle(t.latitude)*o,m=t.height;return a(i)?(i.x=r,i.y=n,i.z=m,i):new c(r,n,m)};e.prototype.unproject=function(t,i){if(!a(t))throw new s("cartesian is required");let o=this._oneOverSemimajorAxis,r=t.x*o,n=e.mercatorAngleToGeodeticLatitude(t.y*o),m=t.z;return a(i)?(i.longitude=r,i.latitude=n,i.height=m,i):new p(r,n,m)};var L=e;export{L as a}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/combineGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as e}from"./chunk-KYVZRNFI.js";import{a as r}from"./chunk-3R25OJXK.js";import"./chunk-ZEP44EYN.js";import"./chunk-UBAKWGRR.js";import"./chunk-H3L4SJP4.js";import"./chunk-3EKULFHC.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import"./chunk-DRYFJEFT.js";function n(o,t){let m=e.unpackCombineGeometryParameters(o),i=e.combineGeometry(m);return e.packCombineGeometryResults(i,t)}var c=r(n);export{c as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createBoxGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as r}from"./chunk-K4YWEDY2.js";import"./chunk-6UMNSGJM.js";import"./chunk-QNEABTP2.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as o}from"./chunk-DRYFJEFT.js";function i(e,t){return o(t)&&(e=r.unpack(e,t)),r.createGeometry(e)}var a=i;export{a as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createCircleOutlineGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as n}from"./chunk-AXIFPJHM.js";import"./chunk-E5APRSR6.js";import"./chunk-6UMNSGJM.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as o,d as s}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as u}from"./chunk-WHQYJFDH.js";import{b as d}from"./chunk-OYWUGDKS.js";import{e as a}from"./chunk-DRYFJEFT.js";function m(e){e=u(e,u.EMPTY_OBJECT);let r=e.radius;d.typeOf.number("radius",r);let l={center:e.center,semiMajorAxis:r,semiMinorAxis:r,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new n(l),this._workerName="createCircleOutlineGeometry"}m.packedLength=n.packedLength;m.pack=function(e,r,l){return d.typeOf.object("value",e),n.pack(e._ellipseGeometry,r,l)};var p=new n({center:new o,semiMajorAxis:1,semiMinorAxis:1}),i={center:new o,radius:void 0,ellipsoid:s.clone(s.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};m.unpack=function(e,r,l){let t=n.unpack(e,r,p);return i.center=o.clone(t._center,i.center),i.ellipsoid=s.clone(t._ellipsoid,i.ellipsoid),i.height=t._height,i.extrudedHeight=t._extrudedHeight,i.granularity=t._granularity,i.numberOfVerticalLines=t._numberOfVerticalLines,a(l)?(i.semiMajorAxis=t._semiMajorAxis,i.semiMinorAxis=t._semiMinorAxis,l._ellipseGeometry=new n(i),l):(i.radius=t._semiMajorAxis,new m(i))};m.createGeometry=function(e){return n.createGeometry(e._ellipseGeometry)};var c=m;function f(e,r){return a(r)&&(e=c.unpack(e,r)),e._ellipseGeometry._center=o.clone(e._ellipseGeometry._center),e._ellipseGeometry._ellipsoid=s.clone(e._ellipseGeometry._ellipsoid),c.createGeometry(e)}var E=f;export{E as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createCylinderGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as r}from"./chunk-RCNUJLF4.js";import"./chunk-C6CGQVLL.js";import"./chunk-6UMNSGJM.js";import"./chunk-QNEABTP2.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as o}from"./chunk-DRYFJEFT.js";function i(e,t){return o(t)&&(e=r.unpack(e,t)),r.createGeometry(e)}var a=i;export{a as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createEllipseGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as o}from"./chunk-6A5E2WLP.js";import"./chunk-E5APRSR6.js";import"./chunk-7GU2ORNB.js";import"./chunk-UBAKWGRR.js";import"./chunk-H3L4SJP4.js";import"./chunk-3EKULFHC.js";import"./chunk-6UMNSGJM.js";import"./chunk-QNEABTP2.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as t,d as c}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as n}from"./chunk-DRYFJEFT.js";function a(r,i){return n(i)&&(r=o.unpack(r,i)),r._center=t.clone(r._center),r._ellipsoid=c.clone(r._ellipsoid),o.createGeometry(r)}var u=a;export{u as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createEllipseOutlineGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as i}from"./chunk-AXIFPJHM.js";import"./chunk-E5APRSR6.js";import"./chunk-6UMNSGJM.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as t,d as c}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as o}from"./chunk-DRYFJEFT.js";function a(r,n){return o(n)&&(r=i.unpack(r,n)),r._center=t.clone(r._center),r._ellipsoid=c.clone(r._ellipsoid),i.createGeometry(r)}var p=a;export{p as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createEllipsoidGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as e}from"./chunk-XQG25LEF.js";import"./chunk-6UMNSGJM.js";import"./chunk-QNEABTP2.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as o}from"./chunk-DRYFJEFT.js";function i(r,t){return o(t)&&(r=e.unpack(r,t)),e.createGeometry(r)}var a=i;export{a as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createEllipsoidOutlineGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as t}from"./chunk-5NCMUEUX.js";import"./chunk-6UMNSGJM.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as n}from"./chunk-DRYFJEFT.js";function u(r,e){return n(r.buffer,e)&&(r=t.unpack(r,e)),t.createGeometry(r)}var a=u;export{a as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createFrustumGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{c as r}from"./chunk-EEABWYUP.js";import"./chunk-QNEABTP2.js";import"./chunk-LNO7O274.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as o}from"./chunk-DRYFJEFT.js";function i(e,t){return o(t)&&(e=r.unpack(e,t)),r.createGeometry(e)}var a=i;export{a as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createPlaneOutlineGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as l}from"./chunk-RYO6NY7F.js";import{b as d,c as y,d as s}from"./chunk-2HSPJH3C.js";import{d as c}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a as f}from"./chunk-6QVIJ7JA.js";import{a}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import{b as m}from"./chunk-OYWUGDKS.js";import{e as i}from"./chunk-DRYFJEFT.js";function o(){this._workerName="createPlaneOutlineGeometry"}o.packedLength=0;o.pack=function(r,e){return m.defined("value",r),m.defined("array",e),e};o.unpack=function(r,e,t){return m.defined("array",r),i(t)?t:new o};var n=new a(-.5,-.5,0),p=new a(.5,.5,0);o.createGeometry=function(){let r=new l,e=new Uint16Array(4*2),t=new Float64Array(4*3);return t[0]=n.x,t[1]=n.y,t[2]=n.z,t[3]=p.x,t[4]=n.y,t[5]=n.z,t[6]=p.x,t[7]=p.y,t[8]=n.z,t[9]=n.x,t[10]=p.y,t[11]=n.z,r.position=new s({componentDatatype:f.DOUBLE,componentsPerAttribute:3,values:t}),e[0]=0,e[1]=1,e[2]=1,e[3]=2,e[4]=2,e[5]=3,e[6]=3,e[7]=0,new y({attributes:r,indices:e,primitiveType:d.LINES,boundingSphere:new c(a.ZERO,Math.sqrt(2))})};var u=o;function w(r,e){return i(e)&&(r=u.unpack(r,e)),u.createGeometry(r)}var D=w;export{D as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createSphereGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as r}from"./chunk-XQG25LEF.js";import"./chunk-6UMNSGJM.js";import{a as m}from"./chunk-QNEABTP2.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as s}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as l}from"./chunk-WHQYJFDH.js";import{b as p}from"./chunk-OYWUGDKS.js";import{e as c}from"./chunk-DRYFJEFT.js";function n(e){let t=l(e.radius,1),o={radii:new s(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new r(o),this._workerName="createSphereGeometry"}n.packedLength=r.packedLength;n.pack=function(e,t,a){return p.typeOf.object("value",e),r.pack(e._ellipsoidGeometry,t,a)};var f=new r,i={radius:void 0,radii:new s,vertexFormat:new m,stackPartitions:void 0,slicePartitions:void 0};n.unpack=function(e,t,a){let o=r.unpack(e,t,f);return i.vertexFormat=m.clone(o._vertexFormat,i.vertexFormat),i.stackPartitions=o._stackPartitions,i.slicePartitions=o._slicePartitions,c(a)?(s.clone(o._radii,i.radii),a._ellipsoidGeometry=new r(i),a):(i.radius=o._radii.x,new n(i))};n.createGeometry=function(e){return r.createGeometry(e._ellipsoidGeometry)};var d=n;function u(e,t){return c(t)&&(e=d.unpack(e,t)),d.createGeometry(e)}var v=u;export{v as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createSphereOutlineGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as t}from"./chunk-5NCMUEUX.js";import"./chunk-6UMNSGJM.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as d}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as l}from"./chunk-WHQYJFDH.js";import{b as u}from"./chunk-OYWUGDKS.js";import{e as a}from"./chunk-DRYFJEFT.js";function s(i){let e=l(i.radius,1),r={radii:new d(e,e,e),stackPartitions:i.stackPartitions,slicePartitions:i.slicePartitions,subdivisions:i.subdivisions};this._ellipsoidGeometry=new t(r),this._workerName="createSphereOutlineGeometry"}s.packedLength=t.packedLength;s.pack=function(i,e,o){return u.typeOf.object("value",i),t.pack(i._ellipsoidGeometry,e,o)};var m=new t,n={radius:void 0,radii:new d,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};s.unpack=function(i,e,o){let r=t.unpack(i,e,m);return n.stackPartitions=r._stackPartitions,n.slicePartitions=r._slicePartitions,n.subdivisions=r._subdivisions,a(o)?(d.clone(r._radii,n.radii),o._ellipsoidGeometry=new t(n),o):(n.radius=r._radii.x,new s(n))};s.createGeometry=function(i){return t.createGeometry(i._ellipsoidGeometry)};var c=s;function p(i,e){return a(e)&&(i=c.unpack(i,e)),c.createGeometry(i)}var w=p;export{w as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createTaskProcessorWorker.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a}from"./chunk-3R25OJXK.js";import"./chunk-DRYFJEFT.js";export{a as default}; 27 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePoints.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Cesium - https://github.com/CesiumGS/cesium 4 | * Version 1.123 5 | * 6 | * Copyright 2011-2022 Cesium Contributors 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | * 20 | * Columbus View (Pat. Pend.) 21 | * 22 | * Portions licensed separately. 23 | * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. 24 | */ 25 | 26 | import{a as x}from"./chunk-3R25OJXK.js";import{a as w}from"./chunk-H3L4SJP4.js";import{i as c}from"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as h,b as l,d as p}from"./chunk-AODSXSC5.js";import{a as i}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import"./chunk-DRYFJEFT.js";var u=32767,F=new l,L=new h,b=new c,y=new p,a={min:void 0,max:void 0};function V(t){t=new Float64Array(t);let o=0;a.min=t[o++],a.max=t[o++],c.unpack(t,o,b),o+=c.packedLength,p.unpack(t,o,y)}function z(t,o){let s=new Uint16Array(t.positions);V(t.packedBuffer);let e=b,C=y,A=a.min,P=a.max,n=s.length/3,f=s.subarray(0,n),g=s.subarray(n,2*n),d=s.subarray(2*n,3*n);w.zigZagDeltaDecode(f,g,d);let m=new Float64Array(s.length);for(let r=0;r modify 5 | - export as collada (iris.dae) 6 | - zip iris.zip 1_Cesium_Air_Prop.png iris.dae 7 | - convert to glTF: open iris.zip in http://52.4.31.236/convertmodel.html 8 | - save as iris.glb 9 | 10 | -------------------------------------------------------------------------------- /app/plot_app/static/cesium/models/iris/iris.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/models/iris/iris.blend -------------------------------------------------------------------------------- /app/plot_app/static/cesium/models/iris/iris.blend1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/models/iris/iris.blend1 -------------------------------------------------------------------------------- /app/plot_app/static/cesium/models/iris/iris.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/models/iris/iris.glb -------------------------------------------------------------------------------- /app/plot_app/static/cesium/models/iris/iris.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/models/iris/iris.zip -------------------------------------------------------------------------------- /app/plot_app/static/cesium/models/iris/iris_3d_props.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/cesium/models/iris/iris_3d_props.blend -------------------------------------------------------------------------------- /app/plot_app/static/images/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/images/favicon-32x32.png -------------------------------------------------------------------------------- /app/plot_app/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/app/plot_app/static/images/logo.png -------------------------------------------------------------------------------- /app/plot_app/templates/edit.html: -------------------------------------------------------------------------------- 1 | 2 | {% include 'header.html' %} 3 | 4 | {{ content }} 5 | 6 | {% include 'footer.html' %} 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/plot_app/templates/footer.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 | 15 |
16 |
17 |
18 | 19 | 20 | 21 | 22 | 23 | {{ plot_script }} 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | -------------------------------------------------------------------------------- /app/plot_app/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | {% include 'header.html' %} 3 | 4 | 5 | {% if not internal_error %} 6 | 7 | {% if is_plot_page %} 8 |
9 | Do you need help with interpreting the plots? 10 | See here. 11 |
12 | {% endif %} 13 | 14 | {{ title_html }} 15 | {{ hardfault_html }} 16 | {{ info_table_html }} 17 | {{ corrupt_log_html }} 18 | {{ error_labels_html }} 19 | 20 | {% if has_position_data %} 21 | 22 | 23 |
24 | 25 | 50 | 51 | {% endif %} 52 | 53 | {% if is_plot_page %} 54 | 55 |


Loading Plots...

56 | {% endif %} 57 | 58 | {{ plot_div|indent(8) }} 59 | 60 | {{ additional_info }} 61 | 62 | {% endif %} {# internal_error #} 63 | 64 | 65 | {% include 'footer.html' %} 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /app/plot_app/templates/radio_controller.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/plot_app/theme.yaml: -------------------------------------------------------------------------------- 1 | attrs: 2 | 3 | Axis: 4 | minor_tick_in: 0 5 | major_tick_in: 0 6 | major_label_text_font_style: 'normal' 7 | 8 | axis_line_color: '#AAAAAA' 9 | major_tick_line_color: '#AAAAAA' 10 | minor_tick_line_color: '#AAAAAA' 11 | 12 | major_tick_line_cap: 'round' 13 | axis_line_cap: 'round' 14 | axis_line_width: 1 15 | major_tick_line_width: 1 16 | 17 | Legend: 18 | border_line_width: 3 19 | border_line_color: null 20 | background_fill_alpha: 0.8 21 | background_fill_color: '#ffffff' 22 | 23 | # Plot: 24 | # lod_threshold: null # turn off level-of-detail 25 | -------------------------------------------------------------------------------- /app/private_key/dummy_key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIB...FAKE...KEY...FOR...TESTING...ONLY... 3 | -----END PRIVATE KEY----- -------------------------------------------------------------------------------- /app/requirements.txt: -------------------------------------------------------------------------------- 1 | bokeh==3.3.2 2 | jinja2 3 | jupyter 4 | pyfftw 5 | pylint 6 | pyulog>=1.1 7 | requests 8 | scipy>=1.8.1 9 | simplekml 10 | smopy 11 | pycryptodome>=3.18 12 | -------------------------------------------------------------------------------- /app/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | PORT_VALUE=${PORT:-5006} 4 | DOMAIN_VALUE=${DOMAIN:-*} 5 | 6 | WORK_PATH=/opt/service 7 | DATA_PATH=${WORK_PATH}/data 8 | 9 | # app setup 10 | if [ ! -d ${DATA_PATH} ]; then 11 | mkdir -p ${DATA_PATH} 12 | fi 13 | 14 | if [ ! -f ${DATA_PATH}/logs.sqlite ]; then 15 | python3 ${WORK_PATH}/setup_db.py 16 | fi 17 | 18 | if [ -n "${USE_PROXY}" ]; then 19 | echo "Use Proxy!" 20 | python3 ${WORK_PATH}/serve.py \ 21 | --port=${PORT_VALUE} \ 22 | --address=0.0.0.0 \ 23 | --allow-websocket-origin=${DOMAIN_VALUE} \ 24 | --use-xheaders 25 | else 26 | python3 ${WORK_PATH}/serve.py --port=${PORT_VALUE} 27 | fi 28 | -------------------------------------------------------------------------------- /app/tornado_handlers/error_labels.py: -------------------------------------------------------------------------------- 1 | """ 2 | Tornado handler for updating the error label information in the database 3 | """ 4 | from __future__ import print_function 5 | 6 | import sys 7 | import os 8 | import sqlite3 9 | import tornado.web 10 | 11 | # this is needed for the following imports 12 | sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'plot_app')) 13 | from config import * 14 | from db_entry import * 15 | from helper import validate_log_id, validate_error_ids 16 | 17 | class UpdateErrorLabelHandler(tornado.web.RequestHandler): 18 | """ Update the error label of a flight log.""" 19 | 20 | def post(self, *args, **kwargs): 21 | """ POST request """ 22 | 23 | data = tornado.escape.json_decode(self.request.body) 24 | 25 | log_id = data['log'] 26 | if not validate_log_id(log_id): 27 | raise tornado.web.HTTPError(400, 'Invalid Parameter') 28 | 29 | error_ids = data['labels'] 30 | if not validate_error_ids(error_ids): 31 | raise tornado.web.HTTPError(400, 'Invalid Parameter') 32 | 33 | error_id_str = "" 34 | for error_ix, error_id in enumerate(error_ids): 35 | error_id_str += str(error_id) 36 | if error_ix < len(error_ids)-1: 37 | error_id_str += "," 38 | 39 | con = sqlite3.connect(get_db_filename(), detect_types=sqlite3.PARSE_DECLTYPES) 40 | cur = con.cursor() 41 | 42 | cur.execute( 43 | 'UPDATE Logs SET ErrorLabels = ? WHERE Id = ?', 44 | (error_id_str, log_id)) 45 | 46 | con.commit() 47 | cur.close() 48 | con.close() 49 | 50 | self.write('OK') 51 | 52 | def data_received(self, chunk): 53 | """ called whenever new data is received """ 54 | pass 55 | -------------------------------------------------------------------------------- /app/tornado_handlers/radio_controller.py: -------------------------------------------------------------------------------- 1 | """ 2 | Tornado handler for the radio controller page 3 | """ 4 | from __future__ import print_function 5 | import tornado.web 6 | 7 | #pylint: disable=relative-beyond-top-level 8 | from .common import get_jinja_env 9 | 10 | RADIO_CONTROLLER_TEMPLATE = 'radio_controller.html' 11 | 12 | #pylint: disable=abstract-method 13 | 14 | class RadioControllerHandler(tornado.web.RequestHandler): 15 | """ Tornado Request Handler to render the radio controller (for testing 16 | only) """ 17 | 18 | def get(self, *args, **kwargs): 19 | """ GET request """ 20 | 21 | template = get_jinja_env().get_template(RADIO_CONTROLLER_TEMPLATE) 22 | self.write(template.render()) 23 | 24 | -------------------------------------------------------------------------------- /data/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | log_files/*-*-*-*-*.ulg 3 | airframes.xml 4 | 5 | /cache/ 6 | /downloaded/ 7 | 8 | -------------------------------------------------------------------------------- /docker-compose.dev.yml: -------------------------------------------------------------------------------- 1 | version: "3.3" 2 | services: 3 | flight_review_app: 4 | build: 5 | context: ./app 6 | dockerfile: Dockerfile 7 | env_file: .env 8 | ports: 9 | - 5006:5006 10 | volumes: 11 | - ./app:/opt/service/ 12 | - ./data:/opt/data 13 | - ${PWD}/app/config_default.ini:/opt/service/config_default.ini:ro # Absolute for volume a file. 14 | restart: always -------------------------------------------------------------------------------- /docker-compose.prod.yml: -------------------------------------------------------------------------------- 1 | version: "3.3" 2 | services: 3 | flight_review_app: 4 | # image: px4flightreview 5 | build: 6 | context: ./app 7 | dockerfile: Dockerfile 8 | env_file: .env 9 | volumes: 10 | - ./data:/opt/data 11 | # Absolute for volume a file. 12 | - ${PWD}/app/config_default.ini:/opt/service/config_default.ini:ro 13 | - ${PWD}/app/config_user.ini:/opt/service/config_user.ini:ro 14 | restart: always 15 | nginx: 16 | build: 17 | context: ./nginx 18 | dockerfile: Dockerfile 19 | args: 20 | - NGINX_CONF=${NGINX_CONF} 21 | env_file: .env 22 | ports: 23 | - 80:80 24 | - 443:443 25 | volumes: 26 | - ./data/certbot/conf:/etc/letsencrypt 27 | - ./data/certbot/www:/var/www/certbot 28 | - ./logs/nginx:/var/log/nginx/ 29 | - ${PWD}/nginx/.htpasswd:/etc/nginx/.htpasswd # for nginx basic authentication 30 | - /etc/localtime:/etc/localtime:ro # for synchronize with host timezone 31 | command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'" 32 | links: 33 | - flight_review_app 34 | depends_on: 35 | - flight_review_app 36 | restart: always 37 | certbot: 38 | build: 39 | context: ./letsencrypt 40 | dockerfile: Dockerfile 41 | volumes: 42 | - ./data/certbot/conf:/etc/letsencrypt 43 | - ./data/certbot/www:/var/www/certbot 44 | - ./logs/letsencrypt:/var/log/letsencrypt 45 | - /etc/localtime:/etc/localtime:ro # for synchronize with host timezone 46 | entrypoint: "/bin/sh -c 'trap exit TERM; crond -f'" 47 | # tty: true 48 | restart: always 49 | 50 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.3" 2 | services: 3 | flight_review_app: 4 | # image: px4flightreview 5 | build: 6 | context: ./app 7 | dockerfile: Dockerfile 8 | env_file: .env 9 | volumes: 10 | - ./data:/opt/data 11 | - ${PWD}/app/config_default.ini:/opt/service/config_default.ini:ro # Absolute for volume a file. 12 | restart: always 13 | nginx: 14 | build: 15 | context: ./nginx 16 | dockerfile: Dockerfile 17 | args: 18 | - NGINX_CONF=${NGINX_CONF} 19 | env_file: .env 20 | volumes: 21 | - /etc/localtime:/etc/localtime:ro # for synchronize with host timezone 22 | ports: 23 | - 80:80 24 | - 443:443 25 | links: 26 | - flight_review_app 27 | depends_on: 28 | - flight_review_app 29 | restart: always 30 | 31 | -------------------------------------------------------------------------------- /letsencrypt/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM certbot/certbot 2 | ADD letsencrypt-renew /var/spool/cron/crontabs/root -------------------------------------------------------------------------------- /letsencrypt/letsencrypt-renew: -------------------------------------------------------------------------------- 1 | # renew every week 2 | 0 12 * * */1 certbot renew -------------------------------------------------------------------------------- /nginx/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx 2 | ARG NGINX_CONF 3 | RUN echo ${NGINX_CONF} 4 | COPY ./${NGINX_CONF} /etc/nginx/conf.d/default.conf 5 | -------------------------------------------------------------------------------- /nginx/README.md: -------------------------------------------------------------------------------- 1 | Please change the default.conf for your use case. 2 | -------------------------------------------------------------------------------- /nginx/default.conf: -------------------------------------------------------------------------------- 1 | 2 | upstream flight_review_app { 3 | server flight_review_app:5006; 4 | } 5 | 6 | server { 7 | listen 80; 8 | client_max_body_size 100M; 9 | access_log /var/log/nginx/access.log; 10 | error_log /var/log/nginx/error.log; 11 | 12 | 13 | location / { 14 | proxy_pass http://flight_review_app; 15 | proxy_set_header Upgrade $http_upgrade; 16 | proxy_set_header Connection "upgrade"; 17 | proxy_http_version 1.1; 18 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 19 | proxy_set_header Host $host;#:$server_port; 20 | proxy_buffering off; 21 | } 22 | } -------------------------------------------------------------------------------- /nginx/default_ssl.conf: -------------------------------------------------------------------------------- 1 | 2 | upstream flight_review_app { 3 | server flight_review_app:5006; 4 | } 5 | 6 | server { 7 | listen 80; 8 | server_name review.px4.io; 9 | location ^~ /.well-known/acme-challenge/ { 10 | root /var/www/certbot; 11 | allow all; 12 | } 13 | location / { 14 | return 307 https://$host$request_uri; 15 | } 16 | } 17 | 18 | server { 19 | listen 443 ssl http2; 20 | server_name review.px4.io; 21 | access_log /var/log/nginx/access.log; 22 | error_log /var/log/nginx/error.log; 23 | ssl_certificate /etc/letsencrypt/live/review.px4.io/fullchain.pem; 24 | ssl_certificate_key /etc/letsencrypt/live/review.px4.io/privkey.pem; 25 | include /etc/letsencrypt/options-ssl-nginx.conf; 26 | ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; 27 | proxy_connect_timeout 180s; 28 | proxy_read_timeout 180s; 29 | proxy_send_timeout 180s; 30 | charset utf-8; 31 | 32 | client_max_body_size 100M; 33 | location / { 34 | proxy_request_buffering off; 35 | proxy_pass http://flight_review_app; 36 | proxy_set_header Upgrade $http_upgrade; 37 | proxy_set_header Connection "upgrade"; 38 | proxy_http_version 1.1; 39 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 40 | proxy_set_header Host $host; #:$server_port; 41 | auth_basic "Restricted"; # message to show when authentication error 42 | auth_basic_user_file /etc/nginx/.htpasswd; # .htpasswd path 43 | } 44 | } -------------------------------------------------------------------------------- /run_pylint.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # execute pylint on the source 3 | 4 | pylint_exec=$(which pylint 2>/dev/null) 5 | 6 | [[ $? != 0 ]] && { echo >&2 "pylint not found. Aborting."; exit 1; } 7 | 8 | set -e 9 | 10 | pushd app 11 | export PYTHONPATH="plot_app:plot_app/libevents/libs/python" 12 | python3 $pylint_exec tornado_handlers/*.py serve.py \ 13 | plot_app/*.py download_logs.py 14 | popd 15 | exit 0 16 | -------------------------------------------------------------------------------- /screenshots/3d_view.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/screenshots/3d_view.gif -------------------------------------------------------------------------------- /screenshots/plot_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PX4/flight_review/93e415cc13c4d62aa63e11db1d614b7fb3791d9c/screenshots/plot_view.png --------------------------------------------------------------------------------