Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix formatting, remove unused imports #3

Merged
merged 3 commits into from
Aug 18, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# GEOGloWS Hydroviewer - Tethys Web App
# GEOGloWS Hydroviewer (Tethys Web App)

Developed by Riley Hales and Kyler Ashby, 2020
(c) Riley Hales, Kyler Ashby, BYU Hydroinformatics Lab
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
setup(
name=release_package,
version='1.9',
description='Interface with the GEOGloWS ECMWF Streamflow model developed by the BYU Hydroinformatics lab.',
description='GUI for the GEOGloWS ECMWF Streamflow model',
long_description='Contains an interactive map for viewing modeled streamflow using the GEOGloWS data and mapping '
'web services. Includes tools for extracting a subset of the delineated shapefiles and creating '
'a customized hydroviewer interface.',
Expand Down
7 changes: 4 additions & 3 deletions tethysapp/geoglows_hydroviewer/app.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
from tethys_sdk.app_settings import CustomSetting
from tethys_sdk.base import TethysAppBase, url_map_maker
from tethys_sdk.base import TethysAppBase
from tethys_apps.base.workspace import _get_app_workspace


class GeoglowsHydroviewer(TethysAppBase):
"""
Tethys app class for the GEOGloWS ECMWF Streamflow Hydroviewer
Tethys app class for the GEOGloWS Hydroviewer
"""
name = 'GEOGloWS Hydroviewer'
package = 'geoglows_hydroviewer'
root_url = 'geoglows-hydroviewer'
index = 'home'
icon = 'geoglows_hydroviewer/images/water.jpeg'
color = '#2980b9'
description = 'A tool for viewing the GEOGloWS ECMWF Hydrologic Model and creating subset shapefiles.',
description = 'A tool for viewing the GEOGloWS ECMWF Streamflow Hydrologic Model and creating subset shapefiles.',
tags = 'geoglows, streamflow, discharge, time series, hydrograph, geoprocessing, esri'
enable_feedback = False
feedback_emails = []
Expand Down
49 changes: 13 additions & 36 deletions tethysapp/geoglows_hydroviewer/controllers.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
from tethys_sdk.gizmos import SelectInput, Button
from tethys_sdk.routing import controller

from .app import GeoglowsHydroviewer as App
from .manage_gauge_networks import get_observed_station_flow
from .manage_gauge_networks import list_gauge_networks
from .manage_uploaded_observations import delete_old_observations
Expand All @@ -36,9 +35,7 @@
)


@controller(
app_workspace=True,
)
@controller(app_workspace=True)
def home(request, app_workspace):
"""
Controller for the app home page.
Expand Down Expand Up @@ -76,10 +73,8 @@ def home(request, app_workspace):

return render(request, 'geoglows_hydroviewer/geoglows_hydroviewer.html', context)

@controller(
url='hydroshare',
app_workspace=True,
)

@controller(url='hydroshare', app_workspace=True)
def hydroshare_view(request, app_workspace):
"""
Controller for the Hydroshare view page.
Expand Down Expand Up @@ -141,10 +136,8 @@ def hydroshare_view(request, app_workspace):

return render(request, 'geoglows_hydroviewer/geoglows_hydroviewer.html', context)

@controller(
name='getAvailableDates',
url='hydroviewer/getAvailableDates',
)

@controller(name='getAvailableDates', url='hydroviewer/getAvailableDates')
def get_available_dates(request):
reach_id = request.GET['reach_id']
s = requests.Session()
Expand All @@ -156,17 +149,14 @@ def get_available_dates(request):
))


