Giter VIP home page Giter VIP logo

js9's Introduction

Goodbye to astrophysics!

My personal aim in writing astrophysics software has been to understand practically a strange, wonderful notion of J.G. Bennett:

In our usual modes of thought we assume that being comes before doing or that being is somehow independent of action ... The truth is just the opposite. We are nothing at all, it is the action that makes us. Our being is an illusion; it is the action that is really there ... We can hardly bring ourselves to see that there are doings who be things ...

And it was A. N. Whitehead who supplied a key to understanding our creative role in a process-centered world:

... Creativity achieves its supreme task of transforming disjointed multiplicity, with its diversities in opposition, into ... unity, with its diversities in contrast ...

If I have produced anything of value, most of the credit must be given to the practical wisdom contained in these ideas. That I so often fell short is, of course, solely my responsibiity.

Eric Mandel
July 1, 2022

js9's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

js9's Issues

Spinner when loading image

Hi,
I have noticed that, when I try to load an image by using File-->open local file , the waiting gif does not appear, while it works well when I use a hyperlink. Is it a very minor bug or I'm wrong in something?

Thanks
G

Region positions with respect to Image

When zooming into an image, using the mouse wheel, the region positions with respect to the pixels seem to change. I made a screencast showing the issue:

screencast
Since it sometimes 'jumps' it almost looks like a rounding error to me.

problem using CGI helper on non-privileged port

I ran in a snag when I was trying to setup a local, server-side analysis site. For testing, I'm using the python built-in web server (CGI enabled)

python -m CGIHTTPServer

the problem is that it runs on the non-privileged port 8000 (variable). This causes problems because the URL that js9 creates for the helperCGI doesn't include the port number

js9/js9.js

Line 7618 in 4da1d70

this.url = JS9.globalOpts.helperProtocol + document.domain;

since there isn't a web-server running on :80 , the cgi kept failing. I tried setting the helperPort but that didn't seem to do anything.

Looking at the code, it looks like there's support for a globalOpts.helperURL that I could use.(?) But I'm curious if there's a reason not to use the location.port as part of the CGI URL?

Kenny

JS9 ERROR: could not preload image(s): .....

@ericmandel Is there something to set up before making js9preload.html works and actually Preload the different files (fits and http) that should be displayed?

For some reason, I cannot manage to make it work and get this JS9 ERROR: could not preload image(s): for all images (+ please check the url/pathname for local images). I've also tried on a local image taken on my computer but it doesn't work either.

I should mention that I'm using Firefox and tried both the master branch and version 2.0.2 of js9, and that loading an image from the menu bar with File -> open local file... is working fine.

Thanks for your help!

Open alternative WCS

The desktop version of DS9 supports multiple WCS in the same file, e.g. WCS a - z. It would be good to have this support in JS9 as well.

Simple pan / zoom example image

@ericmandel - Is is possible / easy to build something like this with JS9?
http://aladin.u-strasbg.fr/AladinLite/doc/API/examples/marker-creation/

I.e. an image that can be panned / zoomed in a simple / nice way?
(but otherwise no cruft, i.e. no menu, controls, ...)

