Git Product home page Git Product logo

metviewer's People

Contributors

bikegeek avatar fisherhucar avatar georgemccabe avatar johnhalleygotway avatar jprestop avatar lisagoodrich avatar mollybsmith-noaa avatar randytpierce avatar tatianaburek avatar venitahagerty avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

iloire

metviewer's Issues

Create a module for modifiing data in database MET-842

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

Add plot formatting options for the Y1 and Y2 axes.

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".

Improve interface for date picker to allow people to pick more efficiently MET-689

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.

Do not replace '/' with '_' for labels

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.

Investigate ways to speed up bootstrapping in METViewer MET-463

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.

to define a mapping of values to colors MET-497

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.

pass user legend to Bar Rscript MET-809

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

Consider adding a second plot script command option for METViewer.

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...

  • plot grid lines
  • data-derived plot elements (lines, boxplots, etc...)
  • execute commands contained in <plot_cmd>

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...

  • add XML tag named <pre_plot_cmd> to store plotting commands after grid lines are drawn but before the data
  • keep existing XML <plot_cmd> tag named the same for backward compatibility
  • add new box on GUI Formatting tab named "Pre-Plot Script Commands"
  • change the name of the existing GUI box from "Plot Script Commands" to "Post-Plot Script Commands"

This is low priority task and there's no clear source of funding. Just documenting the request.

Second test issue

Here's another test. I want to look at viewing and filtering issues.

Generate an error message when fcst_lead and fcst_init_beg are both selected for EE MET-777

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

combine several vx masks and/or fcst_leads together into one column on the scorecard

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

Provide an option in the METviewer GUI to prevent the resetting of all the options when you switch databases.

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?

Refine METviewer to compute parametric confidence intervals for statistics when appropriate. MET-980

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.

Test issue

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.

Enhance METviewer loader to search recursively from a top-level directory and store MET output from all sub-directiories. MET-901

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.

Error during calculating CNT and CNTSUM statistics (Difference option) for MODE MET-322

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

Add "package download" option

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

add 'MV_VERSION' table with version info in it MET-887

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

Bugs in mv2.5 when creating scorecards. MET-1004

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:

JHG: Added these flags to get past runtime error from scorecards

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.

Enhance METViewer to aggregate the multi-category contingency table counts (MCTC) and compute statistics (MCTS) MET-353

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.

Display an imformative message instead of an error about missing log file diring loading

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

Enable the user to specify a plotting job name. MET-504

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.

Enhance METviewer to read met-8.0 output.

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)

add UI to draw straight lines on the plot MET-493

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.

increasing the size of the points symbols being plotted. MET-650

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

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.

Bug in computation of nstats value when using groups

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.

plot_20180919_163539.txt
plot_20180919_163539

(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).

plot_20180919_163626.txt
plot_20180919_163626

(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.

plot_20180919_163723.txt
plot_20180919_163723

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.

Enable the user more control over the x-axis labels in METViewer.

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.

image

Consider adding eps as an output image file format option for METViewer. MET-524

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.