@controller(
name='getForecastData',
url='hydroviewer/getForecastData',
)
@controller(name='getForecastData', url='hydroviewer/getForecastData')
def get_forecast_data(request):
# get data
s = requests.Session()
reach_id = request.GET['reach_id']
start_date = request.GET['start_date']
end_date = request.GET['end_date']
rec = gsf.forecast_records(reach_id, start_date=start_date.split('.')[0], end_date=end_date.split('.')[0], s=s)
rec = gsf.forecast_records(reach_id, start_date=start_date.split('.')[0], end_date=end_date.split('.')[0], s=s)
stats = gsf.forecast_stats(reach_id, forecast_date=end_date, s=s)
ens = gsf.forecast_ensembles(reach_id, forecast_date=end_date, s=s)
rper = gsf.return_periods(reach_id, s=s)
Expand All @@ -181,10 +171,7 @@ def get_forecast_data(request):
))


@controller(
name='getHistoricalData',
url='hydroviewer/getHistoricalData',
)
@controller(name='getHistoricalData', url='hydroviewer/getHistoricalData')
def get_historical_data(request):
# get data
s = requests.Session()
Expand All @@ -206,11 +193,7 @@ def get_historical_data(request):
))


@controller(
name='getBiasAdjusted',
url='hydroviewer/getBiasAdjusted',
app_workspace=True,
)
@controller(name='getBiasAdjusted', url='hydroviewer/getBiasAdjusted', app_workspace=True)
def get_bias_adjusted(request, app_workspace):
# accept the parameters from the user
data = request.GET.dict()
Expand All @@ -231,7 +214,7 @@ def get_bias_adjusted(request, app_workspace):
# get the data you need to correct bias
sim_data = gsf.historic_simulation(reach_id)
forecast_stats = gsf.forecast_stats(reach_id)

# remove negative flows from the historical simulation
sim_data[sim_data["streamflow_m^3/s"] < 0] = 0

Expand All @@ -253,22 +236,16 @@ def get_bias_adjusted(request, app_workspace):
scatters=gpp.corrected_scatterplots(fixed_hist, sim_data, obs_data, titles=titles, outformat='plotly_html'),
stats_table=gbc.statistics_tables(fixed_hist, sim_data, obs_data),
))


@controller(
url='findReachID',
)

@controller(url='findReachID')
def find_reach_id(request):
reach_id = request.GET['reach_id']
lat, lon = gsf.reach_to_latlon(int(reach_id))
return JsonResponse({'lat': lat, 'lon': lon})


@controller(
name='get_gauge_geojson',
url='getGaugeGeoJSON',
app_workspace=True,
)
@controller(name='get_gauge_geojson', url='getGaugeGeoJSON', app_workspace=True)
def get_gauge_geojson(request, app_workspace):
workspace_path = app_workspace
with open(os.path.join(workspace_path.path, 'gauge_networks', request.GET['network'])) as geojson:
Expand Down
61 changes: 14 additions & 47 deletions tethysapp/geoglows_hydroviewer/controllers_creator.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,11 @@
'settings and contact the server admin for help downloading this data.'


@controller(
name='geoglows_hydroviewer_creator',
url='creator',
app_workspace=True,
)
@controller(name='geoglows_hydroviewer_creator', url='creator', app_workspace=True)
def home(request, app_workspace):
if not shapefiles_downloaded():
messages.warning(request, WARN_DOWNLOAD_SHAPEFILES)

projects_path = os.path.join(app_workspace.path, 'projects')
if not os.path.exists(projects_path):
os.mkdir(projects_path)
Expand All @@ -71,10 +67,7 @@ def home(request, app_workspace):
return render(request, 'geoglows_hydroviewer/geoglows_hydroviewer_creator.html', context)


@controller(
url='/creator/add-new-project',
app_workspace=True
)
@controller(url='/creator/add-new-project', app_workspace=True)
def add_new_project(request, app_workspace):
project = request.GET.get('new_project_name', False)
if not project:
Expand All @@ -96,10 +89,7 @@ def add_new_project(request, app_workspace):
return redirect(reverse('geoglows_hydroviewer:geoglows_hydroviewer_creator'))


