Giter VIP home page Giter VIP logo

wab-image-services-widgets's Introduction

Web AppBuilder for Image Services 2.0

Web AppBuilder for Image Services (WABIS) is a set of custom widgets to be used in Web AppBuilder that are designed to work with image services.

Features

Widgets:

  • The IS Image Selector widget allows the app user to search an imagery layer by a field (chosen during widget configuration), as well as set primary and secondary layers
  • The IS Layers widget sets and changes the primary and secondary imagery layers in the app. After the app user performs analysis, it can also be used to add the Results layer to the secondary layer list.
  • The IS Change Detection widget allows users to calculate the difference between the primary and secondary layer rasters. The result is added as a new Results layer, which can be added to the dropdown list of image services available to your app using the IS Layers widget.
  • The IS Compare widget uses a vertical swipe to compare the topmost imagery layer with a secondary imagery layer. Optionally, users can also use transparency or a horizontal swipe to compare the primary and secondary imagery layers with a Results layer.IS Display Order
  • The IS Display Order widget sets the mosaic rule for the primary layer, which determines which image in the mosaic will be visualized if images overlap.
  • The IS Display Parameters widget allows users to set interpolation and compression for the primary layer.
  • The IS Renderer widget sets the service functions and stretch on the primary layer. The dropdown menu in the widget is automatically populated with the service functions associated with the primary layer.
  • The IS Image Date widget will show the date of the primary or secondary layer (whichever is visible in the app).
  • The IS Scatterplot widget allows the user to select two bands from the image service layer and plot their values on a graph. The user can (1) highlight a region on the map by drawing and selecting the points on the plot, (2) click on the map to highlight that point on the scatterplot and get the pixel values, and (3) define an optional area of interest for which the plot should be drawn. Additionally, if both bands selected are the same, the widget will plot the frequency of that band.
  • The IS Profile widget shows a spectral or index profile (NDVI, NDMI Moisture Index, or Urban Index) for a selected point on the primary layer.
  • The IS Export widget allows the app user to either save the topmost visible imagery layer to the app user's content in Portal, or to export the same image locally as a TIFF.

Theme:

  • Use the included Foldable Wrapper theme to size the widgets and remove unwanted white space.

Instructions

  1. Install Web AppBuilder for ArcGIS (Developer Edition)
  2. Download and unzip the WAB- Image-Services-Widgets repo zip file.
  3. Copy the WABIS widget folders into the ...\WebAppBuilderForArcGIS\client\stemapp\widgets Web AppBuilder for ArcGIS (Developer Edition) directory
  4. Copy the WABIS FoldableWrapperTheme folder into ...\WebAppBuilderForArcGIS\client\stemapp\themes Web AppBuilder for ArcGIS (Developer Edition) directory
  5. Open Web AppBuilder (Developer Edition) and begin building your imagery app.

Requirements

  • ArcGIS Online account
  • Web AppBuilder for ArcGIS 2.4 Developer Edition
  • Web Access

Resources

Issues

Find a bug or want to request a new feature? Please let us know by submitting an issue.

Contributing

Want to contribute? Create your own fork, make your changes, then let us know via email.

Licensing

Copyright 2017 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A copy of the license is available in the repository's License.txt file.

wab-image-services-widgets's People

Contributors

abhiataero avatar davewilton avatar ewindahl avatar gavinr avatar kushu493 avatar priya4991 avatar randallrebello avatar shitijvasist 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

Watchers

 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

wab-image-services-widgets's Issues

IS Catalog widget fails to download the images from an Image Service

When first trying to download individual images from an image service using IS Catalog widget, the download was successful.
After that when clicking on an image to download, the browser will prompt a HTTP ERROR 400 each time. The issue happened with multiple image services with download enabled.
WAB 2.11 edition was used.