What JS / web technology is JS9 using to draw the images? All in Canvas? Using any other JS library or directly? (I couldn't find that info in the docs ... maybe worth adding or putting it more prominently?)

(The issue with Aladin lite is that it can't load simple FITS file, but requires conversion to HIPS as far as I know.)

Passing a base64 encoded FITS file requires filename to be explicitly passed

The following call does not work (base64 code shortened for readability):

JS9.Load("U0lNUExFICA9ICAgICA...");

but everything works fine if I explicitly pass a filename in the options:

JS9.Load("U0lNUExFICA9ICAgICA...", {"filename":"test.fits"});

However, this is not mentioned in the documentation. Would it be possible to either fix this so that the filename is not required, or update the documentation to mention this requirement?

(cc @gogrean)

can js9Helper be made to print the port it's binding to?

Under the Jupyter scenario, I'm going to need to run js9Helper.js on a per-user basis. This means somehow allocating a unique port for it to listen on. I can set helperPort to 0 which, presumably, causes it to pick a random unused port, but then I have no way of finding out what port was picked. Could you please add a print statement with the port number so that I can parse this out?

js9-allinone.js looks for port 2718

The js9-allinone.js is trying to access port 2718 which is the default port for JS9Helper. An error message is outputted to the console:

js9-allinone.js:21

GET http://[host web address]:2718/socket.io/socket.io.js?_=1540554588423 net::ERR_CONNECTION_REFUSED

send @ js9-allinone.js:21
ajax @ js9-allinone.js:21
g @ js9-allinone.js:3498
b.Helper.connect @ js9-allinone.js:3503
b.Helper @ js9-allinone.js:3496
b.init @ js9-allinone.js:3834
(anonymous) @ js9-allinone.js:3894
j @ js9-allinone.js:19
k @ js9-allinone.js:19
setTimeout (async)
(anonymous) @ js9-allinone.js:19
i @ js9-allinone.js:19
fireWith @ js9-allinone.js:19
fire @ js9-allinone.js:19
i @ js9-allinone.js:19
fireWith @ js9-allinone.js:19
ready @ js9-allinone.js:19
S @ js9-allinone.js:20`

Should the js9-allinone.js be completely stand-alone?

TypeError: Argument 1 of CanvasRenderingContext2D.createImageData is not a finite floating-point value.

Hi Eric,

I've upgraded from v1.5 to v1.8 and get this error when using either JS9.Preload or JS9.Load to load an initial image into JS9. This only happens when loading a PNG.

The error is in the createImageData call below:

    // create an RGB image if necessary
    if( !rgb.img                         ||    
        (rgb.img.width  !== sect.width)  ||
        (rgb.img.height !== sect.height) ){
        rgb.img = ctx.createImageData(sect.width, sect.height);
    }

And the sect object looks like this:

Object { zoom: 1, ozoom: 1, xcen: NaN, ycen: NaN, width: NaN, height: NaN, x0: NaN, y0: NaN, x1: NaN, y1: NaN }

Any idea if I'm doing something wrong here?

JS9 ERROR: image too large for zscale

Hi Eric,

Another issue I ran into while upgrading from v1.1 to v1.5 is that I get this error when using the "set limits to zscale" in the scaling menu even on very tiny images (1x1 for example). It's possible that I'm doing something wrong but maybe this is a bug?

Let me know if you need any more info from my side.

configure script not finding cfitsio on Ubuntu

I've got the standard libcfitsio3-dev Ubuntu package installed, but I couldn't get configure to recognize it. Tried --with-cfitsio=/usr and the like, but it wasn't finding it.

I was forced to build a second copy of cfitsio from scratch, and install it to /usr/local, the config script could then find it there.

This is probably due to the directory layout in Debian/Ubuntu, see below. I don't think the script knows to look in x86_64-linux-gnu.

$ dpkg -L libcfitsio-dev
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/libcfitsio-dev
/usr/share/doc/libcfitsio-dev/copyright
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libcfitsio.a
/usr/lib/x86_64-linux-gnu/pkgconfig
/usr/lib/x86_64-linux-gnu/pkgconfig/cfitsio.pc
/usr/include
/usr/include/fitsio2.h
/usr/include/drvrsmem.h
/usr/include/fitsio.h
/usr/include/longnam.h
/usr/share/doc/libcfitsio-dev/changelog.Debian.gz
/usr/lib/x86_64-linux-gnu/libcfitsio.so

multi-extension fits files

Hi, this looks very promising, and I would love to implement this in a site I'm developing. I understand it's a scaled down version of DS9, but I have a few questions regarding some aspects of it.

  • Is it possible to view/load other extensions of a FITS file in JS9? I cannot find any documentation on how to do this. It seems to only load the first extension by default.
  • Can JS9 handle IFU data as DS9 can? When loading a spectral cube, DS9 gives me a pop-up slider to control the 3rd dimension (NAXIS3) from the given extension. Is this capability available in JS9? I tried it and it doesn't appear so at first glance.

need a "hard fail" mode for fits2fits

Related to #41: I keep finding novel ways to make the fits2fits functionality silently fail and fall back to downloading full images. While I can see the value of this from a user's point of view, for a developer this behaviour can be very confusing, since it can only really be detected in the network console. Also, programmatically, if my code is e.g. trying to load a rebinned image of a certain size, it expects either a correctly sized image to come back, or a full failure -- it's very hard to deal with the "in between" situation when a full-resolution image arrives instead.

So I guess something similar to globalOpts.requireHelper would be nice. If true, and fits2fits fails for whatever reason, do not fall back to full images, but report an error instead.

Which raises another interesting issue -- are we going to need error codes from e.g. JS9.Load() at some point? At the moment I'm happy with a "hard fail" dialog, but at some point the partner displays code might grow sophisticated enough that I'll need to detect errors programmatically...

GetLoadStatus bug ?

Hi,
when using the GetLoadStatus function, I get a JavaScript error 'id.split is not a function'.
(Line 17864 in js9.js)
After a bit of debugging it seems that
id0 = id.id.split('/').reverse()[0];
fixes it.
However, I've no experience in JavaScript, so I didn't create a PR etc. since I'm not sure if this is the 'correct' fix for the problem.

p.s. this happened after I updated from js9 version 2.0.1 to 2.1

Zscale public API setting

Is there a function to enable one of the zscale options (z1/z2 or (z1/data max) from the public API?

Multi-Extension fits file display.

Hi,

I'm pretty new to JS9 and I want to use it in my website (server side). I've multi extension fits cubes and I want to play each extension for some time and then switch to the next extension.

ie. if my multi-extensional fits file has 7 extensions, I want to preload the window with the primary extension and then play through 1 to 7 with a time delay.

The entire fits file has to be refreshed whenever there is an update to the file or a new file added. For this, I think I can use JS9.RefreshImage() and then again play through the extensions.

Can you please suggest me how I can do this using JS9.

Region jumps back to original position

Hi Eric,

When I add a region to the display and try to move it while doing a bunch of RefreshImage calls it keeps jumping back to its original position. This is something that I think was possibly fixed in the past, but seems to have returned somewhere between v1.3 and v1.5.

In v1.8 RefreshImage seems to have changed quite a bit but looks more or less the same. I noticed that the variable doreg (which I think used to be dobin) is now always set to true with the old code commented out just above. Reverting that to doreg = (this.binning.obin !== this.binning.bin); seems to fix the issue.

Issues loading large multi-extension files

Hello Eric,

The website I'm working on needs to display large multi-extension fits files which are been dynamically updated throughout the exposure time.

Whenever I'm testing it live, the JS9 plug in is waiting for the entire multi-extension file to be written completely on the hard disk (ie, for the entire exposure time), and then it takes an additional time to load it. Our files consists of an average of 100- 150 hdus.

We are looking for a dynamic display in the JS9 plugin window which will load the latest extension available.

Please help with this issue.

Adding too many colormaps breaks the Colors menu

I've loaded up a whole slew of colormaps programmatically using JS9.AddColormap()... basically trying to have support for all the colormaps defined by matplotlib (which is a few dozen). This works just fine, but now the Colors menu has become unmanageably long. Is there a way to make the added colormaps appear in the "more colormaps..." submenu, instead of the main menu? Or else restrict which colormaps actually appear in the menu?

Option to lock the scale between multiple images

I've got the partners code working with multiple images now. A very useful use case is to lock the same color/scale across multiple images, then to compare them using blink (or the next/prev image command). Would this be a difficult thing to add to the "Scale" menu? I can also implement an external widget for it in the partners code -- I have a pretty clear idea of how to do it now -- but that would probably look a little ugly...

mouse over tooltip for overlay objects

Hi!

maybe this is already possible and I have not found this, but it would be very useful if it was possible to be able to add have mouse over/hover tooltip for overlay objects. That we a user can see more info (like source ID) if you move the mouse over the overlay. Maybe even clickable to move to a an other page related to the source.

mathematical operations between extensions

New issue from previous thread. "I've always wanted the ability to do this in DS9 and was disappointed it was never there. Image extension arithmetic. I'd like the ability to do mathematical operations (add, subtract, etc) on different extensions, and make a new image. Or take the mean of some part of one extension and add it to another. Stuff like that. Do you think something like that is possible?"

loading files served from a separate site

My data files are served on a separate web server than my site is run from. I normally access them through a separate URL. Is it possible to have JS9.Preload() or .Load() accept an absolute URL path to a data file, rather than a relative filesystem link?

would be nice to have a "hard fail" mode for the helper

Given my rather fiddly attempts to get js9helper going in various scenarios, I'm frequently being tripped up by the "silent fail" behaviour of JS9 when it can't connect to the helper.

At present it quietly falls back to downloading full images via HTTP. So everything continues to work, albeit more slowly and with more browser memory use. I actually have to go to the JS console to figure out if the helper is being invoked or not.

Could I ask for an option, e.g. globalOpts.requireHelper? If False (which should be the default), keep current behaviour. If True, display an error dialog if it fails to connect to the helper. Then at least if I've broken something, I'll know immediately...

Side by side images in the same JS9 display (mosaic mode)

@ericmandel Is it possible to put 2 images side by side on one single JS9 display?

The idea would be to automatically (or optionally) do that for multi-extension fits files in order to create a mosaic image that can automatically display the full focal plane (using WCS info), as it can be done with ds9.

Thanks in advance for any advice on how to achieve that!

Dynamic resizing of existing JS9 displays

Hi Eric,

I would like to request a new public API function, e.g. JS9.SetSize(width, height), which allows the user to change the size of an already existing JS9 display dynamically. If there are multiple displays and hence multiple divs, the display in question could, e.g., be specified via the {display: [div_id]} object, similar to other functions of the public API.

I came across this problem when i tried to embed a JS9 display into an extJS container whose size adapts to the size of the browser window. In this case it would be favorable to have the JS9 display (i.e. the menubar and the image) use all available space in the container (which is essentially a div) automatically, which makes resizing necessary.

Cheers,
Michael

Displaying 6k x 6k images

Hi Eric,

We need to be able to display images that are (roughly) up to 6144 x 6144 pixels but I see that JS9 only displays 4096 x 4096 of the image. The documentation on memory limitations mentions changing JS9.globalOpts.image. Setting x and y on that doesn't seem to work.

Any ideas what I could be doing wrong?

Hard readability of coordinates label

Hi Eric,

I have noticed another issue, this time concerning the color of the coordinates and value label in the upper left of the canvas. When the displayed image is small enough, the label is displayed in black letters (which is nice on the light grey canvas background). At some point, the label color is switched to green when the image zoom level is increased. Unfortunately, this seems to happen too early, which results in a pretty hard to read green on grey (see attached image).

Also, there are other scenarios (e.g. image height > width) where the image does not use the full width of the canvas. In these cases, the green label is also (at least partly) written on the grey canvas.

Maybe it would make sense to put the label into a small box with a uniform color? It might not look as nice but it would guarantee readability independent from the local background color/pattern. Alternatively, the label could maybe be moved to the associated menu bar. What do you think?

js9_green_label

can't get overlay to work

I'm trying to overlay some circles over the image following the documentation but nothing happens (also no error or warning). Am I missing something:

var layer = JS9.NewShapeLayer("layer")
JS9.AddShapes("layer", {shape: 'circle', x: 100, y: 100})
JS9.ShowShapeLayer("layer", true)

i type this in the developer console of google chome while I'm on the JS9 website, which should just work as far as I know.

Image scaling doesn't update after refresh

Hi Eric,

There was a change at some point that makes it so that an image's scaling doesn't get updated when I do a refresh which sometimes can produce a completely saturated image.

I've tracked it down to this commit and the exact change in there is this bit right here:

@@ -1472,12 +1478,10 @@ JS9.Image.prototype.mkRawDataFromHDU = function(obj, opts){
     // init the logical coordinate system, if possible
     this.initLCS(this.raw.header);
     // set initial scaling values if not done already
-    if( isNaN(this.params.scalemin) ||
-       (this.params.scaleclipping === "dataminmax") ){
+    if( isNaN(this.params.scalemin) ){
        this.params.scalemin = this.raw.dmin;
     }
-    if( isNaN(this.params.scalemax) ||
-       (this.params.scaleclipping === "dataminmax") ){
+    if( isNaN(this.params.scalemax) ){
        this.params.scalemax = this.raw.dmax;
     }
     // allow chaining

This is probably done for a reason, so I'm wondering if there's a way to get around it?

Is it possible to save full size image from blending or RGB mode?

I am trying to make a button for an outreach webpage, targetting primary and secondary school, to save PNG and JPG file after making false-color images. The teachers' opinion is that having a menu bar is too confusing to the students, so I was trying to add a button for them to save the false colour image with
JS9.displays[0].image.saveIMG()
but the image size is defined with the display size. Is it possible to re-render/reproject the image at the back and save the image at a higher resolution?

What PNG library is needed for fits2png support?

I just tried building within a docker container, so it doesn't have many packages installed, and saw this from the configure step:

checking for png library (for building fits2png)... fits2png will not be built

What library (or libraries) does it need here? Did I miss it in the documentation?

interactive menu not working from Jupyter notebooks

Hi Eric,

I have been using js9-allinone files to display JS9 divs on lcoal jupyter notebooks. Up to v1.9 the menu (File, View, Zoom, etc.) was responding ok. When I use the files from master it doesn't respond anymore. The

display the images fine, it is juts the menu is not responding. Not sure if related to the new styles in the menu but I haven't been able to trace it. Any thoughts?

Onload in JS9.Load for fits files

Is there any way to run JS9.SetColormap or JS9.SetPan after loading of an image to display automatically?
I tried a number of different ways e.g. this function:
$(document).ready(function(){
JS9.Load("./trans_ref/RBPLJ2016+1632_2456869.47587.fits", {display: "ref1", onload: function(){JS9.SetColormap("cool",{display: "ref1"});}});
});
it doesn't work.

request: support averaging in fits2fits, not just binning

I've realized the "bin" option in fits2fits actually performs as advertised, i.e. sums the pixels in a bin. Would it be possible to add an option to take the mean value instead of a sum?

We usually deal with flux density images, so summing breaks our units...

Load text on http://js9.si.edu before socket connection

I'm getting a timeout for http://js9.si.edu/ in Chrome from work.

screen shot 2016-01-05 at 12 22 09

This might be a network / port issue on my side ... we don't have to track this down.

The issue I wanted to mention though is that the page is useless for ~ 1 minute until the timeout occurs, because the "intro", "help", ... text on the right doesn't appear until the timeout occurs.

@ericmandel Could you change the page so that the page becomes usable before that socket connection is started?

Oh, also -- happy new year!

'JS9.Load()' cannot load FITS file properly but 'File -> open local file' can

Hi, I am trying to include the js9-allinone.js inside an electron application and have encountered a weird behaviour when loading FITS files. If I load a FITS file by using File -> open local file, the FITS file can be loaded without any problem. However, if I load the same FITS file with JS9.Load() with an html onclick function, the file cannot be imported properly. I have tried this on files with and without extensions, they behave the same. Here are the HTML, JS and warning messages:

HTML:
<button type="button" class="btn btn-primary" onclick="javascript:loadFITS()">Load Image</button>

JS:
function loadFITS() { JS9.Load(__dirname + '/FITS_example/example_isis.fits'); }

Warning messages:

js9-allinone.js:21135
put_char @ js9-allinone.js:21135
write @ js9-allinone.js:21135
write @ js9-allinone.js:21135
doWritev @ js9-allinone.js:21135
___syscall146 @ js9-allinone.js:21135
Jz @ js9-allinone.js:21153
lB @ js9-allinone.js:21153
kB @ js9-allinone.js:21153
gf @ js9-allinone.js:21139
pc @ js9-allinone.js:21152
Xb @ js9-allinone.js:21152
ccall @ js9-allinone.js:21135
(anonymous) @ js9-allinone.js:21135
a.Image.mkRawDataFromHDU @ js9-allinone.js:3396
a.Image @ js9-allinone.js:3364
(anonymous) @ js9-allinone.js:3980
Module.getFITSImage @ js9-allinone.js:21169
Module.handleFITSFile.fileReader.onload @ js9-allinone.js:21169
load (async)
Module.handleFITSFile @ js9-allinone.js:21169
a.handleFITSFile @ js9-allinone.js:3779
(anonymous) @ js9-allinone.js:3960
g.onload @ js9-allinone.js:3774
load (async)
a.fetchURL @ js9-allinone.js:3774
(anonymous) @ js9-allinone.js:3963
loadFITS @ index.html:192
onclick @ index.html:123

js9-allinone.js:21135 FITSIO status = 252: 1st key not SIMPLE or XTENSION
put_char @ js9-allinone.js:21135
write @ js9-allinone.js:21135
write @ js9-allinone.js:21135
doWritev @ js9-allinone.js:21135
___syscall146 @ js9-allinone.js:21135
Jz @ js9-allinone.js:21153
lB @ js9-allinone.js:21153
kB @ js9-allinone.js:21153
gf @ js9-allinone.js:21139
pc @ js9-allinone.js:21152
Xb @ js9-allinone.js:21152
ccall @ js9-allinone.js:21135
(anonymous) @ js9-allinone.js:21135
a.Image.mkRawDataFromHDU @ js9-allinone.js:3396
a.Image @ js9-allinone.js:3364
(anonymous) @ js9-allinone.js:3980
Module.getFITSImage @ js9-allinone.js:21169
Module.handleFITSFile.fileReader.onload @ js9-allinone.js:21169
load (async)
Module.handleFITSFile @ js9-allinone.js:21169
a.handleFITSFile @ js9-allinone.js:3779
(anonymous) @ js9-allinone.js:3960
g.onload @ js9-allinone.js:3774
load (async)
a.fetchURL @ js9-allinone.js:3774
(anonymous) @ js9-allinone.js:3963
loadFITS @ index.html:192
onclick @ index.html:123

js9-allinone.js:21135 Extension doesn't start with SIMPLE or XTENSION keyword. (ffrhdu)
put_char @ js9-allinone.js:21135
write @ js9-allinone.js:21135
write @ js9-allinone.js:21135
doWritev @ js9-allinone.js:21135
___syscall146 @ js9-allinone.js:21135
Jz @ js9-allinone.js:21153
lB @ js9-allinone.js:21153
kB @ js9-allinone.js:21153
gf @ js9-allinone.js:21139
pc @ js9-allinone.js:21152
Xb @ js9-allinone.js:21152
ccall @ js9-allinone.js:21135
(anonymous) @ js9-allinone.js:21135
a.Image.mkRawDataFromHDU @ js9-allinone.js:3396
a.Image @ js9-allinone.js:3364
(anonymous) @ js9-allinone.js:3980
Module.getFITSImage @ js9-allinone.js:21169
Module.handleFITSFile.fileReader.onload @ js9-allinone.js:21169
load (async)
Module.handleFITSFile @ js9-allinone.js:21169
a.handleFITSFile @ js9-allinone.js:3779
(anonymous) @ js9-allinone.js:3960
g.onload @ js9-allinone.js:3774
load (async)
a.fetchURL @ js9-allinone.js:3774
(anonymous) @ js9-allinone.js:3963
loadFITS @ index.html:192
onclick @ index.html:123

js9-allinone.js:21135 6�0�6�3�5�7�7�2�8�6�9�3�*�3�=�6�4�3�0�0�
put_char @ js9-allinone.js:21135
write @ js9-allinone.js:21135
write @ js9-allinone.js:21135
doWritev @ js9-allinone.js:21135
___syscall146 @ js9-allinone.js:21135
Jz @ js9-allinone.js:21153
pA @ js9-allinone.js:21153
nB @ js9-allinone.js:21153
mB @ js9-allinone.js:21153
lB @ js9-allinone.js:21153
kB @ js9-allinone.js:21153
gf @ js9-allinone.js:21139
pc @ js9-allinone.js:21152
Xb @ js9-allinone.js:21152
ccall @ js9-allinone.js:21135
(anonymous) @ js9-allinone.js:21135
a.Image.mkRawDataFromHDU @ js9-allinone.js:3396
a.Image @ js9-allinone.js:3364
(anonymous) @ js9-allinone.js:3980
Module.getFITSImage @ js9-allinone.js:21169
Module.handleFITSFile.fileReader.onload @ js9-allinone.js:21169
load (async)
Module.handleFITSFile @ js9-allinone.js:21169
a.handleFITSFile @ js9-allinone.js:3779
(anonymous) @ js9-allinone.js:3960
g.onload @ js9-allinone.js:3774
load (async)
a.fetchURL @ js9-allinone.js:3774
(anonymous) @ js9-allinone.js:3963
loadFITS @ index.html:192
onclick @ index.html:123

js9-allinone.js:21135 Failed to move to HDU number 3 (ffmahd).
put_char @ js9-allinone.js:21135
write @ js9-allinone.js:21135
write @ js9-allinone.js:21135
doWritev @ js9-allinone.js:21135
___syscall146 @ js9-allinone.js:21135
Jz @ js9-allinone.js:21153
lB @ js9-allinone.js:21153
kB @ js9-allinone.js:21153
gf @ js9-allinone.js:21139
pc @ js9-allinone.js:21152
Xb @ js9-allinone.js:21152
ccall @ js9-allinone.js:21135
(anonymous) @ js9-allinone.js:21135
a.Image.mkRawDataFromHDU @ js9-allinone.js:3396
a.Image @ js9-allinone.js:3364
(anonymous) @ js9-allinone.js:3980
Module.getFITSImage @ js9-allinone.js:21169
Module.handleFITSFile.fileReader.onload @ js9-allinone.js:21169
load (async)
Module.handleFITSFile @ js9-allinone.js:21169
a.handleFITSFile @ js9-allinone.js:3779
(anonymous) @ js9-allinone.js:3960
g.onload @ js9-allinone.js:3774
load (async)
a.fetchURL @ js9-allinone.js:3774
(anonymous) @ js9-allinone.js:3963
loadFITS @ index.html:192
onclick @ index.html:123

js9-allinone.js:21135 Extension doesn't start with SIMPLE or XTENSION keyword. (ffrhdu)
put_char @ js9-allinone.js:21135
write @ js9-allinone.js:21135
write @ js9-allinone.js:21135
doWritev @ js9-allinone.js:21135
___syscall146 @ js9-allinone.js:21135
Jz @ js9-allinone.js:21153
lB @ js9-allinone.js:21153
kB @ js9-allinone.js:21153
gf @ js9-allinone.js:21139
pc @ js9-allinone.js:21152
Xb @ js9-allinone.js:21152
ccall @ js9-allinone.js:21135
(anonymous) @ js9-allinone.js:21135
a.Image.mkRawDataFromHDU @ js9-allinone.js:3396
a.Image @ js9-allinone.js:3364
(anonymous) @ js9-allinone.js:3980
Module.getFITSImage @ js9-allinone.js:21169
Module.handleFITSFile.fileReader.onload @ js9-allinone.js:21169
load (async)
Module.handleFITSFile @ js9-allinone.js:21169
a.handleFITSFile @ js9-allinone.js:3779
(anonymous) @ js9-allinone.js:3960
g.onload @ js9-allinone.js:3774
load (async)
a.fetchURL @ js9-allinone.js:3774
(anonymous) @ js9-allinone.js:3963
loadFITS @ index.html:192
onclick @ index.html:123

js9-allinone.js:21135 6�0�6�3�5�7�7�2�8�6�9�3�*�3�=�6�4�3�0�0�
put_char @ js9-allinone.js:21135
write @ js9-allinone.js:21135
write @ js9-allinone.js:21135
doWritev @ js9-allinone.js:21135
___syscall146 @ js9-allinone.js:21135
Jz @ js9-allinone.js:21153
pA @ js9-allinone.js:21153
nB @ js9-allinone.js:21153
mB @ js9-allinone.js:21153
lB @ js9-allinone.js:21153
kB @ js9-allinone.js:21153
gf @ js9-allinone.js:21139
pc @ js9-allinone.js:21152
Xb @ js9-allinone.js:21152
ccall @ js9-allinone.js:21135
(anonymous) @ js9-allinone.js:21135
a.Image.mkRawDataFromHDU @ js9-allinone.js:3396
a.Image @ js9-allinone.js:3364
(anonymous) @ js9-allinone.js:3980
Module.getFITSImage @ js9-allinone.js:21169
Module.handleFITSFile.fileReader.onload @ js9-allinone.js:21169
load (async)
Module.handleFITSFile @ js9-allinone.js:21169
a.handleFITSFile @ js9-allinone.js:3779
(anonymous) @ js9-allinone.js:3960
g.onload @ js9-allinone.js:3774
load (async)
a.fetchURL @ js9-allinone.js:3774
(anonymous) @ js9-allinone.js:3963
loadFITS @ index.html:192
onclick @ index.html:123

js9-allinone.js:21135 Failed to move to HDU number 3 (ffmahd).
put_char @ js9-allinone.js:21135
write @ js9-allinone.js:21135
write @ js9-allinone.js:21135
doWritev @ js9-allinone.js:21135
___syscall146 @ js9-allinone.js:21135
Jz @ js9-allinone.js:21153
lB @ js9-allinone.js:21153
kB @ js9-allinone.js:21153
gf @ js9-allinone.js:21139
pc @ js9-allinone.js:21152
Xb @ js9-allinone.js:21152
ccall @ js9-allinone.js:21135
(anonymous) @ js9-allinone.js:21135
a.Image.mkRawDataFromHDU @ js9-allinone.js:3396
a.Image @ js9-allinone.js:3364
(anonymous) @ js9-allinone.js:3980
Module.getFITSImage @ js9-allinone.js:21169
Module.handleFITSFile.fileReader.onload @ js9-allinone.js:21169
load (async)
Module.handleFITSFile @ js9-allinone.js:21169
a.handleFITSFile @ js9-allinone.js:3779
(anonymous) @ js9-allinone.js:3960
g.onload @ js9-allinone.js:3774
load (async)
a.fetchURL @ js9-allinone.js:3774
(anonymous) @ js9-allinone.js:3963
loadFITS @ index.html:192
onclick @ index.html:123

js9-allinone.js:21135 Extension doesn't start with SIMPLE or XTENSION keyword. (ffrhdu)
put_char @ js9-allinone.js:21135
write @ js9-allinone.js:21135
write @ js9-allinone.js:21135
doWritev @ js9-allinone.js:21135
___syscall146 @ js9-allinone.js:21135
Jz @ js9-allinone.js:21153
lB @ js9-allinone.js:21153
kB @ js9-allinone.js:21153
gf @ js9-allinone.js:21139
pc @ js9-allinone.js:21152
Xb @ js9-allinone.js:21152
ccall @ js9-allinone.js:21135
(anonymous) @ js9-allinone.js:21135
a.Image.mkRawDataFromHDU @ js9-allinone.js:3396
a.Image @ js9-allinone.js:3364
(anonymous) @ js9-allinone.js:3980
Module.getFITSImage @ js9-allinone.js:21169
Module.handleFITSFile.fileReader.onload @ js9-allinone.js:21169
load (async)
Module.handleFITSFile @ js9-allinone.js:21169
a.handleFITSFile @ js9-allinone.js:3779
(anonymous) @ js9-allinone.js:3960
g.onload @ js9-allinone.js:3774
load (async)
a.fetchURL @ js9-allinone.js:3774
(anonymous) @ js9-allinone.js:3963
loadFITS @ index.html:192
onclick @ index.html:123

js9-allinone.js:21135 6�0�6�3�5�7�7�2�8�6�9�3�*�3�=�6�4�3�0�0�
put_char @ js9-allinone.js:21135
write @ js9-allinone.js:21135
write @ js9-allinone.js:21135
doWritev @ js9-allinone.js:21135
___syscall146 @ js9-allinone.js:21135
Jz @ js9-allinone.js:21153
pA @ js9-allinone.js:21153
nB @ js9-allinone.js:21153
mB @ js9-allinone.js:21153
lB @ js9-allinone.js:21153
kB @ js9-allinone.js:21153
gf @ js9-allinone.js:21139
pc @ js9-allinone.js:21152
Xb @ js9-allinone.js:21152
ccall @ js9-allinone.js:21135
(anonymous) @ js9-allinone.js:21135
a.Image.mkRawDataFromHDU @ js9-allinone.js:3396
a.Image @ js9-allinone.js:3364
(anonymous) @ js9-allinone.js:3980
Module.getFITSImage @ js9-allinone.js:21169
Module.handleFITSFile.fileReader.onload @ js9-allinone.js:21169
load (async)
Module.handleFITSFile @ js9-allinone.js:21169
a.handleFITSFile @ js9-allinone.js:3779
(anonymous) @ js9-allinone.js:3960
g.onload @ js9-allinone.js:3774
load (async)
a.fetchURL @ js9-allinone.js:3774
(anonymous) @ js9-allinone.js:3963
loadFITS @ index.html:192
onclick @ index.html:123

js9-allinone.js:21135 Failed to move to HDU number 3 (ffmahd).
put_char @ js9-allinone.js:21135
write @ js9-allinone.js:21135
write @ js9-allinone.js:21135
doWritev @ js9-allinone.js:21135
___syscall146 @ js9-allinone.js:21135
Jz @ js9-allinone.js:21153
lB @ js9-allinone.js:21153
kB @ js9-allinone.js:21153
gf @ js9-allinone.js:21139
pc @ js9-allinone.js:21152
Xb @ js9-allinone.js:21152
ccall @ js9-allinone.js:21135
(anonymous) @ js9-allinone.js:21135
a.Image.mkRawDataFromHDU @ js9-allinone.js:3396
a.Image @ js9-allinone.js:3364
(anonymous) @ js9-allinone.js:3980
Module.getFITSImage @ js9-allinone.js:21169
Module.handleFITSFile.fileReader.onload @ js9-allinone.js:21169
load (async)
Module.handleFITSFile @ js9-allinone.js:21169
a.handleFITSFile @ js9-allinone.js:3779
(anonymous) @ js9-allinone.js:3960
g.onload @ js9-allinone.js:3774
load (async)
a.fetchURL @ js9-allinone.js:3774
(anonymous) @ js9-allinone.js:3963
loadFITS @ index.html:192
onclick @ index.html:123

Package JS9 for NPM

It would be great if JS9 could be packaged for NPM (https://www.npmjs.com/)

The background for this is that @gogrean and I are developing a plugin for Jupyter lab that uses JS9 and it would be much simpler to distribute this to people if JS9 was included on NPM.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.