arunavabasucom / radis-app

A web app for high-resolution infrared molecular spectra using RADIS
https://radis.app
GNU Lesser General Public License v3.0
11 stars 16 forks source link

Allow multiple databases ? #85

Open erwanp opened 3 years ago

erwanp commented 3 years ago

Hello @suzil .

I left you a mail : I just discovered this project, it's great to so RADIS being improved !

FYI, this is the current state-of-the-art of no-code molecular spectroscopy : 

https://www.spectraplot.com/emission https://hitran.iao.ru/molecule/simlaunch

None of these provide multiple temperature calculations (non-equilibrium), which RADIS does and you seem to have implemented through your frontend already ! 🚀

The solutions above rely on the HITRAN & HITEMP databases. These databases contain all the spectral lines, and are more or less complete, hence accurate. HITRAN is typically ~tens of thousands of lines, HITEMP millions, others like CDSD are tens/hundred of millions, and some like ExoMol [state of the art used in astrophysics for exoplanet detection !] even contain billions of lines.

By default RADIS fetches HITRAN using their API. But what makes it stand out is that it becomes ~1000x faster than the backends used in the solutions above when used with large databases. I wondered if adding alternative database choices is something you considered in your roadmap ?

Anyway, I'd be glad to talk to know a little bit more about what you want to achieve with this cool project and if we can help : join our Slack if interested !

minouHub commented 3 years ago

I agree with Erwan that adding an option to at least HITEMP (from my perspective) would be great.

erwanp commented 3 years ago

This would be a major improvement but also a major change, because currently the HITRAN database is automatically fetched by RADIS.

RADIS doesn't have an automatic database download for HITEMP (too large), so having HITEMP will require to build a Docker image with HITEMP pre-configured. I did a similar work in updating the RADIS-Lab Docker to download and prepare the cache of the HITEMP files. I'm adding it here for reference: postBuild

Also for reference, SpectraPlot managed the databases with a Amazon RDS MySQL (their LBL algorithm is very slow compared to RADIS, but the database handling part is probably very good. !!)

SpectraPlot is written in Python (2.7) as a Flask application, and it is hosted on Amazon Web Services as an Elastic Beanstalk application. Databases are hosted on an Amazon RDS MySQL instance, and all spectroscopic simulations are run serially in Python on an Amazon EC2 instance. The user interface is built primarily using D3.js, an open source Javascript plotting library.

https://www.sciencedirect.com/science/article/pii/S0022407317302996?via%3Dihub

Also related to all the future work on the RADIS database format, which is on the 2021 Roadmap : https://github.com/radis/radis/issues/166 Note : the HITEMP team themselves do not have a preferred format for handling the databases efficiently (SQL ends up being slow with HITEMP) and we will be discussing it with them !