POST
|
Hi all, I have some doubts with the last steps of the ortho-mapping process. I’m performing the ortho-image of several flights we made this year. Once I adjusted, added GCPs and readjusted again I run the tool to make the ortho-mosaic to assess the results and perform changes. In general, the image was pretty good. However, some specific areas need improvement. The ortho-mosaic was performed with edge configuration method which is better to hide sharp transitions between images. The problem is that in some cases the selection of the image used for the ortho-mosaic was not the best choice. The image on the left is my ortho-mosaic and on the right is Esri’s imagery. As you see in the image the forest on the left shore of the river shows great distortion and, because of the perspective of the image chosen, it covers elements that must appear. How can I change the limits of the seams to control the output in this area? I’d like the images selected on the right side extend more towards left and cover the shore and the road. I tried to change seams manually unsuccessfully since apparently the images now are pointing to a MapCache, so when I move the seam, the area appears black. Thank you Alfonso
... View more
12-14-2020
04:09 PM
|
0
|
0
|
305
|
POST
|
Hi all, I have a large number of images taken from a airplane with a GoPro Hero 7 fixed at the wing. I followed the ortho mapping workflow process for drone images with ArcGIS pro 2.4 and the result are very disappointed. Roads are very wavy and errors are huge, specially with the z coordinate (more than 20 m). I know factors affecting the quality are lens' distortion and inaccuracy of the center of the image because the position of the plane. To see how product will look like and to learn the workflow I selected 11 images that covers rural and urban areas which, apparently, are not very leaned. I checked differences between the center of the image and the GPS location and the error is about 20-30 m. The images overlaps around 80% or more. In addition, I used 170 CGPs with coordinates obtained from Esri Imagery. The images were taken with a GoPro Hero 7 camera in wide mode but either the fish-eye distortion is important. I've seen there is no parameters for this camera so I tried to input parameters manually, but I weren't able to find the correction parameters for this model. Then I used as camera model in Ortho Mapping the default for GoPro Hero 4 in the test I carried out. I know the quality of the input data is not the best desirable, but the distortion of the mosaic is really bad. I've tried an alternative. First geo-referencing the images automatically and clipped them to have the same cols and rows and cell size. Then I create a mosaic dataset manually and I used it to make the workspace. In camera settings I set focal distance and pixel size so they match with the cell size of my georeferenced images. The mosaic looks better although errors are still high. One problem with the alternative approach is that the fails to generate the adjustment report. Does anyone know the correct parameters for GoPro Hero 7 or has a different way to improve the quality of the ortho-mosaic? Thank you, Alfonso
... View more
03-11-2020
02:12 PM
|
0
|
1
|
817
|
POST
|
Robert, Thanks, I found it. At first I didn’t understand what you mean, but I found the attribute currentDir in the node, so I have the reference to point to the image. Alfonso
... View more
02-05-2019
01:29 PM
|
0
|
0
|
853
|
POST
|
Hi Robert, Let’s see If I can explain better. In widgets I have a widget directory where I have two HTML files, widget.html and instructions.html. Instructions.html is made by different s. Each is block with text, lists an images that explains how to use the tool. When a tab is active, the block (div) that explains that tab is placed in the panel, that is defined in widget.html, and when another tab is active, the block for that other tab is shown in the panel. I don’t have problem with that. It works fine. My problem is that the images I referenced in the instructions.html don’t appear. I have the image in the widget/images/. Opening directly the instructions.html file, the image appears correctly. However when I run the app and the block is shown in the panel, the image never appear. It is substituted by the ‘alt’ text. I’m working with firefox. There is no error in the console, but selecting the image element in the inspector, appears a message “could not load the image”. My guess is that when the is placed in the panel the current directory from which I have to start the path change and I don’t have any idea to know what it is. Alfonso
... View more
02-05-2019
10:48 AM
|
0
|
2
|
853
|
POST
|
Hi all, This is a very simple task but I cannot figure out how to solve it. I'm working with AppBuilder Developers Edition. I created an informative panel with text and I would like to insert some images. Simple, only add the img tag and then point to the image with the src parameter. something like this: <div> <p> here some text <img src="my_image.png" /> more text </p> </div> However the image doesn't appear. The div is in a html file which is in the widget's directory. Initially I tried with the image located in the widget/images directory so I used src="/images/my_image.png" without success. Then I put the image in the same directory of the html changing the src to src="my_image.png", but whitout success again. I also tried with src="/widget/my_image.png" but same result. The div is place and removed in the panel programmatically and this works fine. My guess is that I can access the correct path of the image because the origin of reference has changed and I don't know how to figure out what it is. Thanks Alfonso
... View more
02-05-2019
09:46 AM
|
0
|
4
|
944
|
POST
|
Andy, Take a look on the Hot Spot Analysis. I think is exactly what you are looking for. Hot Spot Analysis (Getis-Ord Gi*)
... View more
08-29-2018
08:33 AM
|
0
|
0
|
1047
|
POST
|
Why don't you use the same approach but instead of using the polyline layer directly you use a point layer that have been previously obtained from the vertices (Feature Vertices to Points). Then you are forcing to identify the the closest vertex, obtain pair of points and create the lines.
... View more
08-23-2018
02:44 PM
|
0
|
0
|
504
|
POST
|
I guess you want to track border changes. I deduced that you have digitized all the maps (900 - 1900) in the same polygon layer. What you need is to have one binary raster for each century map. If you have an attribute that identifies the century, use it to make sequentially selections to create the individual rasters for centuries. Then convert them into a binary raster. The process you followed to create the binary raster is the correct, with the conditional function. Once you have your 10 binary maps, combine them (Combine function). As a result you will have a raster which attribute table have 10 fields, one for raster. Something like this: Value Count Yr900 Yr1000 … Yr1900 1 1000 0 0 0 2 100 1 1 1 3 24 1 1 0 4 32 0 1 1 …… Then you can identify cells that never changed (all ones), and cells for the time they change (when pass from 1 to 0 and vice-versa).
... View more
08-23-2018
08:39 AM
|
2
|
1
|
4871
|
POST
|
Hello, I want to override a method of the one of the jimu/dijit/ classes, especific the Report dijit, but this question is valid for other dijits and widgets. I created a new javascript file (report_e.js) where in the declare arguments I passed the report class instead of the BaseWidget class. and then I overrode the method I am interested to change. define([ 'dojo/_base/declare', 'jimu/dijit/Report', 'dojo/_base/array', 'dojo/dom-construct', 'dojo/dom-class', 'jimu/utils'], function(declare, Report, array, domConstruct, domClass, jimuUtils ) { return declare([Report], { baseClass: 'jimu-reportenhanced', // Here the method I want to override _renderTable: function (tableParentNode, tableInfo, showRowIndex) { --code-- } }); }); Then I obtained this error: "declare uniqName_12: calling chained constructor with inherited".
... View more
02-15-2018
10:03 AM
|
0
|
0
|
268
|
POST
|
Yes, I have. The layers are in them, and they all are equal. What I did is to check some conditions to catch the first one and do nothing with the rest of the events.
... View more
01-18-2018
01:46 PM
|
1
|
0
|
484
|
POST
|
Thanks Robert, It is what I guessed, that there would be other listeners from somewhere . Fortunately I could manage this issue, but I wonder if there is a way to discriminate the event from its listener, I mean, only catch the event triggered from an specific listener. Alfonso
... View more
01-18-2018
06:33 AM
|
0
|
2
|
484
|
POST
|
Hello, I'm trying to update the layers available for a custom widget. The layers needed are those in the layerList checked and I would like to update the information every time the user check or uncheck a layer. I tried to use the LayerInfosObject and catch the layerInfosIsVisibleChanged or the layerInfosIsShowInMapChanged events, however I've observed a very weir behavior. I have to types of layers, those are in the webmap and those uploaded with the Add Data widget. For the layers included in the webmap it's fine, when I check or uncheck the layer an event is trigger. The problem raise with the other layers where the number of events depends on the order when the layer was uploaded. For example, the Webmap has two layers (A and B) and I added an three extra layers (C, D and E, in that order). When I update the visibility in the LayerList for the layer A or B, I can observe only one event. The same occurs with the layer C which was the first loaded. For the layer D, two events are triggered and three for the layer E. Here is the code I use to test the event: startup: function() { this.inherited(arguments); console.log('Demo::startup'); this.counter = 0; LayerInfos.getInstance(this.map, this.map.itemInfo).then(lang.hitch(this, function(layerInfosObject){ this.layerInfosObject = layerInfosObject; layerInfosObject.getLayerInfoArray().forEach(function(layerInfo) { console.log(layerInfo.title, layerInfo.id); }); this.own(on(this.layerInfosObject, 'layerInfosIsVisibleChanged', lang.hitch(this, function(){ this.counter += 1; console.log(this.counter); }))); })); }, Is that normal? Thank you, Alfonso
... View more
01-17-2018
01:11 PM
|
0
|
4
|
637
|
POST
|
Hi all and Merry Christmas, I created a very simple widget that clears the map's graphics layer. It only opens a jimu/dijits/Message which ask if you want to clear the features and two buttons, OK and CANCEL. The message dijit is created in the onOpen method and it is closed either when you click OK or CANCEL. The weird thing is that when you start the app and click the widget button the first time, it opens two messages popups. This is because the onOpen method is called twice. The sequence is as follows: postCreate - startup - onOpen - onClose - onOpen However that double onOpen is not repeated for the next times you click the widget's button. I'd like to avoid that repetition. In this widget, the only method developed is onOpen onOpen: function(){ console.log('ClearGraphics::onOpen'); var msg = new Message({ type: "question", titleLabel: "Clear Map", message: "Want to remove features?", buttons:[{ label: "YES", onClick: lang.hitch(this, lang.hitch(this, function(){ if (this.map.graphics.graphics.length > 0){ this.map.graphics.clear(); } msg.close(); WidgetManager.getInstance().closeWidget(this.id); })) },{ label: "CANCEL", onClick: lang.hitch(this, function(){ msg.close(); WidgetManager.getInstance().closeWidget(this.id); }) }] }); } and the widgets properties in the manifest are: "properties": { "inPanel": false, "hasLocale": true, "hasStyle": false, "hasConfig": true, "hasUIFile": false, "hasSettingPage": false, "hasSettingUIFile": false, "hasSettingLocale": false, "hasSettingStyle": false, "IsController": false } Another question. Is it normal that the map's graphics layer starts with one graphic by default? Happy Holidays and Thanks, Alfonso
... View more
12-24-2017
02:36 PM
|
0
|
3
|
1402
|
POST
|
Thanks Robert, Yes, it was strange. I also disabled the setting option in the manifest and the popup shows the config.json. But when I try to close the popup clicking on the OK button, happens the same. The same alert with the message “the label exists”. I was completely stuck because I thought was something in the code that changed something behind. I think code that manages the button was corrupted, so the panel that wraps the setting page didn’t work well. I created a new widget and copied the files there, and it worked. I would like to raise new questions related with the same widget. If the source selected requires a token, what’s the way to ask if it is required and, is it a good idea to store the credentials in the widget’s config.json? Thank you again
... View more
12-11-2017
12:24 PM
|
0
|
1
|
196
|
Title | Kudos | Posted |
---|---|---|
1 | 01-18-2018 01:46 PM | |
2 | 08-23-2018 08:39 AM |
Online Status |
Offline
|
Date Last Visited |
12-14-2020
05:40 PM
|