Code Monkey home page Code Monkey logo

cuahsi / hydrodesktop Goto Github PK

View Code? Open in Web Editor NEW
73.0 73.0 20.0 421.84 MB

HydroDesktop is a free and open source GIS enabled desktop application that helps you search for, download, visualize, and analyze hydrologic and climate data registered with the CUAHSI Hydrologic Information System. HydroDesktop is part of the legacy CUAHSI toolkit and is not under active development. Click the "releases" link below to download the latest installer for Microsoft Windows.

Batchfile 0.14% Inno Setup 0.21% C# 90.25% Visual Basic 5.86% HTML 0.91% R 1.70% Python 0.66% CSS 0.05% Ruby 0.02% XSLT 0.17% Shell 0.03%

hydrodesktop's People

Contributors

castronova avatar danames avatar mogikanin avatar xhqiao89 avatar

Stargazers

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

Watchers

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

hydrodesktop's Issues

Limit the size of search area and adjust search tile size

jirikadlec2[CodePlex]
In areas with very high density of sites, the search takes very long time and returns too many results (slow to display on the map). Also the tile size (1x 1 degree is too large which prevents frequent reporting of progress. As a temporary measure in 1.3,
impose a limit on maximum allowed selected area and reduce the search tile size in areas of very high site density.

Maximum search area: This is the intersection of the selected area (rectangle or polygons) and the selected web service bounding boxes.

The maximum search area should be 500,000 square kilometers in low-density regions.

The maximum search area should be 100,000 square kilometers in high-density regions.

Definition of high density regions is: North-East USA, Texas. The simplified polygon coordinates of these regions are attached.

Definition of low density regions is: all other regions.

Search tile size for high density regions: 0.25 x 0.25 degrees
Search tile size for low density regions: 1 x 1 degrees

The selected search area is assumed to be a high density region if it is completely within a high density region.

Note: The values of maximum search area, and search tile size will change in the future as the search server mechanism improves. If a 'paged' query is added to the catalog in the future, the tile approach may no longer be needed. For 1.3, make the area and
tile size parameters and high density polygons configurable (read from search3.dll.config) so that they can be easily adjusted if required

selection options

ehersh[CodePlex]
The selection tool should include the following capabilities (similar to ArcGIS):
-set selectable layers/ make only selectable layer
-add to/ replace/ remove from current selection (from Home tab, not just from attribute table)
-clear selected features (from Home tab, not just from attribute table)
-select by attributes/ select by location.

Removing Data Sites Layers

jirikadlec2[CodePlex]
Allow selecting multiple layers in the legend (by using ctrl or shift) and right-click quotRemove Layerquot. A message should be shown quotAre you sure you want to delete the data sites?quot

(feature request by Steve in 1.3 testing document)

HydroModeler Filename bug

rfboykin[CodePlex]
When saving a model, the default name is quot[Directory][name]quot instead of simply the file name.

For example, when I try to save Water_Sediment_Concentration.opr, the default file name shown is:

quotC:\HydroDesktop\Binaries\Plugins\HydroModeler\example_configuration\Water_Sediment_Concentrationquot instead of just quotWater_Sediment_Concentrationquot.

Regardless, the file is still saved with the name at the end. I am reporting this as a minor cosmetic bug.

HydroModeler: DbWriter Does NOT work with older components

Castronova[CodePlex]
When developing the Load Calculation model, the DbWriter was modified to handle multiple data series. It relies on getting series data from the database (see line 456) and fails when data does not already exist in the database. This component needs to
be modified to work with both the older and newer components.

HydroModeler - DbReader uses VariableName as Quantity ID

jirikadlec2[CodePlex]
I'm trying to build a HydroModeler model using my data and the Hargreaves-Samani ET model component. My problem is: In my data from the quotCentral European Climate Dataquot source, there is one variable name quotTemperaturequot but there are three
distinct variable codes: quotCZSNW:TMAX, CZSNW:TMIN, CZSNW:TAVGquot. These variables (quotquantitiesquot) all have the same VariableName, but they have a different VariableCode and DataType (Maximum, Minimum, Average).

When I edit the quotconnection propertiesquot between DbReader and HargreavesPET, I can only see one quotTemperaturequot Output exchange item. I would expect to see three output exchange items: TMIN, TMAX, TAVG. Attached is the database with my data.

Add WFS Support

jirikadlec2[CodePlex]
This is a placeholder for adding WFS (Web Feature Service) support.
This is an important milestone on the path towards full WaterOneFlow 2.0 / WaterML 2.0 compatibility

Detailed HydroDesktop WFS design specification should go in here.

Add Status Indicators of Service Status

rhooper[CodePlex]
We need to add service indicators at various stages of the search algorithm.

When HD is launched, HIS Central should be pinged to make sure it is alive before user takes the time to define a search. (Red Light/Green Light)

After search results are returned, each of the identified services should be pinged to assess their status so the user knows the service is available before launching download.

HydroModeler - error in SolarRadiation model

jirikadlec2[CodePlex]
My quotRegional and Language Settingsquot on my computer is Czech. When I run the SolarRadiation model in HydroModeler, I get an unhandled exception in nsr.c line 167 in the date time conversion part:

int Dm = Convert.ToInt32(current_time.Split('/')[1]); //the day of the month
int M = Convert.ToInt32(current_time.Split('/')[0]); //the month
int Y = Convert.ToInt32(current_time.Split('/')[2]); //the year

This code doesn't work in non-English regional language / date format settings because in some settings the quot.quot is used instead of quot/quot for the year/day/month separator.

Selection isn't intuitive

jirikadlec2[CodePlex]
Consider the following use case: Search for Heavy Metals in Michigan.
When the search completes, data sites from more than one data source are shown in the map.

For each data source a separate map layer is shown.
The user wants to download data from all sources. However, when the users try to use the quotSelectquot tool in the map tab, it will only select data sites from the selected data source layer and not from all layers.

Suggestions how to make selection more intuitive are:

In the Context menu of a map layer, add a quotSelect Allquot optionquot
In the Context menu of a quotdata sitesquot layer, add a quotData - Download Time Series Dataquot context menu item. Once a quotdata sitesquot layer has some sites with downloaded data, this context menu item should change to quotData - Update
Time Series Data from Serverquot. Add the 'Download' ribbon tab with a 'Select Sites' option. This option becomes enabled after a search completes and it should allow to select sites from multiple layers at the same time (it should select the 'Data sites' group and set all layers in it
to selectable)

Graph View - Save format of the graph

jirikadlec2[CodePlex]
Feature request:
Add a function to save the format of a graph. HD would remember the line widths, scales, etc. Could be handy when creating graphs every month as new data is coming in.

Christina River Basin CZO - Some series don't have data

jirikadlec2[CodePlex]
I searched for all data from Christina River Basin CZO
(default dates, keyword- hydrosphere). Some series fail to download due to following error quotno series in xml filequot.

This is probably an error on the catalog - some series registered at the catalog no longer exist or don't have data.

DbOperation

Mostafaelag[CodePlex]
When loading the Dbreader, I got this error quotSQLite error no such column: ds.Dimensionquot Line 714 in DbOperation.cs

Integrate Metadata Fetcher with Search

jirikadlec2[CodePlex]
The general goal of this re-design is to simplify the management and discovery of data sources that are not registered at HIS Central.

Add a button 'Add data source' to the Data Sources dialog in the search tab.
This clicking this button launches the existing quotService Managementquot dialog for adding an unpublished WaterOneFlow service URL (currently this dialog can be launched from the 'table' tab in the Metadata Fetcher extension)
after downloading metadata from the service, the quotKeywordquot list and keyword tree is updated by adding an extra node 'Other Keywords' to the tree view and adding all variable names from the newly added service as child nodes of the 'Other Keywords'
node.
after downloading metadata from the service, the 'Data Sources' list is expanded by adding a section 'User Data Sources' and adding the user-defined service in this section.
When user runs search, then the search also searches across series from the user-defined service(s). The searcher should only try to search across user-defined services in the metadata cache DB if the bounding box of the user-defined service overlaps the
search area and if the selected keyword is one of the keywords provided by the user defined service.

(Note: if the variable names in the registered service follow the ODM controlled vocabulary convention, then no extra keywords need to be added to the tree view. This would require that HydroDesktop has a lookup between HIS Central concept keywords and controlled
vocabulary variable names)

Add support for REST services

jirikadlec2[CodePlex]
We need to add support for REST services in the Download plugin:

  1. Recognizing a valid data sites layer:
    If a point layer has the columns:
    SiteCode, VarCode, StartDate, EndDate, WaterMLUri, then it is a valid REST-enabled Data Sites layer. This layer should have the pop-up functionality enabled.

  2. Downloading the data in DownloadManager: If the layer has a WaterMLUri column, then the download manager should get the xml from this Url instead of using WaterOneFlowClient / SOAP. For example,

http://midgewater.twdb.state.tx.us/tpwd/GetValues?location=TPWD:275107_970132variable=TPWD:seawater_salinitystartDate={time:start}endDate={time:end}

is a valid WaterML REST uri. The tokens {time:start} and {time:end} should be replaced by the values of the StartTime and EndTime columns in this case.

Attached is a shapefile that has the WaterMLUri column.

HydroModeler: Save prompt when editing model properties

Castronova[CodePlex]
When the user edits model properties and then clicks a different part of the application, they should be notified that they will lose their unsaved changes. Currently, the user is not notified that the changes they've made are discarded.

NRE Exception in SearchLayerModifier

jirikadlec2[CodePlex]
I was testing the data export and selection functionality and found the following exception:

Steps to duplicate:

In search, select area - countries - USA and Data Sources - Christina River Critical Zone Observatory
select some sites and download data Use the Map tab select tool to select one site with downloaded data in the map
Right - click on the Christina River Basin Critical Zone Observatory and choose Data - Export Data in the context menu
In the dialog choose quotSelecte featuresquot option, click OK Click OK in the Do you want to load the shapefile? message The unhandled exception is shown:

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.

at HydroDesktop.DataDownload.SearchLayersProcessing.SearchLayerModifier.UpdateSymbolizing(IFeatureLayer layer) in F:\dev\HydroDesktop\Source\DataDownload\DataDownload\SearchLayersProcessing\SearchLayerModifier.cs:line 262

at HydroDesktop.DataDownload.SearchLayersProcessing.SearchLayerModifier.AddCustomFeaturesToSearchLayer(IFeatureLayer layer) in F:\dev\HydroDesktop\Source\DataDownload\DataDownload\SearchLayersProcessing\SearchLayerModifier.cs:line 81

at HydroDesktop.DataDownload.DataDownloadPlugin.AttachLayerToPlugin(ILayer layer) in F:\dev\HydroDesktop\Source\DataDownload\DataDownload\DataDownloadPlugin.cs:line 201

at HydroDesktop.DataDownload.DataDownloadPlugin.Map_LayerAdded(Object sender, LayerEventArgs e) in F:\dev\HydroDesktop\Source\DataDownload\DataDownload\DataDownloadPlugin.cs:line 190

at DotSpatial.Symbology.Group.OnLayerAdded(Object sender, LayerEventArgs e) in F:\dev\DotSpatial\DotSpatial.Symbology\Group.cs:line 602

at DotSpatial.Symbology.Group.Layers_LayerAdded(Object sender, LayerEventArgs e) in F:\dev\DotSpatial\DotSpatial.Symbology\Group.cs:line 592

at DotSpatial.Symbology.LayerEventList1.OnLayerAdded(Object sender, LayerEventArgs e) in F:\dev\DotSpatial\DotSpatial.Symbology\LayerEventList.cs:line 305

at DotSpatial.Symbology.LayerEventList1.OnIncludeComplete(T item) in F:\dev\DotSpatial\DotSpatial.Symbology\LayerEventList.cs:line 186

at DotSpatial.Serialization.BaseList`1.DoInsert(Int32 index, T item) in F:\dev\DotSpatial\DotSpatial.Serialization\BaseList.cs:line 122

at DotSpatial.Controls.MapLayerCollection.Insert(Int32 index, IMapLayer item) in F:\dev\DotSpatial\DotSpatial.Controls\MapLayerCollection.cs:line 297

at DotSpatial.Controls.MapGroup.Insert(Int32 index, ILayer layer) in F:\dev\DotSpatial\DotSpatial.Controls\MapGroup.cs:line 181

at DotSpatial.Symbology.Forms.FeatureLayerEventReceiver.LoadFeatureSetAsLayer(FeatureLayerEventArgs e, FeatureSet fs, String newLayerName) in F:\dev\DotSpatial\DotSpatial.Symbology.Forms\FeatureLayerEventReceiver.cs:line 113

at DotSpatial.Symbology.Forms.FeatureLayerEventReceiver.ExportDataClicked(Object sender, FeatureLayerEventArgs e) in F:\dev\DotSpatial\DotSpatial.Symbology.Forms\FeatureLayerEventReceiver.cs:line 152

at DotSpatial.Symbology.FeatureLayerEventSender.Raise_ExportData(Object sender, FeatureLayerEventArgs e) in F:\dev\DotSpatial\DotSpatial.Symbology\FeatureLayerEventSender.cs:line 138

at DotSpatial.Symbology.FeatureLayer.OnExportData() in F:\dev\DotSpatial\DotSpatial.Symbology\FeatureLayer.cs:line 2086

at DotSpatial.Symbology.Layer.ExportDataClick(Object sender, EventArgs e) in F:\dev\DotSpatial\DotSpatial.Symbology\Layer.cs:line 425

at System.Windows.Forms.MenuItem.OnClick(EventArgs e)
at System.Windows.Forms.MenuItem.MenuItemData.Execute()
at System.Windows.Forms.Command.Invoke()
at System.Windows.Forms.Command.DispatchID(Int32 id)
at System.Windows.Forms.Control.WmCommand(Messageamp m)
at System.Windows.Forms.Control.WndProc(Messageamp m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Messageamp m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Messageamp m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr

Change units on graphs

nmhydro[CodePlex]
The prerequisite for this feature is implementing feature 8377 (Add support for unit conversion). This feature should be implemented as a quotChange Unitsquot ribbon button in the Graph tab. When the user clicks quotChange Unitsquot a new form
is displayed. This form shows the list of all current variables. For each variable, it shows the current unit and a quotnew unitquot drop down. The quotnew unitquot drop down is populated with all units to which the current unit can be converted. For
example if the current unit is meter then the list contains values such as millimeter, centimeter, kilometer, inch, foot, yard, mile..

When the user selects one of the options, the graphs for the selected variable are re-drawn using the new units and any future graphs of series with the selected variable will also be displayed using the selected units.

[Reported originally by Stephen]

HydroR - Add "deriveDataSeries" function

jirikadlec2[CodePlex]
When using HydroR it is currently difficult to create a new data series (based on an existing series) and save it to the database. One use case is forecasting: The forecast applies to an existing site and variable, but the value type and method are different.
Also the ValueCount is different from any existing dataSeries in the DB. In order to reduce the number of code that must be written I propose adding a new method quotDeriveDataSeriesquot with following input parameters:

connectionString (the database connection)
originalSeriesID (the ID of the original series)
times (a vector of new observation dates/times)
dataValues (a vector of new data values)

output: the derived series with the time/value arrays read from the times and dataValues vectors (both vectors must be same length). The derived series has the same site, source and quality control level as the original series but it can have a different number
of data values. The method is set to quotDerived using HydroRquot. The variable$ValueType is changed to quotDerived Valuequot. After running deriveDataSeries, user can do some modification to its other attributes (if required) and then run saveDataSeries
to save it to the DB.

HydroModeler Minor Graphics Bug

rfboykin[CodePlex]
When running quotSmithBranchModel_RandomInput.oprquot, the green bar only goes a quarter of the way despite the simulation stating it has finished.

I have only seen this bug when running that particular file, I am unsure if the bug is specific to that file or could occur with others.

NETCDF Support

danames[CodePlex]
NETCDF support through GDAL. Implement a GDAL data provider plugin for HydroDesktop that gives access to NETCDF files. CRWR to provide sample data.

EPA Watershed Delineation

HI there, am currently trying the tutorial project (Hays Watershed), and am at the step where it asks to delineate the watershed near Jacobs Well Spring. When using the new delineate tool, I get an error that the server can not find the data. This happens clicking anywhere in Texas, can anybody help?

Thanks!

Search across multiple polygons

jirikadlec2[CodePlex]
When searching across multiple polygons which are neighboring polygons -
try to union these polygons first (using DotSpatial topology function) and then search on the bounding box.

This should speed up the search, by reducing the number of PointInPolygon tests and reducing the number of HIS Central service calls

HydroModeler: Selected Component Color

feltonb[CodePlex]
After adding a component and single clicking to select it, the component will change colors to black text with a dark blue background. This is very difficult to read and would suggest using a lighter background color.

attribute table editor should have option to export attributes to a table

twhitvine[CodePlex]
Even if it's a geospatial layer, sometimes the user just wants to export a table. Since the table is already in the Attribute Table Editor, a button could be added that export the table to perhaps DBF or CSV. I think the ImportExport library in HydroDesktop
has utilities for exporting DataTables to delimited text files.

Data filter in Graph and Table

dbs732[CodePlex]
There should be a way to filter data out of the table and graphs using fields like quotMethodquot or quotQualifierID,quot not just DateTime

HydroModeler - DbReader DbPath

jirikadlec2[CodePlex]
The DbPath parameter of the DbReader component is specified in the .omi file. When the DbPath parameter is not specified (ie the current project database should be used), then I can't see DbPath in the quotOmi Argumentsquot list. Therefore, I can't
change the dbPath parameter using the HydroModeler GUI. The only way to change the dbPath parameter is to modify the *.omi file using a text editor outside of HydroModeler.

ArcGIS Online Support

jirikadlec2[CodePlex]
Suggestions for the ArcGIS Online plug-in:

display a list of data services from the ArcGIS Online quotObservations Catalogquot
User can select one or more services from this list - the associated data cart data set will be shown as a layer in the map using the catalog-specified icon with icon size proportional to Value Count
When the layer is added to the map, it can be used as a quotData Sitesquot layer (pop-up context menu items are handled by the Data Download plug-in)
Each ArcGIS online layer has a quotrefreshquot context menu that can be used to refresh the displayed sites from the ArcGIS Online service
When a project is saved, the list of active ArcGIS Online service layers is also saved.

Suggested implementation:

add support for point feature layers from the quotObservations Catalogquot grouping
Add support for other layers

Integration in HydroDesktop: Two possible options have been suggested - (A) integrate as an addditional data source in search or metadata fetcher

(B) integrate as a separate plugin launched on the main toolbar and located next to the quotOnline Basemapquot tool button

Display Sites in Metadata Cache Database

twhitvine[CodePlex]
If we could display site locations in the metadata cache database, we'd have a visual reference for what metadata we've harvested. This would be especially useful if people start sharing metadata cache databases.

Allow User to Change Language

jirikadlec2[CodePlex]
There needs to be an option to change the language. The currently selected language should be stored in the settings file or in the project file. All forms need to be set to Localizable.

Allow HIS Central to track requests from HydroDesktop

twhitvine[CodePlex]
This would be a nice way of seeing what fraction of requests to our system are from HydroDesktop, and also give a sense of how much HydroDesktop is being used.

From Dave V.: We could set the http-quotreferrerquot and/or quotUserAgentquot code in Hydrodesktop to a recognizable value. When HydroDekstop calls HIS central that will be logged to the web server logs, and it will be recognizable.

Download Data - Update theme, graph and table instantly

jirikadlec2[CodePlex]
When launching a long running download, it would be useful to update the series selector in graph, table and edit every time a series is downloaded and saved to database. Also the quotThemesquot layer in the map should be updated with each new downloaded
series.

This will allow the HydroDesktop user start working with the data before the whole download completes.

Errors on download EPA data

rhooper[CodePlex]
On some series,the catalog returns that data is available at a site and then on download, the download fails because no data is available at that site, so catalog is not synched properly with database. I can provide specific examples and log if that helps,
but seems to occur at about 50% of sites I've tried so far.

Additional search screening

dtarb[CodePlex]
Following Demoing HydroDesktop at the CUAHSI Colloquium, I received a number of requests/suggestions for additional search functionality, such as:

Find series with more than X months of data Find series with more than Y data values.
I suggest that general query functionality be established so that any of the content of the series catalog can be used in screening for series. This should be coordinated with HIS central to determine whether implementation is best at Central or Desktop. (I
prefer Central)

HydroModeler Ribbon Feature Request

rfboykin[CodePlex]
I feel that the View box in the ribbon should either be moved to be positioned beside the Composition box, or that the Pan command should be included in the Composition ribbon box as its function purely affects the Composition.

*NOTE: For whatever reason I cannot edit work item details when submitting issues, but this should be a Feature Request instead of an issue.

Installer: Check for R

valentinedwv[CodePlex]
Create an installer. Ask user to install R if it's not on user's computer.

Update Developer Documentation

jirikadlec2[CodePlex]
The developer documentation is out-of date. Important tasks are:

  1. Update the plug-in (extension) developer tutorials for 1.3

  2. Update design, architecture, dependency schemas and class diagrams

  3. Create tutorials for working with HydroDesktop.SeriesView, HydroDesktop.Database and HydroDesktop.WebServices in a plug-in

  4. Update documentation on working with Mercurial

  5. Update documentation on working with the auto-build system

HydroR - Incomplete Documentation

jirikadlec2[CodePlex]
Experience of working with HydroR demonstrated the need for more detailed HydroR documentation:

  1. the CreateDataSeries() method is not documented
  2. the data.frame data structures returned by getDataSeries() are not documented
  3. a simple code example how to derive a data series in HydroR and save it back to the data repository database is needed.

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.