metno / wxgen Goto Github PK
View Code? Open in Web Editor NEWWeather generator software
License: GNU Lesser General Public License v3.0
Weather generator software
License: GNU Lesser General Public License v3.0
The spatial matching could probably be done by exploiting a bit more of the wavelet properties. In particular, instead of finding the match by comparing the de-composed coarse fields (i.e. averages over large boxes) -as I firstly suggested, not the smartest thing to do but the easiest- it might be better to compare the wavelet coefficients of the coarser scales.
What we gain is a match that takes into account much more spatial details than before and this might help in the matching of two "rare" situations.
In practice, the command we are using now is (file database.py):
dec = pywt.wavedec2(data, 'haar', level=self.wavelet_levels, axes=(1, 2))[0]
man page is:
http://pywavelets.readthedocs.io/en/latest/ref/2d-dwt-and-idwt.html
search for"pywt.wavedec2":
the function returns a list:
[cAn, (cHn, cVn, cDn), ... (cH1, cV1, cD1)]
and now we are using cAn, instead I'm suggesting to use all the other elements. The quality of the match between two fields is the (scalar) value given by the summation of all the squared differences:
[cHn(field1)-cHn(field2)]^2 + [cVn(field1)-cVn(field2)]^2+[cDn(field1)-cDn(field2)]^2 + ... + [cH1(field1)-cH1(field2)]^2 + [cV1(field1)-cV1(field2)]^2+[cD1(field1)-cD1(field2)]^2
Note that: the dimension of the vectors cHn, cVn, cDn is different from the one of the vectors cH(n-1),cV(n-1),cD(n-1) because they refers to different grids; and cH1, cV1, cD1 should be just 3 scalar values.
Check that the spatial aggregation matches the truth
Useful in plotting timeseries, but could also be used to subset data for -m variance for example.
Create a box blow showing the distribution of jumps (done for each pixel then aggregated)
Show if it is the same for days within one segment vs across a segment join.
Should probably be -p top5 or something like that
Just like the variance plot, show the bias for different time-scales
Shows distribution of different values. Consider adding a flag to specify time-scale.
For example:
Hi,
We at Statkraft consider rewriting the code to use cartopy instead of basemap (module) for the following reasons:
The way we see it, this can be solved by either moving completely over to cartopy, or having the code check which module is installed and use either one. We will of course implement the cartopy support and make a pull request for this.
Any views or comments on this from you guys at Met? @tnipen
Instead of forcing the joining to come from the same year (using -j), it could also be implemented using a tunable probability.
Show the transition probability between each consecutive day. For other variables use correlation.
Examples
Command-line example:
wxgen verif -tr cold_night
wxgen verif -tr ">=0"
Not needed, since wxgen truth can do the yearly chunking
A few weeks of EC data:
The timestamps in truth scenarios start at 20160101, however it could be convenient to have the actual timestamps that the scenario is based on. This only works when the user specifies -n 1.
Allow specification of timescale and base location
AROME db:
EC timeseries:
Should be done for:
From day 0 to day X (for different X)
Add an option that allows the truth in a database to be resampled, for example to create an ensemble of yearly sequences.
Reduce the maximum footprint, i.e. don't load the entire database into file. Compute the wavelet, then dump the variables in memory. When writing the scenarios, load only what is neeeded.
Under:
https://github.com/metno/wxgen/wiki/Other-options
It says "-d" but seems to be "-b"
wxgen sim -db db.nc -n 21 -t 365 -v 0 -o output.nc -d 20160601
Comparison of two distributions, for some timescale
-m distribution shows the same thing
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.