fix refresh bugs, remove link of the old css in examples

This commit is contained in:
Matthieu BAUMANN
2023-03-23 15:54:06 +01:00
parent e28776d15c
commit d3f01c6f0b
61 changed files with 198 additions and 368 deletions

View File

@@ -2,8 +2,6 @@
<HTML> <HTML>
<HEAD> <HEAD>
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=no"> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=no">
<script type="text/javascript"> <script type="text/javascript">
var hipsDir=null;</script> var hipsDir=null;</script>
</HEAD> </HEAD>

View File

@@ -1,12 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"></div> <div id="aladin-lite-div" style="width: 1024px; height: 768px"></div>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>
@@ -18,7 +15,7 @@
aladin = A.aladin('#aladin-lite-div', {survey: ["P/PanSTARRS/DR1/color-i-r-g"], showReticle: false, gridOptions: {opacity: 0.5}, projection: "AIT", cooFrame: 'galactic', target: "93.2721132 -20.9942421", fov: 1000, showGotoControl: false, showFrame: false, fullScreen: true, showLayersControl: true, showCooGrid: false, showCooGridControl: false}); aladin = A.aladin('#aladin-lite-div', {survey: ["P/PanSTARRS/DR1/color-i-r-g"], showReticle: false, gridOptions: {opacity: 0.5}, projection: "AIT", cooFrame: 'galactic', target: "93.2721132 -20.9942421", fov: 1000, showGotoControl: false, showFrame: false, fullScreen: true, showLayersControl: true, showCooGrid: false, showCooGridControl: false});
const chft = aladin.createImageSurvey('CFHT', "CFHT deep view of NGC7331 and Stephan's quintet u+g+r", "https://cds.unistra.fr/~derriere/PR_HiPS/2022_Duc/", null, null, {imgFormat: 'png'}); const chft = aladin.createImageSurvey('CFHT', "CFHT deep view of NGC7331 and Stephan's quintet u+g+r", "https://cds.unistra.fr/~derriere/PR_HiPS/2022_Duc/", null, null, {imgFormat: 'png'});
const nircamJWST = aladin.createImageSurvey('Nircam', "Stephans Quintet NIRCam+MIRI", "http://alasky.cds.unistra.fr/JWST/CDS_P_JWST_Stephans-Quintet_NIRCam+MIRI/", null, null, {imgFormat: 'png'}); const nircamJWST = aladin.createImageSurvey('Nircam', "Stephans Quintet NIRCam+MIRI", "http://alasky.cds.unistra.fr/JWST/CDS_P_JWST_Stephans-Quintet_NIRCam+MIRI/", null, null, {imgFormat: 'png', colormap: "viridis"});
aladin.setOverlayImageLayer("CFHT", "CFHT"); aladin.setOverlayImageLayer("CFHT", "CFHT");
aladin.setOverlayImageLayer("Nircam", "Nircam"); aladin.setOverlayImageLayer("Nircam", "Nircam");

View File

@@ -1,8 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />--> <!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>

View File

@@ -1,8 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />--> <!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>

View File

@@ -1,8 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />--> <!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>

View File

@@ -1,8 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>

View File

@@ -1,8 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>

View File

@@ -2,8 +2,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<!--<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" /> -->
</head> </head>
<body> <body>

View File

@@ -2,8 +2,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<!--<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" /> -->
</head> </head>
<body> <body>

View File

@@ -1,8 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>

View File

@@ -1,11 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>

View File

@@ -2,12 +2,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>

View File

@@ -1,11 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>

View File

@@ -2,12 +2,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>

View File

@@ -1,11 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>

View File

@@ -1,11 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>

View File

@@ -1,11 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>

View File

@@ -1,12 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"> <div id="aladin-lite-div" style="width: 1024px; height: 768px">

View File

@@ -1,12 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"> <div id="aladin-lite-div" style="width: 1024px; height: 768px">

View File

@@ -1,12 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"> <div id="aladin-lite-div" style="width: 1024px; height: 768px">

View File

@@ -1,8 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"></div> <div id="aladin-lite-div" style="width: 1024px; height: 768px"></div>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"></div> <div id="aladin-lite-div" style="width: 1024px; height: 768px"></div>

View File

@@ -1,8 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" /> -->
</head> </head>
<body> <body>
<div id="al1" style="width: 500px; height: 500px"> <div id="al1" style="width: 500px; height: 500px">

View File

@@ -1,7 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"></div> <div id="aladin-lite-div" style="width: 1024px; height: 768px"></div>

View File

@@ -1,11 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 500px; height: 400px"></div> <div id="aladin-lite-div" style="width: 500px; height: 400px"></div>

View File

@@ -1,11 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 500px; height: 400px"></div> <div id="aladin-lite-div" style="width: 500px; height: 400px"></div>

View File

@@ -1,8 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>

View File

@@ -2,12 +2,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 500px; height: 400px"></div> <div id="aladin-lite-div" style="width: 500px; height: 400px"></div>

View File

@@ -1,11 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 500px; height: 400px"></div> <div id="aladin-lite-div" style="width: 500px; height: 400px"></div>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"></div> <div id="aladin-lite-div" style="width: 1024px; height: 768px"></div>

View File

@@ -1,11 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 500px; height: 400px"></div> <div id="aladin-lite-div" style="width: 500px; height: 400px"></div>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"></div> <div id="aladin-lite-div" style="width: 1024px; height: 768px"></div>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"></div> <div id="aladin-lite-div" style="width: 1024px; height: 768px"></div>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"></div> <div id="aladin-lite-div" style="width: 1024px; height: 768px"></div>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"></div> <div id="aladin-lite-div" style="width: 1024px; height: 768px"></div>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"></div> <div id="aladin-lite-div" style="width: 1024px; height: 768px"></div>

View File

@@ -2,12 +2,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<!-- <link rel="stylesheet" href="../distrib/latest/aladin.min.css" /> -->
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 500px; height: 400px"></div> <div id="aladin-lite-div" style="width: 500px; height: 400px"></div>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"></div> <div id="aladin-lite-div" style="width: 1024px; height: 768px"></div>

View File

@@ -1,9 +1,6 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://aladin.u-strasbg.fr/AladinLite/api/v2/latest/aladin.min.css" />
<!--<link rel="stylesheet" href="./layers.css" />-->
</head> </head>
<body> <body>
<div id="aladin-lite-div" style="width: 1024px; height: 768px"></div> <div id="aladin-lite-div" style="width: 1024px; height: 768px"></div>

View File

