This PR adds to Speasy the ability to automatically find CDF files on the CDA archive based on information given in this file. This allows to reduce the latency (no WS involved) but could imply to download more data than needed (each CDF has many variables).
The CDAWeb module can now work in 3 different modes:
BEST -> let Speasy choose between using the REST API or directly download files from archive based on some future heuristics
API -> always use the REST API
FILE -> directly download cdf files when possible. It automatically fallback to API when files are not CDF or when the variable is virtual (generated on the fly by the REST API)
The current limitations are:
while CDF files are cached, Speasy still needs to know if they changed on the server, this takes ~100ms. As a workaround Speasy will only check each 24h.
not all CDF are ISTP compliant so we overlay the master cdf given by the CDA which are compliant on top of each individual CDF to merge them.
Impact on Speasy dependencies:
we depend on PyISTP>=0.5.0 to support this overlay mechanism.
I found at least one CDF written with the 2.4 CDF distribution so I had to implement support for CDF<2.5 into CDF++ and release the 0.7.0 version.
at some point before the 1.3.0 release this has to work with the Speasy proxy
Unrelated fixes:
SSCWeb module was silently broken since last update, the trajectory file loader didn't convert values from string to float...
This PR adds to Speasy the ability to automatically find CDF files on the CDA archive based on information given in this file. This allows to reduce the latency (no WS involved) but could imply to download more data than needed (each CDF has many variables).
The CDAWeb module can now work in 3 different modes:
The current limitations are:
Impact on Speasy dependencies:
Unrelated fixes: