dtcenter / metviewer Goto Github PK
View Code? Open in Web Editor NEWTool that creates plots using MET verification statistics output and the R statistical package
Home Page: http://www.dtcenter.org/met/metviewer/
License: Apache License 2.0
Tool that creates plots using MET verification statistics output and the R statistical package
Home Page: http://www.dtcenter.org/met/metviewer/
License: Apache License 2.0
Users would like to modify the names of fields in database. For example model or fcst_var.
Create a module that would preform MySQL UPDATE queries on records that are described in XML file similar to pruning
Tatiana Burek created issue - 20/Jul/17 9:03 AM
This is a request from Tracey Dorian, a MET/METViewer user from NCEP.
Users currently have pretty fine control of what gets plotted along the x-axis. They are able to select which independent variable values are plotted, what labels are plotted, and even what value is actually plotted. However there are really no options for the Y1 and Y2 axes other than the limits. Instead, we just use what R serves up. Suggest adding plot formatting options to the "Y1" and "Y2" tabs for the user to specify what labels should be plotted and where. The user could specify the min/max label values to be plotted and a step value. The user could also specify the label strings to be plotted. This would help for unit conversion as well. Their x-axis might be precip stored in millimeters, but they want the labels to be inches. They'd define the Y-axis values as 25.4 and 50.8 but plot labels of 1" and 2".
Binbin:
In reliability plot, make the color of climatology line (near and parallel to the x-axis) and skillful margin line lighter, e.g. in dash line and light grey color.
Tatiana Burek created issue - 03/Feb/17 9:55 AM
If all databases have groups the web page doesn't loaded.
Right now you have to scroll through a list of dates to select. It takes time to generate the list and it is cumbersome to scroll through unless you have a small dataset. Moving toward a date picker interface that will allow you to pick year and/or month and/or date would be much easier for the user to select the period over which the statistics are computed.
Examples
Pick an entire year (2016) or pick multiple years (2015 and 2016).
Pick a month (Mar) or a season (Mar, Apr, May) or (Apr, May, Jun).
Pick a list of dates from Mar 15 - May 15.
A scroll bar on series formatting would allow those using METV on their laptops more control over what space is used by this portion of the interface.
We replace all '/' with '_' in the values of <val_map> element in the batch XML to prevent errors in the file names and paths that are constructed using these values. For example,
<val_map name="fcst_var">
DPT Dew Point Temperature (C)
WIND Wind (m/s)
</val_map>
m/s would be replaced with m_s. But this value is not used in the file name construction ( only for labels) and should not be changed.
During John and Tara's trip to NCEP in November 2014, Kieth Brill, the developer of FVS, suggested that we should look into speeding up the bootstrapping process in METViewer. FVS does 10000 replicates and produces results faster than METViewer. Some options to check are:
(1) Look carefully at how the bootstrapping logic is applied in METViewer. Is it called separately for each independent variable value and series? Or is it called once for each plot, bootstrapping all independent variable values and series? The latter would be much faster.
(2) As suggested by Eric Gilleland, consider parallelizing the bootstrapping process so that the replicates can be computed across multiple cores.
(3) Look to see if the METViewer boot function could be replaced by a more optimized compiled version of boot that might potentially run faster.
Tatiana Burek created issue - 31/Aug/16 8:43 AM
Lock formatting doesn't seem to be working well, but I don't have a better description of it than that. I wonder if there would be some way for the user to define a mapping of values to colors... for example, Tracey always wants GFS to be one color, GFSX to be another, and ECMWF to be another. It would make her life easier, if she could define a mapping of "MODEL" name to color and use that for all her plots. Then anytime that model is used in a series, that color would be used. We could think more about that.
Possibility to display ensemble members on the plot
Tatiana Burek created issue - 12/Oct/15 7:48 AM
version in JIRA is listed as 2.7 to be fixed.
Lisa Goodrich
9/11/18
When making a barplot, setting the legend text for a series doesn't seem to be working. See attached XML where I try to set the legend as "Forecast" and "Observation" but it doesn't show up in the resulting plot.
plot_20170503_195928.xlsx
The original version was an xml file but GitHub isn't able to save that format.
Tatiana Burek created issue - 03/May/17 3:10 PM
If the menu is closed the user still can accidentally check database the check boxes.
To fix it disable check boxes when the menu is closed and enable when it is open
METViewer version 1.2 supports the "Plot Script Commands" option (Formatting tab) which gets stored in the "<plot_cmd>" XML tag. The majority of the time this is used to draw horizontal reference lines on plots by calling the "abline" function.
The order in which plot elements are rendered is as follows...
This means that the reference horizontal lines are drawn on top of the data lines.
During the 2015 WRF User's Workshop, Kathryn Newman said that she'd prefer it the other way - rendering the data on top of the reference line. Jamie Wolff and Michelle Harrold were ambivalent about it. In the past Kathryn has manually rerun several plots just to move the plotting commands up in the Rscript logic.
It's reasonable to do this either way... plotting "extra stuff" before and/or after plotting the data.
Suggest adding a second plot script command option to METViewer as follows...
This is low priority task and there's no clear source of funding. Just documenting the request.
Tatiana Burek created issue - 09/Sep/14 10:32 AM
Here's another test. I want to look at viewing and filtering issues.
The valid time of the data is always included (by definition) in the event equalization logic. When you add in both the LEAD_TIME and the FCST_INIT_BEG time, the event equalization information becomes over-specified and throws out all the data. You can pick one or the other, but not both.
The error could be presented to the user informing them of such over-specification. Or it possible to simply ignore the redundancy.
Tatiana Burek created issue - 22/Mar/17 8:55 AM
Tatiana Burek created issue - 17/Sep/14 10:13 AM
Ben Blake:
Is it currently possible to combine several vx masks together into one
column on the scorecard? I split up my verification into the 14 NCEP
subregions over the CONUS (APL, NEC, SEC, GMC, LMV, MDW, NPL, SPL, NMT,
SMT, GRB, NWC, SWC, SWD). When making a plot in METViewer, I can select
all of the regions in the fixed values section, and the generated plot will
contain statistics over the entire CONUS. I'd like to have one of the
columns on the scorecard be for CONUS.
Perhaps there is a way to define the vx_mask I want in the fixed values
section and then reference it somehow within the columns section?
Logan
Ability to aggregate masking regions to create “super-regions”
Apr. 22 2019
Christina Kalb:
Is it possible to display different lead times in the same column? For example, if one has a lead of 360000 and another has a lead of 120000, could i display them along the same column
May 2, 2019
Tatiana Burek created issue - 07/Nov/17 3:34 PM
CTC statistics were added but aggregation and summary methods were not implemented.
Tatiana Burek made changes - 13/Nov/17 10:22 AM
Tatiana Burek made changes - 12/Mar/18 2:35 PM
This request was made by Ying Lin and NOAA EMC during the MET+ User's Telecon on 9/10/2018. This may or may not be easy/possible. This is somewhat similar to the "Lock Formatting" option we'd previously tried to support.
Tentatively assigned to mv2.9... but can be reassigned as needed.
From Ying Lin:
METviewer load xml/change database: currently if I load a saved xml then change the database, the pre-loaded settings from the xml would be lost. To get around this, I sometimes edit the xml before loading or open up two METviewer windows. Can a future release of METviewer allow the preservation of pre-loaded xml settings during a database change?
Add ECNT aggregation logic to GUI, batch and scorecard
This is a pretty large task.
The MET software computes parametric confidence intervals for statistics, when appropriate. For example, there is a parametric estimate of uncertainty for the brier score. METViewer computes bootstrap confidence intervals and normal estimates of uncertainty for the mean and median of statistics.
This task is to reimplement the parametric estimate from the MET software in METViewer after aggregating partial sums or contingency tables.
Need to make these options as clear as possible in the GUI.
Trying out issue tracking as we plan database project and how to handle issues.
So first question: can we configure our own labels? I don't see any way to label something that is an action or task as opposed to software development.
And here is my first edit.
As of mv-2.2, the METViewer load logic requires that the <folder_tmpl> tag be used to explicitly define the directories from which MET output should be loaded. While this logic is very configurable, it's a hassle for users to define.
Suggest adding support for a new option, where the user specifies one or more top-level directories which should be searched recursively. Load any MET output found in that recursive search of sub-directories.
One option would be keeping the existing <folder_tmpl> tag, but add a new tag set to TRUE or FALSE, with FALSE as the default to match existing behavior. If TRUE, recursively load the directories specified by <folder_tmpl>.
But there may be other better solutions too.
This was discussed during the MET+ Tutorial at NCEP in October, 2017.
During calculation CNT and CNTSUM statistics (Difference option) for MODE METViever gives this error:
"FUNCTION s.COUNT does not exist. "
The problem is in invalid SQL statement for calculating statistics.
SELECT s.model, s.fcst_init, s.fcst_valid, s.fcst_lead, s.fcst_var, s.object_id, s.object_cat, 'CNT_DAA' stat_name, s.COUNT(object_id) - s2.COUNT(object_id) stat_value FROM mode_single s, mode_single2 s2.
MySQL functions COUNT and SUM can't be accessed using the table name
John:
"We currently have an option for "dump points". One idea is to add another option for "package download". After completing the plot, it'd call a script to gather all the files related to that plot, maybe edit the paths in the rscript, and put them all into a tarball, along with the include directory. The we'd serve up a link to that tarball."
[MET-791] created by tatiana
Currently, R script creates ticks for y-axis by default.
Create, UI and XML element that have the custom list of ticks
Tatiana Burek created issue - 12/Oct/17 11:31 AM
From Kirk:
you might want to consider adding an 'MV_VERSION' table such as:
CREATE TABLE MV_VERSION
(
mv_version VARCHAR(8) NOT NULL PRIMARY KEY,
release_date DATETIME NOT NULL,
updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE = MyISAM;
INSERT INTO MV_VERSION (mv_version, release_date) VALUES( '2.2',
'2017-10-11 15:00:00' );
This would allow for automatic updating of mv databases during the
installation process since the schema version would now be embedded in
each database.
Tatiana Burek created issue - 12/Oct/17 11:26 AM
Tina Kalb found bugs in mv2.5 when trying to regenerate scorecards that ran using mv2.4. Please look on dakota in:
/d3/projects/MET/MET_Help/kalb_data_20180524
/d3/projects/METViewer/src/apps/METViewer/bin/mv_scorecard.sh scorecard_cam_cts_threshs_small.xml
We get this error related to contour plots:
==== Start Rscript error ====
Error: object 'isContourDiff' not found
Adding neighborhood stats to the scorecard revealed this next error:
==== Start Rscript error ====
Error: object 'boolAggGrad' not found
Error: object 'boolAggVal1l2' not found
We temporarily got around these errors by copying over the entire R_work/include directory and adding the following to the top of agg_stat.R:
isContourDiff = FALSE;
boolAggGrad = FALSE;
boolAggVal1l2 = FALSE;
We need to patch this ASAP for mv2.5. Also, John will need a rebuilt version of 2.5 in a docker container for using on the HWT machine bigbang2.
METViewer 0_5_12 has the ability to aggregate together counts or sums and produce aggregated statistics from them. The 2x2 contingency table counts (CTC) can be aggregated to compute contingency table statistics (CTS). The partial sums (SL1L2) can be aggregated to compute continuous statistics (CNT). The probability contingency table counts (PCT) can be aggregated to compute probability statistics. And the neighborhood continuous statistics can be aggregated.
This task to add a new aggregation and statistics derivation type to METViewer: to aggregate multi-category contingency table counts (MCTC) and derive multi-category contingency table statistics (MCTS). Only MCTC table with the same number of categories (column = N_CAT) can be aggregated. Also, the FCST_THRESH column must remain constant, and the OBS_THRESH column must remain constant.
See appendix C of the MET User's Guide, the MET source code, and John for more details on the aggregation and statistics derivation.
CONSIDER enhancing the METViewer loader to support a <file_age> option so that we have the ability to skip over MET output files that are too old.
We should discuss this option. Consider working on this at the same time as the tag described in MET-900:
https://sdg.rap.ucar.edu/jira/browse/MET-900
Created: 27/Oct/17 1:51 PM by John Halley Gotway
This is a current error:
2018-09-20 14:11:47,765 main ERROR FileManager (mvservlet.log) java.io.FileNotFoundException: mvservlet.log (Permission denied) java.io
.FileNotFoundException: mvservlet.log (Permission denied)
2018-09-20 14:11:47,771 main ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.FileAppender for elemen
t File: java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.FileManager$FileManagerFactory@530612ba
] unable to create manager for [mvservlet.log] with data [org.apache.logging.log4j.core.appender.FileManager$FactoryData@2a40cd94] java
.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.FileManager$FileManagerFactory@530612ba] unable to
create manager for [mvservlet.log] with data [org.apache.logging.log4j.core.appender.FileManager$FactoryData@2a40cd94]
Replace it with INFO
As of mv_1_1, the METViewer web GUI creates plots named "plot_YYYYMMDD_HHMMSS.png". Users often go through several iterations in the process of making one plot and doing so causes several version of the plot to show up in the history. Suggest adding a way for the user to specify the plotting job name to be used in place of "plot_timestamp". Each time that job is run, it'd over-write the existing output. That same job name should be used in the file names for the plot, xml, log, rscript, data, and sql. Also, when displaying the plot history along the left side, sort the files by revision date rather than in alphabetical order... that may already be happening, but we just need to check.
Need to check how would this affect the <cache_agg_stat> option? That's intended to avoid doing bootstrapping over and over again. If the same plot name is used, it'd be easy to check if that bootstrapping output file already exists for that job name.
Tatiana Burek created issue - 09/Dec/16 11:04 AM
John Halley Gotway created issue - 06/Jun/13 4:32 PM
Tatiana Burek created issue - 07/Dec/16 7:39 AM
I have attached the definition for the met-7.0 and met-8.0 header files to this ticket for reference. The differences are listed below:
(1) In met-8.0, ADD new ECNT line type consisting of 12 data columns:
TOTAL N_ENS CRPS CRPSS IGN ME RMSE SPREAD ME_OERR RMSE_OERR SPREAD_OERR SPREAD_PLUS_OERR
(2) In met-8.0, REMOVE the following 4 columns from the RHIST line type. These have been moved to the ECNT line type:
CRPS IGN CRPSS SPREAD
(3) In met-8.0, ADD the following 3 columns to the end of the ORANK line type:
ENS_MEAN_OERR SPREAD_OERR SPREAD_PLUS_OERR
(4) In met-8.0, in the MODE _obj.txt ADD the following 2 new columns for:
ASPECT_DIFF (after ANGLE_DIFF and before AREA_RATIO)
CURVATURE_RATIO (after INTERSECTION_OVER_AREA and before PERCENTILE_INTENSITY_RATIO)
in the "Formatting" tab we often use the "Plot Script Commands" option to draw straight lines on the plot, either horizontal, vertical, or diagonal. First, It'd be nice to have a more intuitive way of defining those rather than having to remember the "abline()" command. Second, right now that reference line is drawn last, on top of all the other data. We'd prefer it to be drawn first so that the real data is on top.
Jamie found that increasing the "line width" column in the "series formatting" section did increase the size of the points, but only when plotting "small circle", "circle", and "ring". It has no effect on "square", "rhombus", and "triangle". We edited the call to "lines()" in the Rscript and manually increased "cex = 1" to "cex = 4" and that had the desired effect. I think the most general fix would be adding another "series formatting" column for "cex" or "point size".
Enhance METViewer to perform more generalized conditional verification. During John and Tara's visit to NCEP in November 2014, Binbin Zhou requested a more general way of defining cross-variable filtering criteria. For example, look at RMSE of 10 meter wind speed errors but only when the observed 2 meter temperature was above freezing. This is basically a much more generalized way of defining a list of dates to be used when creating a plot. As such, this would belong in the "fixed values" section. The user would select the time column to use (e.g. FCST_INIT_BEG) and dynamically select the values by first selecting the variable/level/statistic followed by some threshold for that statistic. That would populate the FCST_INIT_BEG check boxes.
There is a bug in METviewer's computation of the nstats value when defining series as groups. I have attached 3 plots to demonstrate this behavior. Note that GitHub won't let me upload .xml files. Instead, I renamed them to .txt and uploaded them.
(1) The first plot has 3 lines on it for regions CONUS, SWC, and SWD. nstats correctly says 3 in the plot. Looking at the Rdata tab, the nstats column correctly says 1 for each row.
(2) I changed the first plot by defining SWC and SWD as a group. nstats now says 4. Looking at the Rdata tab, the nstatus column incorrectly says 2 for each row. I think the problem is caused by having the group listed second. CONUS (not a group) is followed by SWC+SWD (is a group).
(3) Lastly, I made a new plot with APL+GMC (is a group) followed by CONUS (not a group). Now, we're back down to nstats = 2.
One remaining question is what should the nstats column actually be for a group? If you have a group of 14 things, should nstats = 14... or just 1? Based on some additional testing, I think METviewer says it should be 14. If that's correct and the desired behavior, then here's what the counts should be...
For (1), nstats = 3 is correct.
For (2), nstats = 4 is wrong. It should be 1 + 2 = 3.
For (3), nstats = 2 is wrong. It should be 2 + 1 = 3.
This is a request from John that came up when making plots for the EaSM project.
I was plotting a time-series of values and had a sequence of 30 dates (Jan 1, 1971 to Jan 1, 2000) along the x-axis. The date/time string METViewer uses includes year, month, day, hour, minute, and second, which is overkill for my climate dataset.
In the independent variable section of the METViewer GUI, I used the plot "label" option to specify list only the 4-digit year every 5 years, setting the labels in between to an empty string. However, the GUI doesn't allow for empty strings and instead repopulates the label with the original long string.
This issue is to enable the GUI to allow for empty strings in the label box. Also, update the logic when creating the plot. Only define labels on the x-axis where the label value is a string whose length is > 0.
"Lock formatting" doesn't lock color.
After user adds a diff curve "Lock formatting" doesn't work at all
In METViewer version 1.2, the user can select whether they want to create png or jpeg output image files. During the 2015 WRF User Workshop, Huaqing Cai (NCAR/RAL) suggested that we add the option of creating postscript output which is much easier to modify when preparing images for a publication.
This is low priority task and there's no clear source of funding. Just documenting the request.
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.