An ESRI analyst assigned to this case was able to reproduce the same issue using the IS Catalog widget (Esri Case #02461170). WAB 2.12 edition was used by ESRI analyst.

Icon selection area has shrunk dramatically in HeaderController

I've been working with a WebApp I created a few weeks ago, and made some recent changes that seem to have caused a weird change in the HeaderController widgets. I can only select them from a very small zone along the bottom of each widget icon. I have been tweaking some config files, but don't know why this would have happened as a result of those changes.

Everything was working normally until I changed the index numbers to rearrange some of the IS and other widgets in the HeaderController, while also bumping up the PaddingRight for the search window to move it to the left side of the widgets.

Is anyone aware of what may have caused this?

IS Renderer

Could the IS Renderer widget be set up to allow users to select the layer they want to change the render on, ie a drop down list of all the image services available in the app? At the moment a user is only able to interact with the top layer but it would be useful if other layers functions could be accessed and changed too.

Also, is it possible to configure what renderers are available to the user when configuring the app in WAB?

Thanks

Image Discovery Functionality?

Apologies if it's obvious, but on reading through the tool descriptions, I can't find a replacement for the Image Discovery widget: https://github.com/Esri/image-discovery-app-js

The Image Discovery repo is no longer maintained and directs users to this site.

Required functionality is for a user to specify an AOI and then have a result return all of the image services that are present in that area, with the ability to preview, or add them to the map.

Swide Mode in the IS Compare widget Panning problem

I am using the IS Compare widget in my image services and when I use the swipe mode,there is panning problem.So,is swipe mode platform or browser dependent or I have configured it wrongly? Please,Anyone who has know how about this,I am in need of your help.

Filter Image Service by Values

I have a simple image service, served up from ArcGIS Server 10.5. (REST details) from a Mosaic Dataset.

I am just interested in the one dataset within this Mosaic Dataset which has a value between 0-100.

screenshot

I want to allow the user within AppBuilder to filter the raster based upon them choosing a min and max value to display (e.g. >75; 40-80; etc.). Ideally dynamically client-side like this JS sample, but also happy for a server side option.

I have the Web AppBuilder Developer Edition 2.4 installed with all of the Imagery widgets installed, and was hoping there might be something in here that would help, but struggling to get any of the widgets to work with my image service.

Can someone suggest a way to allow a user to filter an image service based upon the pixel value?

Load issue in modified ISCatalog: widget.js change reqeest

Hi,
in the widget.js file of the ISCatalog widget, there are 3 lines that require a certain install-location to work. Lines 42 to 44 read:
"./widgets/ISCatalog/lib/filesaver/Blob.js", "./widgets/ISCatalog/lib/filesaver/FileSaver.js", "./widgets/ISCatalog/lib/papa_parse.js"

this caused issues for me after installing the WABIS widgets on my WebServer. I suggest to change those lines - similar to many others in the file to a relative path of:
"./lib/filesaver/Blob", "./lib/filesaver/FileSaver", "./lib/papa_parse"

that, for me , fixed the issue.

IS Layers not working properly on our Imagery services

I have created two WebApps: one built on the ArcGIS Online WebMap created for WAB-IS, and one on imagery services stood up my my project team-mates.

When attempting to configure the IS Layers widget in the two different apps, the ESRI data WebApp simply shows the widget name, icon, the ability to change that icon, and the Webmap Id upon which the app is built. Launching the app and clicking the widget icon works as expected.

In the WebApp built on OUR Image services, things are different from the outset. When configuring, there is no WebMap ID shown, but rather drop-downs to select the primary and secondary layers. The "loading" wheel spins non-stop, even after selecting Primary and secondary layers. Clicking OK and Launching the app looks good until I click the IS Layers icon, when I am greeted with a Create Widget error.

I have removed the widget, reloaded the WAB, added the widget back in, and nothing changes.

Any suggestions?

ISRenderer: how to configure it ? Is it different from ISMask ?

The ISRenderer widget shows a configuration pane where you can input some text, but I can't understand if this is to input a custom raster function or so.
immagine

Does anyone knows how to configure it ?

Furthermore, there's a new widget (not documented) called ISMask which applies a mask /thus a sort of rendering) to the imagery. What's the difference with ISRenderer ?

Thanks
Gianni

What version of Web AppBuilder Dev?

What version of Web AppBuilder Dev are the current widgets certified to work with? I have v2 and can't seem to get the widgets to work. By "not work" I mean, I can add the widgets to my app using the custom theme you guys provided, but when I click on the widgets (all of them) they don't do anything. When I try to edit the properties of the widgets I am not presented a configuration dialog, it looks like this:
image

Note: I have not tried these current widgets in previous versions of web appbuilder.

Thanks in advance!

Issue using ChangeDetection widget

I have tried using this widget but it constantly kept loading so I tried to investigate issue furthur using browser developer tool. From what I understand, the error has something to do with strings.js file in this path: /apps/webappbuilder/stemapp/widgets/ISChangeDetection/nls/strings
but I really don't know what's wrong with this file (please remark that I have very little knowledge on programming).
Please refer to the image below for the error message:
DeveloperTool_2

Please kindly help me resolve on this issue.

IS Layers widget appears to rename layerids which causes issues with other widgets

I am using the filter widget which works off of layerids from the webmap. As soon as I open the IS Layers widget, the layer ids of the image layers get modified to secondaryLayer and primaryLayer.

You can test this by going to: http://nwdemo1.esri.com/lidarexplorer2/

Open the filter widget and apply a filter on the DSM's
image
At this point, it should work. Then open the ISLayers widget:
image

Now, the filters break, especially after swapping the primary and secondary layer. This is because the filter widget is configured based on the layerids, and they are being modified by WABIS. Just FYI, here is the config for the filter widget:

{
  "filters": [
    {
      "layerId": "Master_Mosaic_DTM_4318",
      "url": "http://52.8.111.163/arcgis/rest/services/Master_Mosaic_DTM/ImageServer",
      "name": "All Washington DTMs",
      "filter": {
        "logicalOperator": "AND",
        "parts": [
          {
            "fieldObj": {
              "name": "ProjectID",
              "label": "Project Name",
              "shortType": "string",
              "type": "esriFieldTypeString"
            },
            "operator": "stringOperatorIs",
            "valueObj": {
              "isValid": true,
              "type": "unique",
              "value": ""
            },
            "interactiveObj": {
              "prompt": "Select a project below to view",
              "hint": "Select from list"
            },
            "caseSensitive": false
          }
        ],
        "expr": ""
      },
      "icon": ""
    },
    {
      "layerId": "Master_Mosaic_Dataset_DSM_3150",
      "url": "http://52.8.111.163/arcgis/rest/services/Master_Mosaic_Dataset_DSM/ImageServer",
      "name": "All Washington DSMs",
      "filter": {
        "logicalOperator": "AND",
        "parts": [
          {
            "fieldObj": {
              "name": "ProjectID",
              "label": "Project Name",
              "shortType": "string",
              "type": "esriFieldTypeString"
            },
            "operator": "stringOperatorIs",
            "valueObj": {
              "isValid": true,
              "type": "unique",
              "value": ""
            },
            "interactiveObj": {
              "prompt": "Select a project below to view",
              "hint": "Select from list"
            },
            "caseSensitive": false
          }
        ],
        "expr": ""
      },
      "icon": ""
    }
  ]
}

ISTime Filter Functioning problem with TimeInfo

Hi,
I want to to detect the change made between two image services(Primary and secondary layers) taken at different dates using the ISChangeDetection widget,and to do that,I have to use the ISTime Filter widget,but even if the IS Time Select widget is reading the date info,IS Time Filter couldn't read,it says:"TimeInfo is Absent." So,is there anything I have to make change other than I made for IS Time Select widget?Please help me how to solve such problems.

Best Regards,

Awet

Image Selector - Select by feature

Just heard this requirement at a customer site and it made a lot of sense. It would be great if users could use a feature in the map, to return results, or even add that imagery to the map.

Example would be a transmission line or a circuit. The extent will not fit nicely into the map view, but would be easier to add in one shot from the same mosaic.

Not sure if that's clear, please feel free to reach out.

IS Compare window gets in the way.

When testing the IS Compare widget on our data, I find that the functionality is very good, however, the window describing the type of swipe and the layers being compared blocks the view of the display.

If I close the window, the widget turns off.

I can drag the corner to make the window larger, but not smaller.

The only workaround I have found is to drag the whole window partially off-screen, but that seems cumbersome. Is there another way to remove this window that I have missed? I would really like to include this widget in a demo I am doing next week, and would like it to be as clean and simple as possible.

Thank you.

IS widgets do not work when grouped together

As you state in your documentation, IS widgets do not work when grouped together. I am not sure how easy this would be to fix and upgrade, but it seems really needed to avoid cluttering when deploying several of your IS widgets alongside other widgets inside a custom web app.

PixelSize export restriction

Hello,

First of all thanks for all those nice widgets.

I have one remark regarding the exportImage one:
doing some tests with our imageryService, I was surprised at first by the "bad" quality of my export though I was at the max allowed pixelSize for export.
Having a look at the code, I noticed that the max PixelSize export restriction is not taking into account the Max Image Height and Max Image Width properties of the ImageService.
To me, it is not very logical : if user wants a better quality and the Image service allow it, why preventing him from exporting ?

I removed that limitation by simply changing the following lines from:

var widthMax = this.map.width;
var heightMax = this.map.height;

to
var widthMax = this.imageServiceLayer.maxImageWidth;
var heightMax = this.imageServiceLayer.maxImageHeight;

Also, I believe there is a typo when validating maxPixelSize:

Thanks

Questions on the IS Display Order widget

When testing different mosaic methods, I discovered something odd, and wanted to clarify whether this is how the widget is supposed to operate or not.

For most mosaic methods, there is a tool tip Drop down button that offers the option to reverse the order, as well as selecting a mosaic operation.

The widget.html file (if I read it correctly) makes it appear that this button should show up for all mosaic methods, and that it should offer the option to reverse the order for all methods except the Defined Seamlines method.

The reverse the order checkbox does not show up for the seamlines (as it shouldn't), but the the 'Closest to Viewpoint' method does not even have the Tool tip dropdown button, which I believe it should.

Is this a bug, or is there a reason one does not have access to the mosaic operations or reverse order for the Closest to Viewpoint mosaic method?

Thank you for your time.

Image Date glitches?

I'm testing the IS ImageDate widget in two Apps: one using the ESRI WebMap created for WAB-IS, and one using our own imagery services.

The only documentation I have found about the IS Image Date widget says that it "shows the date range for the visible rasters, for the current AOI, on the primary layer and the secondary layer." It seems that date range implies more than one date, though this widget never seems to display anything but a single date, presumable the acquisition date of the primary layer at the center of the display.

When I pan or zoom to center on another image in the mosaic dataset, the new date displays. But if I use a bookmark to zoom to another area it does not, which I assume is because I have switched to the bookmark widget. If I go back to the ImageDate widget after using the bookmark, it works again. However, if I use the Image Layers widget to swap the primary and secondary layers, and THEN try to use the ImageDate widget, it does not work until I refresh the entire page. If I use the Layer List widget to adjust the transparency of the primary layer, allowing the secondary layer to display beneath it, when I click on ImageDate, It sometimes works; other times, I get a createwidget error. It may be a function of how many other widgets I use in between.

At any rate, aside from the times when the widget just stops working, is this how it should be functioning? With only a single date displayed at any given time, rather than a range?

IS Spectral Profile RequestError: Unable to load

I included the IS spectral profile widget into my own web app. When I click a point on the map, with the Landsat MS layer specified as "primary" inside the IS Layers widget, I wait for a few minutes and eventually I receive the following error message:

RequestError: unable to load
//landsat2.arcgis.com/arcgis/rest/services/Landsat/MS/ImageServer/identify?f=json&geometry=%7B%22x%22%3A3502501.4527257946%2C%22y%22%3A3597726.8737750864%2C%22spatialReference%22%3A%7B%22wkid%22%3A102100%7D%7D&returnGeometry=false&returnCatalogItems=true&renderingRule=%7B%22rasterFunction%22%3A%22None%22%7D&geometryType=esriGeometryPoint&pixelSize=%7B%22x%22%3A30%2C%22y%22%3A30%7D status: 0

I try multiple points in different countries, with the same primary layer selected but it keeps failing. Is this a bug or a misunderstanding of its use on my end?

IS Layers widget not honoring webmap layer names and seems to be changing them.

http://nwdemo1.esri.com/lidarexplorer2/

Load the app. Layer List shows the appropriate layer names.
image

Open the IS Layers/IS Renderer Group:
image

Switch back to Layer List:
image

Notice the "WA State DTM (Terrain)" has changed.

Also, it appears the layers are repeated for some reason in the IS Layers control.
image

Finally, why does the ISLayers control show layers that aren't image services? This is showing map service layers as well. I would expect to only see two layers in it.

Here is the source webmap:
http://wadnr.maps.arcgis.com/home/webmap/viewer.html?webmap=aaf626bc4f9b435199eae80f0bdb7fbb

Browser compatibility?

I apologize if this question has already been answered elsewhere:

Are the WAB-IS widgets (and the Web Apps built from the Web AppBuilder) designed designed for and tested within particular browsers? Are there any known issues with any particular browsers? I am particularly interested in Chrome, Firefox, and IE.

IS Time Select Widget is not working with year field

I am beginner for WABIS Widgets and I am trying to configure IS Time Select widget with an image service which has year as a field but when I try to configure it pop ups as shown below:
its
So, does IS Time Select Widget always work with date format only or it can work with year too? I need any help related with this guys.

Can we use the IS ChangeDetection widget with imagery from drone?

I was tested ISChangeDetection widget with a multi band imagery service from UAV as mosaic dataset which is published from ArcGIS Pro 2.6. My workflow is using a vegetation index method with Difference Mask mode on the widget then select an IR and R band as suggest then apply. However, the result is nothing change to a map, no area decease or increase in the result.

best regards,
nuttawat

user doc title is confusing

This is really minor, but the title of the doc should indicate it's for WABIS, not Web AppBuilder in general. The title on page 1 is perfect, but the doc name itself does not mention image services, just "Web AppBuilder User Doc.pdf". Can we change to Web AppBuilder ImageServiceWidgets User Doc.pdf, or maybe WABIS User Doc.pdf?

Cody

What's the Version API?

Hello

I have a question.

What is the version of ArcGIS API for JS that is used to build the widgets?

Widgets setting always roll back to its default when click 'configure this widget' to alter widgets' setting

The following are the issues I have found in widget’s setting page:

  1. The setting of Profile widget can only be set up once when widget is first added to WAB. If I want to edit its settings, some of the setting page will stuck in the loading loop.
    (Please refer to this video: https://drive.google.com/file/d/1O-c_VvykBrL2CnypnoPZdSyLswZfezxE/view?usp=sharing)

  2. For some of the widget setting, when I click to ‘Configure this widget’ to edit its setting, the setting will automatically rolled back to default (Please refer to this video: https://drive.google.com/file/d/1aAiquZl8Kz-mr6v7EpOXLEkKYdMx1Bw4/view?usp=sharing).

Please help advice if this is how it should work or if it’s a bug.

Thank you in advance.

FoldableWrapperTheme not seen upon node refresh

Hi, I have copied the FoldableWrapperTheme into the client/stemapp/themes folder and refreshed the node server. However, I do not see the FoldableWrapperTheme listed as an option when creating a new web application. How can I remedy that?

Thanks,
Joe

IS Renderer causing error in console

I have published a Mosaic Dataset to an Image Service with ArcGIS GIS Server 10.5. This has a couple of symbology raster templates embedded. (Paste of REST endpoint, and also RasterFunctionInfos).

These symbology renderers work as expected when added to ArcGIS Online

ArcGIS Online

With the one image service added to a Web Map, when I add the IS Renderer widget to Web App Builder Developer Edition (2.4), I get the following error in my console when launching the widget:

init.js:113 TypeError: Cannot read property 'length' of undefined
    at Object.rendererRR (Widget.js?wab_dv=2.4:208)
    at Object.<anonymous> (Widget.js?wab_dv=2.4:198)
    at init.js:63
    at c (init.js:103)
    at d (init.js:103)
    at a.Deferred.resolve.callback (init.js:105)
    at c (init.js:104)
    at d (init.js:103)
    at a.Deferred.resolve.callback (init.js:105)
    at c (init.js:104) "TypeError: Cannot read property 'length' of undefined
    at Object.rendererRR (http://simon-pc:3344/webappbuilder/apps/2/widgets/ISRenderer/Widget.js?wab_dv=2.4:208:53)
    at Object.<anonymous> (http://simon-pc:3344/webappbuilder/apps/2/widgets/ISRenderer/Widget.js?wab_dv=2.4:198:23)
    at http://js.arcgis.com/3.20/init.js:63:277
    at c (http://js.arcgis.com/3.20/init.js:103:393)
    at d (http://js.arcgis.com/3.20/init.js:103:182)
    at a.Deferred.resolve.callback (http://js.arcgis.com/3.20/init.js:105:10)
    at c (http://js.arcgis.com/3.20/init.js:104:96)
    at d (http://js.arcgis.com/3.20/init.js:103:182)
    at a.Deferred.resolve.callback (http://js.arcgis.com/3.20/init.js:105:10)
    at c (http://js.arcgis.com/3.20/init.js:104:96)"

ArcGIS Online

Can someone help me troubleshoot what the issue might be?

Foldable wrapper theme does not appear and IS Spectral profile does not work

Hi,

I am trying to implement the IS Spectral profile but nothing happens when I select a point on the map. The IS Renderer works just fine. I am working with a raster dataset with 26 images and webappbuilder v2.1.
Besides, I cannot see the Foldable Wrapper Theme (although it is deployed in the client/stemapp/themes folder) so I am implementing IS Spectral profile and IS Renderer in Foldable Theme. Could this be an issue?

Thanks in advance.
Maria

IS Renderer should report what the active layer is and allow user to change the target

It would be really useful if a widget, like IS Renderer, would report what the active layer is. Perhaps something like this:
image
Secondly, it would be great if it also allowed you to change the active layer in the widget instead of having to go to the IS Layers widget.
I can see having the option to select the active layer as a dropdown in the widget and having it automatically move the layer to the top of the TOC.

Thanks!
Scott

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.