Job ID: OR-CSR 200-25 (98990703)
Hybrid/Local GIS Developer (12+) with JSON, SQL, ArcSDE, REST, Web Services, Cartography, ESRI, ArcGIS API/Pro/Enterprise/Online, FGDC and PM experience
Location: Salem, OR (ODFW)
Duration: 3 Months
Candidate must be within 50 miles
Skills:
Skills Languages JavaScript Expert (10+ Years) Yes
Skills Languages JSON Proficient (4-6 Years) Yes
Skills Languages SQL Advanced (7-9 Years) Yes
Skills Others REST API, Web Services and/or JSON services Experience creating REST API’s, Web services, and/or JSON services Proficient (4-6 Years) Yes
Skills Others MS Office Suite Experience with Word, Excel and Power Point Proficient (4-6 Years) Yes
Skills Others ArcGIS API for JavaScript and Python Advanced (7-9 Years) Yes
Skills Others Cartography Proficient (4-6 Years) No
Skills Others Esri GIS Software Esri GIS Software and applied technologies, including ArcGIS Pro, ArcGIS Enterprise, ArcGIS Online Expert (10+ Years) Yes
Skills Others Geospatial database management Relational database management experience with ArcSDE databases in MS SQL Server 2012 or above Advanced (7-9 Years) Yes
Skills Others GIS Application Development Experience developing GIS applications in a web environment (including Esri’s Experience Builder) Advanced (7-9 Years) Yes
Skills Others Communication skills both verbal and written Advanced (7-9 Years) Yes
Skills Others Project management Proficient (4-6 Years) No
Description:
I. PROJECT TITLE: ODFW Recovery Tracker Web Map Component Development + Compass Web Map Application Reporting Tool
II. BACKGROUND or GENERAL INFORMATION and Purpose:
There are two separate components to this project, 1)Recovery Tracker and 2)Compass.
Recovery Tracker: The ODFW Salmon and Steelhead Recovery Tracker website (https://nrimp.dfw.state.or.us/RecoveryTracker) provides information on the health of Oregon’s anadromous salmon and steelhead populations. Website users can explore and download information related to salmon conservation and recovery in Oregon. The purpose of this project is to add a web map component to the existing application to support display and query of map-based salmon and steelhead population information.
Compass: the Centralized Oregon Mapping Products and Analysis Support System web map application helps stakeholders make informed land use decisions related to fish and wildlife habitats for planning energy, transportation, conservation and other large projects. Compass also provides access to spatial representations of Oregon Conservation Strategy components. The purpose of this project is to develop a custom report-building widget for use in the “new” Compass which is an ArcGIS Experience Builder application.
III. PROJECT DESCRIPTION, DESCRIPTION OF WORK and TASKS:
Project Description or Description of Work.
Recovery Tracker
Objective 1: Prepare spatial data for use in the web map. Existing GIS data layers for salmon and steelhead populations will be evaluated and modified such that they can be utilized to visualize species-specific population data in the new map component of the application (Task 2).
Task 1: The contractor will finalize the development of feature classes for Evolutionary Significant Units (ESUs)/Distinct Population Segments (DPSs), Stratum/Major Population Groups (MPGs), independent populations (note: ESA listed will use federal boundaries and non-listed will use state boundaries), and dependent populations of salmon and steelhead for use with web maps and other agency products. Prepare feature class schema and populate attribute values to support linking to existing data tables and enabling visual display of the population data.
Products: Recovery population spatial datasets that are current and configured for supporting the query and display of associated population status metrics in the web map component of the Recovery Tracker application.
Timeline: Complete 1 week after starting date.
Objective 2: Design and develop a web map for the Recovery Tracker website. The current application has no map component so this would be built from scratch then integrated with the main application.
Task 2: The contractor will develop a web map (using ESRI Experience Builder) with query capabilities to extract data from existing Fish Monitoring SQL Database tables for display on the map and using the feature classes identified in Task 1.1. The map should include layers for the population polygons (Task 1.1), Whole Stream Routes, fish district boundaries, watershed boundaries, fish habitat distribution (salmon and steelhead), and fish monitoring related datasets such as Life Cycle Monitoring Trap Sites, Rearing Project Survey Sites and OASIS Survey sites. Each layer should have an associated legend.
The current Recovery Tracker Explorer allows users to query data by selecting a value from each of five drop-down menus.
· Species – selecting a species calls up the appropriate ESU/DPS.
· ESU/DPS – selecting an ESU/DPS calls up the appropriate Run.
· Run – selecting a Run calls up the appropriate MPG/Stratum.
· MPG/Stratum – selecting an MPG/Stratum calls up the Populations.
· Population – then a Population is chosen and the data is displayed.
The proposed map component will allow users to only select a species and run and display the associated populations on the web map. The user would first specify the desired species and run via drop-down menus, then navigate to and click a polygon of interest in the map. The mapping component would then inform the Recovery Tracker Explorer of the population(s) from the user’s selection. The Explorer would use the value(s) as if it/they were selected from the drop-down menus to display Recovery Tracker data in the Explorer page. The mapping component should have the ability to display Recovery Tracker Information (from list below) in a pop-up window on the map.
The map pop-up window will display these elements in the following order:
· Population name
· Species and run name
· ESU/DPS name
· MPG/Stratum name
· Data availability (reason data is not available for a geographic area)
· A button for the user to display data in the Explorer page
A proposed architecture would be to initially develop a stand-alone web map application using the ESRI Experience Builder toolset. This map application would query the ODFW Fish Monitoring database as necessary as well as any required geodatabases or GIS services. When the user selects one or more populations on the map, the map application would return the population(s) based on the user selection. The selected data would then be displayed in the Recovery Tracker Explorer.
The map component would be embedded in a separate “Map” page in the Recovery Tracker application. This would allow the user to select Explorer data either via drop-down menus or a map.
The web map application will need to be available on the NRIMP public web server, but not available to run independently of the Recovery Tracker. The map component should validate that it has been invoked from the Recovery Tracker web application and only display if the qualifying condition is met.
Coordination with the NRIMP Web Developer will be needed to integrate the map component into the main Recovery Tracker application. Coordination with the NRIMP Data Analyst will be needed to test map functionality and revise as needed.
Products: A new web map embedded as a new webpage on the website for internal and external users to interact and extract data and information. Example applications to mimic:
· https://nrimp-apps.odfw.int/portal/apps/webappviewer/index.html?id=144ba17f74e34e8e8a0f52a699cc7eab
· https://cax.streamnet.org/
Timeline: Complete within 8 weeks after starting date.
Compass
Objective 1:
An Esri Experience Builder application is under development to replace the State Wildlife Action Plan (SWAP)’s previous web map, Compass. The current report-building widget, available for reference under the Tools tab in Compass, was developed by an independent contractor several years ago and is not compatible with the Experience app. The proposed report-building widget would be a recreation of the existing report widget, but with some added functionalities. The widget would allow the user to draw an area of interest on the map, use that polygon to select the overlapped data layers of interest, and generate a pop-up of the results and a PDF report, both of which would detail the features that are within the area of interest. The report would include a list of areas of coverage for some of the data layers, and for others a list of features that fall within the area of interest.
Task 1: The contractor will develop a custom Experience Builder widget that has the following functionality:
1. Allow the user to create an area of interest polygon on the map.
a. Manual drawing options should include polygons (squares, circles and point-and-click vertices)
b. There should also be an option to upload a shapefile or XML of a polygon of the area of interest (one data layer per report). There is no minimum accuracy or specific coordinate system required for the user-uploaded layer, as long as it can be reprojected on the fly so that it lands in the correct location on the map
2. User-defined polygon is used to select overlapping hexagons in a grid that is not visible to the user (grid data layer will be provided by ODFW)
3. On the back end, the hexagon grid attribute table has fields containing the following data:
a. Ecoregions areas of coverage
b. Conservation Opportunity Areas (COAs) areas of coverage
c. State Wildlife Action Plan (SWAP) Key Habitats areas of coverage
d. Species of Greatest Conservation Need (SGCN) wildlife species observed presence
e. SGCN wildlife species ranges
f. SGCN fish species observed presence
For each of the above attribute categories, the tool compiles a list of all of the attribute values within the area of interest (combine data for all of the selected hexagons). Additionally, the tool calculates the total area of coverage for all relevant Ecoregions, COAs, SGCN ranges, SWAP Key Habitats, and the remaining hexagon area that is not covered by Key Habitat.
4. Results of the selection and calculations are output as a pop-up and associated PDF of results. PDF needs to include:
a. Standard report elements: Title, ODFW/Wildlife Diversity Program/SWAP header and footer, page numbers
b. Selection results presented as clear, well-organized list with headers for each data layer. SGCN species observed presence results need to be presented as a list of the name of each species present. Ecoregions, COAs, SGCN wildlife ranges, and Key Habitats need to list total area of coverage in acres. For Key Habitats, the report also needs to include a pie chart showing proportional coverage of each relevant Key Habitat and the remaining non-Key Habitat coverage.
Other requirements:
· ODFW needs to be able to update the backend hexagon data layer without affecting widget functionality. Ideally, ODFW staff would be trained on how to upload new data layers and how to edit basic elements of the widget (such as the report header/footer font and text, colors, etc.)
· Widget needs to keep the most recent report available and not delete it automatically when the user begins generating a new report, or at minimum a have pop-up warning users that the preceding report will be deleted if they continue with a new area of interest
Products: a widget that is ready to be loaded into a publicly available ArcGIS Experience app. A document or training session for WDP staff that details how to make basic edits to the look of the widget and how to update the input data layers on the back end.
Timeline: Complete within 3 weeks after the completion of the Recovery Tracker related work.
ODFW will:
1. Under the Recovery Tracker Task #1, ODFW will facilitate access to the identified population related boundary datasets and the associated population data.
2. Under the Recovery Tracker Task #2, ODFW will facilitate access to the Fish Monitoring Database and will also provide details regarding the main Recovery Tracker web application to support the integration of the map component.
3. Under Compass Task #1, ODFW will facilitate access to the Experience Builder application and the spatial data / services that the custom widget will interact with.