mhaberler / radiosonde-czml

create cesium CZML animation from radiosonde data like habhub
MIT License
3 stars 0 forks source link

Could this work with SondeHub data? #1

Open LukePrior opened 2 years ago

LukePrior commented 2 years ago

Hi,

I was just wondering if this could work with SondeHub data from here: https://github.com/projecthorus/sondehub-infra/wiki/API-(Beta)

mhaberler commented 2 years ago

great to see the sondehub API is moving by leaps and bounds, and with all the right tooling!

you mean like as a 3D live view of what's in the air, including timeline, paths, landing predictions and so forth? definitely yes!

this repo was just a feeble attempt at batch-visualizing some sonde data by converting it to CZML and view that (drop the czml file onto something like https://cesium.com/cesiumjs/cesium-viewer/ or like here: https://cesium.com/learn/ion/stories-time-dynamic/)

but cesium has all the capabilities needed for a live display, it boils down to setting up the DataSource and updates properly

are you familiar with Cesium?

this example uses CzmlDataSource.load(czml, source) or one of its variants to gobble up the CZML file in one go, but you can incrementally add to a scene

you might want to look at DataSource and experiment which type fits best, possibly GeoJSON

I used GeoJSON as the representation form for radiosonde ascents in https://github.com/mhaberler/radiosonde and https://github.com/mhaberler/radiosonde-datacollector, and overall I think it was a good choice - a flight is a FeatureCollection of Points

happy to help from the sidelines, I think that'd be a supercool application!

mhaberler commented 2 years ago

@LukePrior I've been toying with the idea of adding sonde live display to @rittels & mine windy radiosonde work: https://community.windy.com/topic/16694/windy-plugin-radiosonde/1?_=1640322733404

the API looks like it's getting ready for an integration attempt - can you point me to a JS client example talking to this API?

edit: am I looking at the right place?

LukePrior commented 2 years ago

Hi @mhaberler I may play around with CesiumJS or OpenGL Earth 2 and see if I can get a live 3D view working with predictions and everything. I do know that Michaela made a prototype some time back: https://github.com/TheSkorm/sondehub-cesium.

When it comes to adding live data support to your Windy plugin you would want to look at using websockets (https://github.com/projecthorus/sondehub-infra/wiki/API-(Beta)#sondeswebsocket) to get a continuous stream of live data.

The SondeHub tracker uses the Eclipse Paho JavaScript Client (https://www.eclipse.org/paho/index.php?page=clients/js/index.php) to get this data. You can find where the code is used here: https://github.com/projecthorus/sondehub-tracker/blob/master/js/tracker.js#L11 https://github.com/projecthorus/sondehub-tracker/blob/master/js/tracker.js#L4243

That code is fairly messy however so I would look at the Cesium example I linked above which also takes advantage of websockets using a simpler approach: https://github.com/TheSkorm/sondehub-cesium/blob/main/src/index.js

You may also be interested in our crowdsourced launch site API which has the most accurate position data for global launch sites: https://github.com/projecthorus/sondehub-infra/wiki/API-(Beta)#sites

We also have a Swagger setup here for easy API testing: https://generator.swagger.io/?url=https://raw.githubusercontent.com/projecthorus/sondehub-infra/main/swagger.yaml

Let me know if you have any questions.

mhaberler commented 2 years ago

thanks, tried sondehub-cesium, works fine for a start!

TheSkorm commented 2 years ago

Not sure if this is useful or not but I did a websockets / cesium demo awhile ago : http://sondehubuitest.s3-website-us-east-1.amazonaws.com

TheSkorm commented 2 years ago

(oh just noticed it was linked above xD )