@controller(
url='creator/delete_existing_project',
app_workspace=True,
)
@controller(url='creator/delete_existing_project', app_workspace=True)
def delete_existing_project(request, app_workspace):
project = request.GET.get('project', False)
if not project:
Expand All @@ -113,10 +103,7 @@ def delete_existing_project(request, app_workspace):
return redirect(reverse('geoglows_hydroviewer:geoglows_hydroviewer_creator'))


@controller(
url= 'creator/project',
app_workspace=True,
)
@controller(url='creator/project', app_workspace=True)
def project_overview(request, app_workspace):
project = request.GET.get('project', False)
if not project:
Expand Down Expand Up @@ -161,15 +148,12 @@ def project_overview(request, app_workspace):
return render(request, 'geoglows_hydroviewer/creator_project_overview.html', context)


@controller(
url='creator/render',
app_workspace=True,
)
@controller(url='creator/render', app_workspace=True)
def render_hydroviewer(request, app_workspace):
project = request.POST.get('project', False)
project_title = False

# contols to auto fill form values with project values
# controls to auto fill form values with project values
projects_path = os.path.join(app_workspace.path, 'projects')
projects = os.listdir(projects_path)
projects = [(prj.replace('_', ' '), prj) for prj in projects if os.path.isdir(os.path.join(projects_path, prj))]
Expand Down Expand Up @@ -213,10 +197,7 @@ def render_hydroviewer(request, app_workspace):
return render(request, 'geoglows_hydroviewer/creator_render_hydroviewer.html', context)


@controller(
url='/creator/project/edit/draw_boundaries',
app_workspace=True,
)
@controller(url='/creator/project/edit/draw_boundaries', app_workspace=True)
def draw_boundaries(request, app_workspace):
project = request.GET.get('project', False)
if not project:
Expand Down Expand Up @@ -254,9 +235,7 @@ def draw_boundaries(request, app_workspace):
return render(request, 'geoglows_hydroviewer/creator_boundaries_draw.html', context)


@controller(
url='creator/project/edit/boundary_by_outlet',
)
@controller(url='creator/project/edit/boundary_by_outlet')
def boundary_by_outlet(request):
project = request.GET.get('project', False)
if not project:
Expand All @@ -269,10 +248,7 @@ def boundary_by_outlet(request):
return render(request, 'geoglows_hydroviewer/creator_boundaries_outlet.html', context)


@controller(
url='/creator/project/edit/choose_boundary_country',
app_workspace=True,
)
@controller(url='/creator/project/edit/choose_boundary_country', app_workspace=True)
def choose_boundary_country(request, app_workspace):
project = request.GET.get('project', False)
if not project:
Expand Down Expand Up @@ -321,10 +297,7 @@ def choose_boundary_country(request, app_workspace):
return render(request, 'geoglows_hydroviewer/creator_boundaries_choose.html', context)


@controller(
url='/creator/project/edit/save_boundaries',
app_workspace=True,
)
@controller(url='/creator/project/edit/save_boundaries', app_workspace=True)
def save_boundaries(request, app_workspace):
proj_dir = get_project_directory(request.POST['project'], app_workspace)

Expand All @@ -350,10 +323,8 @@ def save_boundaries(request, app_workspace):

return JsonResponse({'status': 'success'})

@controller(
url='/creator/project/edit/find_upstream_boundaries',
app_workspace=True,
)

@controller(url='/creator/project/edit/find_upstream_boundaries', app_workspace=True)
def find_upstream_boundaries(request, app_workspace):
project = request.GET.get('project', False)
reachid = int(request.GET.get('reachid'))
Expand Down Expand Up @@ -396,11 +367,7 @@ def find_upstream_boundaries(request, app_workspace):
return JsonResponse({'status': 'fail'})