@@ -30,7 +30,7 @@ serde = { version = "^1.0.59", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"
serde-wasm-bindgen = "0.4" serde-wasm-bindgen = "0.4"
console_error_panic_hook = "0.1.7" console_error_panic_hook = "0.1.7"
fitsrs = "0.2.4" fitsrs = "0.2.6"
enum_dispatch = "0.3.8" enum_dispatch = "0.3.8"
wasm-bindgen = "0.2.79" wasm-bindgen = "0.2.79"
wasm-streams = "0.3.0" wasm-streams = "0.3.0"
@@ -39,7 +39,7 @@ al-core = { path = "./al-core" }
al-task-exec = { path = "./al-task-exec" } al-task-exec = { path = "./al-task-exec" }
al-api = { path = "./al-api" } al-api = { path = "./al-api" }
mapproj = "0.3.0" mapproj = "0.3.0"
wcs = "0.2.2" wcs = "0.2.4"
colorgrad = "0.6.2" colorgrad = "0.6.2"
image-decoder = { package = "image", version = "0.24.2", default-features = false, features = ["jpeg", "png"] } image-decoder = { package = "image", version = "0.24.2", default-features = false, features = ["jpeg", "png"] }

View File

@@ -9,7 +9,7 @@ js-sys = "0.3.47"
cgmath = "*" cgmath = "*"
jpeg-decoder = "0.3.0" jpeg-decoder = "0.3.0"
png = "0.17.6" png = "0.17.6"
fitsrs = "0.1.1" fitsrs = "0.2.6"
al-api = { path = "../al-api" } al-api = { path = "../al-api" }
serde = { version = "^1.0.59", features = ["derive"] } serde = { version = "^1.0.59", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"

View File

@@ -9,8 +9,6 @@ pub struct Fits<'a> {
} }
use std::borrow::Cow; use std::borrow::Cow;
use std::io::BufReader;
use std::io::Read;
use std::fmt::Debug; use std::fmt::Debug;
#[derive(Debug)] #[derive(Debug)]
pub enum Data<'a> { pub enum Data<'a> {
@@ -19,40 +17,46 @@ pub enum Data<'a> {
I32(Cow<'a, [i32]>), I32(Cow<'a, [i32]>),
F32(Cow<'a, [f32]>), F32(Cow<'a, [f32]>),
} }
use fitsrs::hdu::{AsyncHDU, HDU}; use std::io::Cursor;
use wasm_streams::readable::IntoAsyncRead; use fitsrs::{
use futures::stream::StreamExt; hdu::data::InMemData,
fits::Fits as FitsData,
};
impl<'a> Fits<'a> { impl<'a> Fits<'a> {
pub fn from_byte_slice(bytes: &'a [u8]) -> Result<Self, JsValue> { pub fn from_byte_slice(bytes_reader: &'a mut Cursor<&[u8]>) -> Result<Self, JsValue> {
let fitsrs::fits::Fits { hdu: HDU { data, header } } = fitsrs::fits::Fits::from_reader(bytes) let FitsData { hdu } = FitsData::from_reader(bytes_reader)
.map_err(|_| { .map_err(|_| {
JsValue::from_str(&"Parsing fits error") JsValue::from_str(&"Parsing fits error")
})?; })?;
let width = header.get_axis_size(1) let header = hdu.get_header();
let xtension = header.get_xtension();
let width = xtension.get_naxisn(1)
.ok_or_else(|| JsValue::from_str("NAXIS1 not found in the fits"))?; .ok_or_else(|| JsValue::from_str("NAXIS1 not found in the fits"))?;
let height = header.get_axis_size(2) let height = xtension.get_naxisn(2)
.ok_or_else(|| JsValue::from_str("NAXIS2 not found in the fits"))?; .ok_or_else(|| JsValue::from_str("NAXIS2 not found in the fits"))?;
let data = match data { let data = hdu.get_data();
fitsrs::hdu::data::DataBorrowed::U8(slice) => { let data = match *data {
InMemData::U8(slice) => {
Data::U8(Cow::Borrowed(slice)) Data::U8(Cow::Borrowed(slice))
}, },
fitsrs::hdu::data::DataBorrowed::I16(slice) => { InMemData::I16(slice) => {
Data::I16(Cow::Borrowed(slice)) Data::I16(Cow::Borrowed(slice))
}, },
fitsrs::hdu::data::DataBorrowed::I32(slice) => { InMemData::I32(slice) => {
Data::I32(Cow::Borrowed(slice)) Data::I32(Cow::Borrowed(slice))
}, },
fitsrs::hdu::data::DataBorrowed::I64(slice) => { InMemData::I64(slice) => {
let data = slice.iter().map(|v| *v as i32).collect(); let data = slice.iter().map(|v| *v as i32).collect();
Data::I32(Cow::Owned(data)) Data::I32(Cow::Owned(data))
}, },
fitsrs::hdu::data::DataBorrowed::F32(slice) => { InMemData::F32(slice) => {
Data::F32(Cow::Borrowed(slice)) Data::F32(Cow::Borrowed(slice))
}, },
fitsrs::hdu::data::DataBorrowed::F64(slice) => { InMemData::F64(slice) => {
let data = slice.iter().map(|v| *v as f32).collect(); let data = slice.iter().map(|v| *v as f32).collect();
Data::F32(Cow::Owned(data)) Data::F32(Cow::Owned(data))
} }
@@ -67,59 +71,12 @@ impl<'a> Fits<'a> {
}) })
} }
pub fn from_reader<R>(reader: BufReader<R>) -> Result<Self, JsValue>
where
R: Read + Debug
{
let fitsrs::fits::Fits { hdu: HDU { data, header } } = fitsrs::fits::Fits::from_reader(reader)
.map_err(|_| {
JsValue::from_str(&"Parsing fits error")
})?;
let width = header.get_axis_size(1)
.ok_or_else(|| JsValue::from_str("NAXIS1 not found in the fits"))?;
let height = header.get_axis_size(2)
.ok_or_else(|| JsValue::from_str("NAXIS2 not found in the fits"))?;
let data = match data {
fitsrs::hdu::data::DataOwned::U8(it) => {
Data::U8(Cow::Owned(it.collect()))
},
fitsrs::hdu::data::DataOwned::I16(it) => {
Data::I16(Cow::Owned(it.collect()))
},
fitsrs::hdu::data::DataOwned::I32(it) => {
Data::I32(Cow::Owned(it.collect()))
},
fitsrs::hdu::data::DataOwned::I64(it) => {
let data = it.map(|v| v as i32).collect();
Data::I32(Cow::Owned(data))
},
fitsrs::hdu::data::DataOwned::F32(it) => {
Data::F32(Cow::Owned(it.collect()))
},
fitsrs::hdu::data::DataOwned::F64(it) => {
let data = it.map(|v| v as f32).collect();
Data::F32(Cow::Owned(data))
}
};
Ok(Self {
// Tile size
size: Vector2::new(*width as i32, *height as i32),
// Allocation info of the layout
data
})
}
pub fn get_size(&self) -> &Vector2<i32> { pub fn get_size(&self) -> &Vector2<i32> {
&self.size &self.size
} }
} }
impl Fits<'static> { /*impl Fits<'static> {
pub async fn from_async_reader(reader: IntoAsyncRead<'static>) -> Result<Self, JsValue> { pub async fn from_async_reader(reader: IntoAsyncRead<'static>) -> Result<Self, JsValue> {
let fitsrs::fits::AsyncFits { hdu: AsyncHDU { data, header } } = fitsrs::fits::AsyncFits::from_reader(futures::io::BufReader::new(reader)) let fitsrs::fits::AsyncFits { hdu: AsyncHDU { data, header } } = fitsrs::fits::AsyncFits::from_reader(futures::io::BufReader::new(reader))
.await .await
@@ -168,7 +125,8 @@ impl Fits<'static> {
data data
}) })
} }
} }*/
use crate::Texture2DArray; use crate::Texture2DArray;
use crate::image::Image; use crate::image::Image;
impl Image for Fits<'_> { impl Image for Fits<'_> {

View File

@@ -211,7 +211,7 @@ where
} }
} }
use std::rc::Rc; use std::{rc::Rc, io::Cursor};
impl<I> Image for Rc<I> impl<I> Image for Rc<I>
where where
I: Image, I: Image,
@@ -304,7 +304,8 @@ impl Image for ImageType {
unsafe { raw_bytes.set_len(num_bytes); } unsafe { raw_bytes.set_len(num_bytes); }
raw_bytes_buf.copy_to(&mut raw_bytes[..]); raw_bytes_buf.copy_to(&mut raw_bytes[..]);
let fits_img = Fits::from_byte_slice(raw_bytes.as_slice())?; let mut bytes_reader = Cursor::new(raw_bytes.as_slice());
let fits_img = Fits::from_byte_slice(&mut bytes_reader)?;
fits_img.tex_sub_image_3d(textures, offset)? fits_img.tex_sub_image_3d(textures, offset)?
}, },
ImageType::Canvas { canvas } => canvas.tex_sub_image_3d(textures, offset)?, ImageType::Canvas { canvas } => canvas.tex_sub_image_3d(textures, offset)?,