@controller(
name='retrieve_boundaries',
url='creator/project/edit/retrieve_boundaries',
app_workspace=True,
)
@controller(name='retrieve_boundaries', url='creator/project/edit/retrieve_boundaries', app_workspace=True)
def retrieve_hydroviewer_boundaries(request, app_workspace):
proj_dir = get_project_directory(request.GET['project'], app_workspace)
with open(os.path.join(proj_dir, 'boundaries.json'), 'r') as geojson:
Expand Down
20 changes: 4 additions & 16 deletions tethysapp/geoglows_hydroviewer/controllers_creator_export.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,7 @@
SHAPE_DIR = App.get_custom_setting('global_delineation_shapefiles_directory')


@controller(
url='/creator/project/export/geoserver',
app_workspace=True,
)
@controller(url='/creator/project/export/geoserver', app_workspace=True)
def export_geoserver(request, app_workspace):
project = request.POST.get('project', False)
workspace_name = request.POST.get('workspace', 'geoglows_hydroviewer_creator')
Expand Down Expand Up @@ -86,10 +83,7 @@ def export_geoserver(request, app_workspace):
return JsonResponse({'status': 'success'})


@controller(
url='/creator/project/export/zipfile',
app_workspace=True,
)
@controller(url='/creator/project/export/zipfile', app_workspace=True)
def export_zipfile(request, app_workspace):
project = request.GET.get('project', False)
if not project:
Expand All @@ -103,10 +97,7 @@ def export_zipfile(request, app_workspace):
return response


@controller(
url='/creator/project/export/hydroshare',
app_workspace=True,
)
@controller(url='/creator/project/export/hydroshare', app_workspace=True)
def export_hydroshare(request, app_workspace):
project = request.POST.get('project', False)
if project is False:
Expand Down Expand Up @@ -172,10 +163,7 @@ def export_hydroshare(request, app_workspace):
f'?{urllib.parse.urlencode(dict(project=project))}')


@controller(
url='/creator/project/export/html',
app_workspace=True,
)
@controller(url='/creator/project/export/html', app_workspace=True)
def export_html(request, app_workspace):
template_path = os.path.join(app_workspace.path, 'hydroviewer_interactive_template.html')

Expand Down
18 changes: 4 additions & 14 deletions tethysapp/geoglows_hydroviewer/controllers_creator_geoprocess.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,7 @@
SHAPE_DIR = App.get_custom_setting('global_delineation_shapefiles_directory')


@controller(
name='geoprocess_idregion',
url='creator/project/geoprocessing/geoprocess_idregion',
app_workspace=True,
)
@controller(name='geoprocess_idregion', url='creator/project/geoprocessing/geoprocess_idregion', app_workspace=True)
def geoprocess_hydroviewer_idregion(request, app_workspace):
project = request.GET.get('project', False)
if not project:
Expand All @@ -35,11 +31,7 @@ def geoprocess_hydroviewer_idregion(request, app_workspace):
return JsonResponse({'error': 'unable to find a region'}), 422


@controller(
name='geoprocess_clip',
url='creator/project/geoprocessing/geoprocess_clip',
app_workspace=True,
)
@controller(name='geoprocess_clip', url='creator/project/geoprocessing/geoprocess_clip', app_workspace=True, )
def geoprocess_hydroviewer_clip(request, app_workspace):
project = request.GET.get('project', False)
region_name = request.GET.get('region', False)
Expand Down Expand Up @@ -86,10 +78,8 @@ def geoprocess_hydroviewer_clip(request, app_workspace):
raise ValueError('illegal shapefile type specified')


@controller(
url='/creator/project/geoprocessing/geoprocess_zip_shapefiles',
app_workspace=True,
)
@controller(name='geoprocess_zipexport', url='/creator/project/geoprocessing/geoprocess_zip_shapefiles',
app_workspace=True)
def geoprocess_zip_shapefiles(request, app_workspace):
project = request.GET.get('project', False)
proj_dir = get_project_directory(project, app_workspace)
Expand Down
Loading