View File

@@ -16,7 +16,7 @@ serde = { version = "^1.0.59", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"
serde-wasm-bindgen = "0.4" serde-wasm-bindgen = "0.4"
num = "*" num = "*"
fitsrs = { package = "fitsrs", git = 'https://github.com/cds-astro/fitsrs', branch = 'master' } fitsrs = "0.2.6"
num-traits = "0.2.14" num-traits = "0.2.14"
image-decoder = { package = "image", version = "0.24.*", default-features = false, features = ["jpeg", "png"] } image-decoder = { package = "image", version = "0.24.*", default-features = false, features = ["jpeg", "png"] }
egui = "0.15.0" egui = "0.15.0"

View File

@@ -667,7 +667,7 @@ impl App {
self.layers.refresh_views(&mut self.camera); self.layers.refresh_views(&mut self.camera);
} }
if self.request_for_new_tiles && Time::now() - self.last_time_request_for_new_tiles > DeltaTime::from(500_f32) { if self.request_for_new_tiles && Time::now() - self.last_time_request_for_new_tiles > DeltaTime::from(100_f32) {
self.look_for_new_tiles()?; self.look_for_new_tiles()?;
self.request_for_new_tiles = false; self.request_for_new_tiles = false;
@@ -932,117 +932,122 @@ impl App {
let mut hdu_ext_idx = 0; let mut hdu_ext_idx = 0;
let mut images_params = vec![]; let mut images_params = vec![];
if let Ok(image) = Image::from_fits_hdu_async(&gl, &mut hdu.0).await { match Image::from_fits_hdu_async(&gl, &mut hdu.0).await {
let layer_ext = layer.clone(); Ok(image) => {
let url_ext = url.clone(); let layer_ext = layer.clone();
let url_ext = url.clone();
let fits = ImageCfg {
image: image,
layer: layer_ext,
url: url_ext,
meta: meta.clone()
};
fits_sender.send(fits).await let fits = ImageCfg {
.unwrap(); image: image,
layer: layer_ext,
// Wait for the ack here url: url_ext,
let image_params = ack_recv.recv().await meta: meta.clone()
.map_err(|_| JsValue::from_str("Problem receiving fits"))?; };
images_params.push(image_params);
let mut hdu_ext = hdu.next().await;
// Continue parsing the file extensions here
while let Ok(Some(mut xhdu)) = hdu_ext {
match &mut xhdu {
AsyncXtensionHDU::Image(xhdu_img) => {
match Image::from_fits_hdu_async(&gl, xhdu_img).await {
Ok(image) => {
let layer_ext = layer.clone() + "_ext_" + &format!("{hdu_ext_idx}");
let url_ext = url.clone() + "_ext_" + &format!("{hdu_ext_idx}");
let fits_ext = ImageCfg {
image: image,
layer: layer_ext,
url: url_ext,
meta: meta.clone()
};
fits_sender.send(fits_ext).await
.unwrap();
let image_params = ack_recv.recv().await
.map_err(|_| JsValue::from_str("Problem receving fits"))?;
images_params.push(image_params);
},
Err(error) => {
al_core::log::console_warn(&
format!("The extension {hdu_ext_idx} has not been parsed, reason:")
);
al_core::log::console_warn(error);
}
}
},
_ => {
al_core::log::console_warn(&
format!("The extension {hdu_ext_idx} is a BinTable/AsciiTable and is thus discarded")
);
}
}
hdu_ext_idx += 1;
hdu_ext = xhdu.next().await;
}
} else {
let mut hdu_ext = hdu.next().await;
while let Ok(Some(mut xhdu)) = hdu_ext {
match &mut xhdu {
AsyncXtensionHDU::Image(xhdu_img) => {
match Image::from_fits_hdu_async(&gl, xhdu_img).await {
Ok(image) => {
let layer_ext = layer.clone() + "_ext_" + &format!("{hdu_ext_idx}");
let url_ext = url.clone() + "_ext_" + &format!("{hdu_ext_idx}");
let fits_ext = ImageCfg { fits_sender.send(fits).await
image: image, .unwrap();
layer: layer_ext,
url: url_ext, // Wait for the ack here
meta: meta.clone() let image_params = ack_recv.recv().await
}; .map_err(|_| JsValue::from_str("Problem receiving fits"))?;
fits_sender.send(fits_ext).await images_params.push(image_params);
.unwrap();
let mut hdu_ext = hdu.next().await;
let image_params = ack_recv.recv().await
.map_err(|_| JsValue::from_str("Problem receving fits"))?; // Continue parsing the file extensions here
while let Ok(Some(mut xhdu)) = hdu_ext {
images_params.push(image_params); match &mut xhdu {
}, AsyncXtensionHDU::Image(xhdu_img) => {
Err(error) => { match Image::from_fits_hdu_async(&gl, xhdu_img).await {
al_core::log::console_warn(& Ok(image) => {
format!("The extension {hdu_ext_idx} has not been parsed, reason:") let layer_ext = layer.clone() + "_ext_" + &format!("{hdu_ext_idx}");
); let url_ext = url.clone() + "_ext_" + &format!("{hdu_ext_idx}");
al_core::log::console_warn(error); let fits_ext = ImageCfg {
image: image,
layer: layer_ext,
url: url_ext,
meta: meta.clone()
};
fits_sender.send(fits_ext).await
.unwrap();
let image_params = ack_recv.recv().await
.map_err(|_| JsValue::from_str("Problem receving fits"))?;
images_params.push(image_params);
},
Err(error) => {
al_core::log::console_warn(&
format!("The extension {hdu_ext_idx} has not been parsed, reason:")
);
al_core::log::console_warn(error);
}
} }
},
_ => {
al_core::log::console_warn(&
format!("The extension {hdu_ext_idx} is a BinTable/AsciiTable and is thus discarded")
);
} }
},
_ => {
al_core::log::console_warn(&
format!("The extension {hdu_ext_idx} is a BinTable/AsciiTable and is thus discarded")
);
} }
hdu_ext_idx += 1;
hdu_ext = xhdu.next().await;
} }
},
Err(error) => {
al_core::log::console_warn(error);
hdu_ext_idx += 1; let mut hdu_ext = hdu.next().await;
hdu_ext = xhdu.next().await; while let Ok(Some(mut xhdu)) = hdu_ext {
match &mut xhdu {
AsyncXtensionHDU::Image(xhdu_img) => {
match Image::from_fits_hdu_async(&gl, xhdu_img).await {
Ok(image) => {
let layer_ext = layer.clone() + "_ext_" + &format!("{hdu_ext_idx}");
let url_ext = url.clone() + "_ext_" + &format!("{hdu_ext_idx}");
let fits_ext = ImageCfg {
image: image,
layer: layer_ext,
url: url_ext,
meta: meta.clone()
};
fits_sender.send(fits_ext).await
.unwrap();
let image_params = ack_recv.recv().await
.map_err(|_| JsValue::from_str("Problem receving fits"))?;
images_params.push(image_params);
},
Err(error) => {
al_core::log::console_warn(&
format!("The extension {hdu_ext_idx} has not been parsed, reason:")
);
al_core::log::console_warn(error);
}
}
},
_ => {
al_core::log::console_warn(&
format!("The extension {hdu_ext_idx} is a BinTable/AsciiTable and is thus discarded")
);
}
}
hdu_ext_idx += 1;
hdu_ext = xhdu.next().await;
}
} }
} }
@@ -1097,7 +1102,6 @@ impl App {
let new_img_fmt = meta.img_format; let new_img_fmt = meta.img_format;
self.layers.set_layer_cfg(layer.clone(), meta, &self.camera, &self.projection)?; self.layers.set_layer_cfg(layer.clone(), meta, &self.camera, &self.projection)?;
if old_meta.img_format != new_img_fmt { if old_meta.img_format != new_img_fmt {
// The image format has been changed // The image format has been changed
let hips = self.layers let hips = self.layers

View File

@@ -158,7 +158,7 @@ fn build_range_indices(it: impl Iterator<Item=(u64, f32)> + Clone) -> Vec<RangeI
} }
#[allow(dead_code)] #[allow(dead_code)]
pub fn get_grid_vertices(xy_min: &(f64, f64), xy_max: &(f64, f64), max_tex_size: u64, num_tri_per_tex_patch: u64, camera: &CameraViewPort, wcs: &WCS, projection: &ProjectionType) -> (Vec<[f32; 2]>, Vec<[f32; 2]>, Vec<u32>, Vec<u32>) { pub fn get_grid_vertices(xy_min: &(f64, f64), xy_max: &(f64, f64), max_tex_size: u64, num_tri_per_tex_patch: u64, camera: &CameraViewPort, wcs: &WCS, projection: &ProjectionType) -> (Vec<[f32; 2]>, Vec<[f32; 2]>, Vec<u16>, Vec<u32>) {
let (x_it, y_it) = get_grid_params(xy_min, xy_max, max_tex_size, num_tri_per_tex_patch); let (x_it, y_it) = get_grid_params(xy_min, xy_max, max_tex_size, num_tri_per_tex_patch);
let idx_x_ranges = build_range_indices(x_it.clone()); let idx_x_ranges = build_range_indices(x_it.clone());
@@ -255,7 +255,7 @@ impl<'a> BuildPatchIndicesIter<'a> {
} }
impl<'a> Iterator for BuildPatchIndicesIter<'a> { impl<'a> Iterator for BuildPatchIndicesIter<'a> {
type Item = [(u32, u32, u32); 2]; type Item = [(u16, u16, u16); 2];
fn next(&mut self) -> Option<Self::Item> { fn next(&mut self) -> Option<Self::Item> {
if self.cur_idx_x == *self.idx_x_range.end() { if self.cur_idx_x == *self.idx_x_range.end() {
@@ -297,8 +297,8 @@ impl<'a> Iterator for BuildPatchIndicesIter<'a> {
self.next() // crossing projection tri self.next() // crossing projection tri
} else { } else {
Some([ Some([
(idx_tl as u32, idx_tr as u32, idx_bl as u32), (idx_tl as u16, idx_tr as u16, idx_bl as u16),
(idx_tr as u32, idx_br as u32, idx_bl as u32) (idx_tr as u16, idx_br as u16, idx_bl as u16)
]) ])
} }
}, },

View File

@@ -43,7 +43,7 @@ pub struct Image {
/// The vertex array object of the screen in NDC /// The vertex array object of the screen in NDC
vao: VertexArrayObject, vao: VertexArrayObject,
num_indices: Vec<u32>, num_indices: Vec<u32>,
indices: Vec<u32>, indices: Vec<u16>,
pos: Vec<f32>, pos: Vec<f32>,
uv: Vec<f32>, uv: Vec<f32>,
@@ -84,8 +84,6 @@ impl Image {
if naxis == 0 { if naxis == 0 {
return Err(JsValue::from_str("The fits is empty, NAXIS=0")); return Err(JsValue::from_str("The fits is empty, NAXIS=0"));
} else if naxis != 2 {
return Err(JsValue::from_str("Multi dimentional cubes are not supported"))
} }
let scale = header let scale = header
@@ -202,7 +200,7 @@ impl Image {
// Set the element buffer // Set the element buffer
.add_element_buffer( .add_element_buffer(
WebGl2RenderingContext::DYNAMIC_DRAW, WebGl2RenderingContext::DYNAMIC_DRAW,
VecData::<u32>(&indices), VecData::<u16>(&indices),
) )
.unbind(); .unbind();
#[cfg(feature = "webgl1")] #[cfg(feature = "webgl1")]
@@ -222,7 +220,7 @@ impl Image {
// Set the element buffer // Set the element buffer
.add_element_buffer( .add_element_buffer(
WebGl2RenderingContext::DYNAMIC_DRAW, WebGl2RenderingContext::DYNAMIC_DRAW,
VecData::<u32>(&indices), VecData::<u16>(&indices),
) )
.unbind(); .unbind();
@@ -417,7 +415,7 @@ impl Image {
) )
.update_element_array( .update_element_array(
WebGl2RenderingContext::DYNAMIC_DRAW, WebGl2RenderingContext::DYNAMIC_DRAW,
VecData::<u32>(&self.indices), VecData::<u16>(&self.indices),
); );
Ok(()) Ok(())
@@ -464,8 +462,8 @@ impl Image {
.draw_elements_with_i32( .draw_elements_with_i32(
WebGl2RenderingContext::TRIANGLES, WebGl2RenderingContext::TRIANGLES,
Some(num_indices), Some(num_indices),
WebGl2RenderingContext::UNSIGNED_INT, WebGl2RenderingContext::UNSIGNED_SHORT,
((off_indices as usize) * std::mem::size_of::<u32>()) as i32, ((off_indices as usize) * std::mem::size_of::<u16>()) as i32,
); );
off_indices += self.num_indices[idx]; off_indices += self.num_indices[idx];

View File

@@ -558,15 +558,32 @@ impl Layers {
camera: &CameraViewPort, camera: &CameraViewPort,
projection: &ProjectionType, projection: &ProjectionType,
) -> Result<(), JsValue> { ) -> Result<(), JsValue> {
if let Some(meta_old) = self.meta.get(&layer) { let layer_ref = layer.as_str();
if let Some(meta_old) = self.meta.get(layer_ref) {
if !meta_old.visible() && meta.visible() { if !meta_old.visible() && meta.visible() {
if let Some(survey) = self.get_mut_hips_from_layer(&layer) { if let Some(survey) = self.get_mut_hips_from_layer(layer_ref) {
survey.recompute_vertices(camera, projection); survey.recompute_vertices(camera, projection);
} }
if let Some(image) = self.get_mut_image_from_layer(&layer) { if let Some(image) = self.get_mut_image_from_layer(layer_ref) {
image.recompute_vertices(camera, projection)?; image.recompute_vertices(camera, projection)?;
} }
} else if meta_old.visible() && !meta.visible() {
// There is an important point here, if we hide a specific layer
// then we must recompute the vertices of the layers underneath
let layer_idx = self.layers.iter().position(|l| l == layer_ref)
.ok_or(JsValue::from_str("Expect the layer to be found!"))?;
for idx in 0..layer_idx {
let cur_layer = self.layers[idx].clone();
if let Some(survey) = self.get_mut_hips_from_layer(&cur_layer) {
survey.recompute_vertices(camera, projection);
} else if let Some(image) = self.get_mut_image_from_layer(&cur_layer) {
image.recompute_vertices(camera, projection)?;
}
}
} }
} }

View File

@@ -165,7 +165,7 @@ export let ImageFITS = (function () {
// There is at least one entry in imageParams // There is at least one entry in imageParams
self.added = true; self.added = true;
self.children = []; self.children = [];
let hduIdx = 0; let hduIdx = 0;
imagesParams.forEach((imageParams) => { imagesParams.forEach((imageParams) => {
// This fits has HDU extensions // This fits has HDU extensions

View File

@@ -17,6 +17,7 @@ ImageLayer.update = function (layer) {
name: layer.name, name: layer.name,
url: layer.url, url: layer.url,
options: options, options: options,
subtype: layer.subtype,
}); });
} }
} }
@@ -27,18 +28,21 @@ ImageLayer.LAYERS = [
name: "2MASS colored", name: "2MASS colored",
url: "https://alasky.cds.unistra.fr/2MASS/Color", url: "https://alasky.cds.unistra.fr/2MASS/Color",
maxOrder: 9, maxOrder: 9,
subtype: "survey",
}, },
{ {
id: "P/DSS2/color", id: "P/DSS2/color",
name: "DSS colored", name: "DSS colored",
url: "https://alasky.cds.unistra.fr/DSS/DSSColor", url: "https://alasky.cds.unistra.fr/DSS/DSSColor",
maxOrder: 9, maxOrder: 9,
subtype: "survey",
}, },
{ {
id: "P/DSS2/red", id: "P/DSS2/red",
name: "DSS2 Red (F+R)", name: "DSS2 Red (F+R)",
url: "https://alasky.cds.unistra.fr/DSS/DSS2Merged", url: "https://alasky.cds.unistra.fr/DSS/DSS2Merged",
maxOrder: 9, maxOrder: 9,
subtype: "survey",
// options // options
options: { options: {
minCut: 1000.0, minCut: 1000.0,
@@ -53,6 +57,7 @@ ImageLayer.LAYERS = [
name: "Density map for Gaia EDR3 (I/350/gaiaedr3)", name: "Density map for Gaia EDR3 (I/350/gaiaedr3)",
url: "https://alasky.cds.unistra.fr/ancillary/GaiaEDR3/density-map", url: "https://alasky.cds.unistra.fr/ancillary/GaiaEDR3/density-map",
maxOrder: 7, maxOrder: 7,
subtype: "survey",
// options // options
options: { options: {
minCut: 0, minCut: 0,
@@ -67,6 +72,7 @@ ImageLayer.LAYERS = [
name: "PanSTARRS DR1 g", name: "PanSTARRS DR1 g",
url: "https://alasky.cds.unistra.fr/Pan-STARRS/DR1/g", url: "https://alasky.cds.unistra.fr/Pan-STARRS/DR1/g",
maxOrder: 11, maxOrder: 11,
subtype: "survey",
// options // options
options: { options: {
minCut: -34, minCut: -34,
@@ -81,24 +87,28 @@ ImageLayer.LAYERS = [
name: "PanSTARRS DR1 color", name: "PanSTARRS DR1 color",
url: "https://alasky.cds.unistra.fr/Pan-STARRS/DR1/color-z-zg-g", url: "https://alasky.cds.unistra.fr/Pan-STARRS/DR1/color-z-zg-g",
maxOrder: 11, maxOrder: 11,
subtype: "survey",
}, },
{ {
id: "P/DECaPS/DR1/color", id: "P/DECaPS/DR1/color",
name: "DECaPS DR1 color", name: "DECaPS DR1 color",
url: "https://alasky.cds.unistra.fr/DECaPS/DR1/color", url: "https://alasky.cds.unistra.fr/DECaPS/DR1/color",
maxOrder: 11, maxOrder: 11,
subtype: "survey",
}, },
{ {
id: "P/Fermi/color", id: "P/Fermi/color",
name: "Fermi color", name: "Fermi color",
url: "https://alasky.cds.unistra.fr/Fermi/Color", url: "https://alasky.cds.unistra.fr/Fermi/Color",
maxOrder: 3, maxOrder: 3,
subtype: "survey",
}, },
{ {
id: "P/Finkbeiner", id: "P/Finkbeiner",
name: "Halpha", name: "Halpha",
url: "https://alasky.cds.unistra.fr/FinkbeinerHalpha", url: "https://alasky.cds.unistra.fr/FinkbeinerHalpha",
maxOrder: 3, maxOrder: 3,
subtype: "survey",
// options // options
options: { options: {
minCut: -10, minCut: -10,
@@ -112,30 +122,35 @@ ImageLayer.LAYERS = [
name: "GALEXGR6_7 NUV", name: "GALEXGR6_7 NUV",
url: "http://alasky.cds.unistra.fr/GALEX/GALEXGR6_7_NUV/", url: "http://alasky.cds.unistra.fr/GALEX/GALEXGR6_7_NUV/",
maxOrder: 8, maxOrder: 8,
subtype: "survey",
}, },
{ {
id: "P/IRIS/color", id: "P/IRIS/color",
name: "IRIS colored", name: "IRIS colored",
url: "https://alasky.cds.unistra.fr/IRISColor", url: "https://alasky.cds.unistra.fr/IRISColor",
maxOrder: 3, maxOrder: 3,
subtype: "survey",
}, },
{ {
id: "P/Mellinger/color", id: "P/Mellinger/color",
name: "Mellinger colored", name: "Mellinger colored",
url: "https://alasky.cds.unistra.fr/MellingerRGB", url: "https://alasky.cds.unistra.fr/MellingerRGB",
maxOrder: 4, maxOrder: 4,
subtype: "survey",
}, },
{ {
id: "P/SDSS9/color", id: "P/SDSS9/color",
name: "SDSS9 colored", name: "SDSS9 colored",
url: "https://alasky.cds.unistra.fr/SDSS/DR9/color", url: "https://alasky.cds.unistra.fr/SDSS/DR9/color",
maxOrder: 10, maxOrder: 10,
subtype: "survey",
}, },
{ {
id: "P/SDSS9/g", id: "P/SDSS9/g",
name: "SDSS9 band-g", name: "SDSS9 band-g",
url: "https://alasky.cds.unistra.fr/SDSS/DR9/band-g", url: "https://alasky.cds.unistra.fr/SDSS/DR9/band-g",
maxOrder: 10, maxOrder: 10,
subtype: "survey",
options: { options: {
stretch: 'asinh', stretch: 'asinh',
colormap: "redtemperature", colormap: "redtemperature",
@@ -147,12 +162,14 @@ ImageLayer.LAYERS = [
name: "IRAC color I1,I2,I4 - (GLIMPSE, SAGE, SAGE-SMC, SINGS)", name: "IRAC color I1,I2,I4 - (GLIMPSE, SAGE, SAGE-SMC, SINGS)",
url: "http://alasky.cds.unistra.fr/Spitzer/SpitzerI1I2I4color/", url: "http://alasky.cds.unistra.fr/Spitzer/SpitzerI1I2I4color/",
maxOrder: 9, maxOrder: 9,
subtype: "survey",
}, },
{ {
id: "P/VTSS/Ha", id: "P/VTSS/Ha",
name: "VTSS-Ha", name: "VTSS-Ha",
url: "https://alasky.cds.unistra.fr/VTSS/Ha", url: "https://alasky.cds.unistra.fr/VTSS/Ha",
maxOrder: 3, maxOrder: 3,
subtype: "survey",
options: { options: {
minCut: -10.0, minCut: -10.0,
maxCut: 100.0, maxCut: 100.0,
@@ -165,12 +182,14 @@ ImageLayer.LAYERS = [
name: "XMM PN colored", name: "XMM PN colored",
url: "https://alasky.cds.unistra.fr/cgi/JSONProxy?url=https://saada.unistra.fr/PNColor", url: "https://alasky.cds.unistra.fr/cgi/JSONProxy?url=https://saada.unistra.fr/PNColor",
maxOrder: 7, maxOrder: 7,
subtype: "survey",
}, },
{ {
id: "P/allWISE/color", id: "P/allWISE/color",
name: "AllWISE color", name: "AllWISE color",
url: "https://alasky.cds.unistra.fr/AllWISE/RGB-W4-W2-W1/", url: "https://alasky.cds.unistra.fr/AllWISE/RGB-W4-W2-W1/",
maxOrder: 8, maxOrder: 8,
subtype: "survey",
}, },
{ {
id: "P/GLIMPSE360", id: "P/GLIMPSE360",
@@ -178,6 +197,7 @@ ImageLayer.LAYERS = [
// This domain is not giving the CORS headers // This domain is not giving the CORS headers
// We need to query by with a proxy equipped with CORS header. // We need to query by with a proxy equipped with CORS header.
url: "https://alasky.cds.unistra.fr/cgi/JSONProxy?url=https://www.spitzer.caltech.edu/glimpse360/aladin/data", url: "https://alasky.cds.unistra.fr/cgi/JSONProxy?url=https://www.spitzer.caltech.edu/glimpse360/aladin/data",
subtype: "survey",
options: { options: {
maxOrder: 9, maxOrder: 9,
imgFormat: "jpg", imgFormat: "jpg",

View File

@@ -51,7 +51,6 @@ export let URLBuilder = (function() {
}, },
buildVizieRCSURL: function(vizCatId, target, radiusDegrees, options) { buildVizieRCSURL: function(vizCatId, target, radiusDegrees, options) {
console.log(target)
if (target && (typeof target === "object")) { if (target && (typeof target === "object")) {
if ('ra' in target && 'dec' in target) { if ('ra' in target && 'dec' in target) {
var coo = new Coo(target.ra, target.dec, 7); var coo = new Coo(target.ra, target.dec, 7);
@@ -65,6 +64,8 @@ export let URLBuilder = (function() {
maxNbSources = parseInt(options.limit); maxNbSources = parseInt(options.limit);
} }
return 'https://vizier.unistra.fr/viz-bin/votable/A?-source=' + vizCatId + '&-c=' + encodeURIComponent(target) + '&-out.max=' + maxNbSources + '&-c.rd=' + radiusDegrees; return 'https://vizier.unistra.fr/viz-bin/votable/A?-source=' + vizCatId + '&-c=' + encodeURIComponent(target) + '&-out.max=' + maxNbSources + '&-c.rd=' + radiusDegrees;
//return 'https://vizier.unistra.fr/viz-bin/conesearch/' + vizCatId + '?ra=' + target.ra + '&dec=' + target.dec + '&sr=' + radiusDegrees;
}, },
buildSkyBotCSURL: function(ra, dec, radius, epoch, queryOptions) { buildSkyBotCSURL: function(ra, dec, radius, epoch, queryOptions) {

View File

@@ -871,10 +871,10 @@ export let View = (function () {
// touchpad // touchpad
newTime = new Date().getTime(); newTime = new Date().getTime();
if ( newTime - oldTime > 20 ) { //if ( newTime - oldTime > 20 ) {
triggerZoom(0.005); triggerZoom(0.002);
oldTime = new Date().getTime(); oldTime = new Date().getTime();
} //}
} else { } else {
// mouse // mouse
triggerZoom(0.007); triggerZoom(0.007);

View File

@@ -160,7 +160,7 @@ export class HiPSLayer {
let layer; let layer;
// Max order is specific for surveys // Max order is specific for surveys
if (!cfg.maxOrder) { if (cfg.subtype === "fits") {
// FITS // FITS
layer = self.aladin.createImageFITS( layer = self.aladin.createImageFITS(
cfg.url, cfg.url,