|
IDEA
|
@AndrewRudin1 Thank you for submitting this idea and the use case/workflow that explains the need! We have entered this as an enhancement request in our internal system and will be reviewing a path to consider implementing this as an enhancement for a future release. This idea will be updated going forward if/when implemented.
... View more
11-14-2022
12:18 PM
|
0
|
0
|
1086
|
|
POST
|
@BrynR Thanks for reaching out to the Velocity community with your question! At the current Velocity version (3.3), the output schema referenced by the Feature layer (existing) output must be identical to the schema going to the output in the Velocity analytic. This includes identified key fields such as "TRACK_ID / START_TIME / END_TIME". However, as you have encountered ArcGIS Online and ArcGIS Server services created by a client other than ArcGIS Velocity do not set a "TRACK_ID" field in the Time Info object. Short term resolutions: Option 1: Use ArcGIS Velocity to create the ArcGIS Online hosted feature layer, and the key fields will be maintained and generated on the ArcGIS Online layer. This can be achieved with the Feature Layer (new) output type from real-time or big data analytics Option 2: If you are not using the "keep latest features" output setting for the feature layer, simply add a Map Fields tool before the Feature layer (existing) output and remove the identified key fields. Long term resolutions: We are investigating enhancing ArcGIS Velocity to relax schema match requirements for "TRACK_ID / START_TIME / END_TIME" provided the output schema is otherwise identical, which will support add new or keep latest feature output configurations despite ArcGIS Online and ArcGIS Server not leveraging the Track ID field identification the same way as Velocity. We are targeting this for the 4.1 release.
... View more
11-14-2022
04:55 AM
|
0
|
5
|
1664
|
|
POST
|
@brudo Thanks much for your reply and these ideas, I was just discussing with a coworker the use of a for loop workflow to generate the path array and what you proposed should work as expected. @SimonGIS As an FYI, these are alternate solutions that would better scale to variable length polylines when compared to the solution I provided that only accommodated a two-point polyline. Coming back to edit, the following Arcade structure worked in test: var path = [];
var i = 0;
var lineArray = FromJSON($feature.line)
for (var linePoint in lineArray) {
var xVal = lineArray[i]["x"];
var yVal = lineArray[i]["y"];
path[i] = [xVal, yVal]
i++
}
return Polyline({
"hasM": false,
"hasZ": false,
"paths": [path],
"spatialReference": {"wkid": 4326}
})
... View more
11-01-2022
10:48 AM
|
0
|
0
|
2316
|
|
POST
|
@SimonGIS Thanks for reaching out with the question! I have an answer/solution below, but it depends on a few elements. Overall, the answer is that Velocity "single geometry field" supports EsriJSON, GeoJSON, WKT, and Coordinates (point). This Waze format is not any of those, therefore you would need to use an Arcade expression to build the geometry. https://doc.arcgis.com/en/iot/ingest/define-location-properties.htm Additional considerations: This solution only takes the first two points from your "line" array object in your JSON to build a line. If there were 3+ points, the extras past the first two points would be ignored This solution expects two valid points from the "line" array object in your JSON. If there was a null, or only a first point, this could fail to calculate the geometry for the given feature This could be enhanced using the Arcade "IIf" function and other logic to handle such a case of nulls, or not two points being present, or of more than 2 points var lineArray = FromJSON($feature.line);
var x1 = lineArray[0]["x"];
var y1 = lineArray[0]["y"];
var x2 = lineArray[1]["x"];
var y2 = lineArray[1]["y"];
return Polyline({
"hasM": false,
"hasZ": false,
"paths": [
[
[x1,y1],
[x2,y2]
]
],
"spatialReference": {"wkid": 4326}
}) As you can see above, we use the "FromJSON" function to convert the JSON string to a proper object, we parse the desired elements out, and then we send that into a "Polyline" function using the EsriJSON format. This is configured in the Calculate Fields or Map Fields tool for the geometry configuration.
... View more
10-31-2022
01:08 PM
|
2
|
0
|
2331
|
|
POST
|
Thanks for your reply - it is correct that the Feature layer (new or existing) output when writing to an ArcGIS Online hosted feature layer is limited to an average of 2 events/second (120 records per minute, per output). This is a limit imposed from the ArcGIS Online team that ArcGIS Velocity follows. ArcGIS Online organizations with a premium feature data store are able to sustain/allow higher data write speeds. This will be available with the following release of ArcGIS Velocity in early 2023. For some public facing applications, organizations will utilize the Control Event Volume tool to reduce the number of updates/records sent to an output based on feature Track ID. This could be leveraged in your circumstance to keep your update Velocity around/under 2 e/s to be able to write to an ArcGIS Online hosted feature layer if you need to share this layer with the public. The downside to this workflow would be that vehicle location updates to the public could be slightly delayed (likely under a minute, it depends on your number of vehicles and update frequency). https://doc.arcgis.com/en/iot/analyze/control-event-volume.htm We have also implemented a validation enhancement to change the 2 event per second validation error to be a validation warning. There are perfectly valid cases where a feed has a higher rate than 2 e/s but the analytic flow reduces the number of features to under 2 events per second at the output. This will be implemented with our 3.3 release in early November, however the current workaround is to start the feed, and then start the real-time analytic before the feed has started (or start the real-time analytic first).
... View more
10-31-2022
05:07 AM
|
1
|
1
|
2000
|
|
POST
|
Based on the icons and the fact that there is an accompanying map image layer, you have created a "Velocity feature layer" with data stored in a spatiotemporal layer. This layer type cannot be shared to the public, thus the error message you witnessed. ArcGIS Online hosted feature layers however can be shared to the public. The Velocity "Feature layer (new)" output can be configured to create an ArcGIS Online hosted feature layer. See the following screenshot for reference. By unclicking the toggle "store data in a spatiotemporal feature layer", when unchecked the corresponding feature layer created will exist in the ArcGIS Online hosted feature layer. You can also use the "Feature layer (existing)" output to write to an existing ArcGIS Online hosted feature layer.
... View more
10-27-2022
09:40 AM
|
1
|
3
|
2082
|
|
POST
|
@ArmstKP If ArcGIS Online is not providing any additional information or context associated with that error, please reach out to Esri Support Services for assistance investigating why the given layer cannot be shared to the public. Once Velocity creates an ArcGIS Online hosted feature layer, it is a native ArcGIS Online layer that could be treated like any other online layer.
... View more
10-27-2022
09:07 AM
|
0
|
5
|
2108
|
|
POST
|
@ArmstKP Thanks for reaching out with your question! At the current release, ArcGIS Velocity backed feature layers and stream layers can be shared with groups or with your organization, but cannot be shared to the public. The current option in ArcGIS Velocity to share data to the public is to create an output feature layer hosted in an ArcGIS Online layer using the Feature layer (new) or Feature layer (existing) outputs. With our 3.3 release in early November 2022, the Feature layer (existing) output will also support writing to ArcGIS Enterprise/ArcGIS Server backed layers which of course can be configured to be public facing. https://doc.arcgis.com/en/iot/disseminate-and-notify/feature-layer-new-.htm https://doc.arcgis.com/en/iot/disseminate-and-notify/feature-layer-existing-.htm
... View more
10-27-2022
07:42 AM
|
1
|
2
|
2127
|
|
POST
|
Hi @SimonGIS thanks for reporting this! I have sent you a direct message with my Esri email if you are able to send the shapefile dataset so I can reproduce the issue on my end and investigate. If you open browser network tools and watch traffic, when proceeding to the "Confirm Schema" page the Velocity frontend sends the backend a "sampleMessages" call. In the response body there should be a featureSchema > geometry object where the backend determines the geometry type. Is this included in the sampleMessages response? You are correct that the expected behavior is Velocity automatically handles shapefile geometry according to the information stored in the file. Looking forward to your reply.
... View more
10-20-2022
05:02 AM
|
0
|
0
|
564
|
|
POST
|
@MuhammadAbuGhosh Thanks for reaching out and for your question! Currently ArcGIS Velocity offers three license levels, standard / advanced / dedicated. The Standard license is suited for organizations with lower velocities of data and simple use cases. It sounds like this would be applicable to your case where you have one or multiple feeds, and then would have a real-time analytic sending the data to update either Velocity-hosted or ArcGIS Online hosted feature layers for reference in your dashboards and maps/apps. I am not yet aware of any vendors / non-Esri companies offering partial Velocity items as a service. ArcGIS Velocity licensing documentation
... View more
10-06-2022
06:10 AM
|
1
|
0
|
806
|
|
POST
|
@ArmstKP Thanks for sharing this layer with me! I was able to reproduce the issue and can confirm it is due to the fact that your only present layer index for this service is 221, rather than the expected 0. I wrote an enhancement/bug on our side to enhance the product to lookup layer IDs dynamically for the Feature Layer (existing) output rather than assuming the first layer index is 0. In the meantime, I suggest the following workaround attempt: Create new item in your ArcGIS Online content referencing your layer URL including the sublayer index https://services6.arcgis.com/MU31z9HAakdc3W69/arcgis/rest/services/Velocity_ParkingLot_4326_2/FeatureServer/221 Choose to store credentials with this item Proceed with setting your sharing/tags/information as desired Use this new item to reference in ArcGIS Velocity when configuring the Feature Layer (existing) output Please let me know if you have success with this workflow
... View more
09-30-2022
08:36 AM
|
1
|
0
|
719
|
|
POST
|
@ArmstKP Thanks for reaching out! I would like to investigate this on my end to see if there is a workaround or a way we can better handle this on the Velocity side. Two options: Are you able to share this layer in an ArcGIS Online group with my ArcGIS Online account, "pnasuti_iot"? Can you provide a screenshot of the "fields" section of this layer on the service layer REST endpoint?
... View more
09-29-2022
11:49 AM
|
0
|
2
|
776
|
|
POST
|
@ArmstKP The metrics show 0 features passed Detect Incidents - this would require additional information to investigate: What are all the specified parameters of the Detect Incidents tool Send output to feature layers for inspection Send "Join Features-1" to a new feature layer (Add new features, replace existing features) Send "Parking lots" to a new feature layer (Add new features, replace existing features) Add both these feature layers to a web map Inspect to ensure that vehicle AVL points overlap/intersect Check spatial reference of target and join pipeline nodes going into this tool to ensure that they match If the above does not lead to findings to resolve this, you may be better served by opening a support ticket with Esri Support Services to have a call/screenshare for further investigation.
... View more
09-21-2022
07:30 AM
|
1
|
0
|
1645
|
|
POST
|
@ArmstKP Yes my mistake! Thanks for catching that - I will edit my above post for the future reference of others as well.
... View more
09-20-2022
01:06 PM
|
1
|
2
|
1659
|
|
POST
|
@ArmstKP Thanks for the additional info! Looking at the metrics of your analytic, "Find Dwell Features" has 0 records, so we can identify this tool as the "blocker" to explain why your model has no outputs. This tool more than likely has no outputs because of your properties "distance tolerance: 500 feet" and "time span tolerance: 15 minutes". When a plow truck is moving around plowing a parking lot, it is still in motion and getting bread crumb updates at distance and time span greater than the tolerances specified. Therefore, none of your AVL track points satisfy a "dwell" per this criteria, so this tool has no output. You could adjust the distance/time tolerance to better identify parking lot plowing speed as a dwell, but this could capture many other events when the plow truck is merely driving slow or plowing elsewhere. Rather than diving into analytic design for that tool configuration, lets consider a few things. From your description, it sounds like the fundamental goal is to update the parking lot polygons with their lastserviced field with the last date of service. In this reply, I am moving forward with that assumption, but if that assumption is wrong please correct me. This is a common AVL/geospatial scenario that has been addressed by various implementations of the below logic to identify/recognize vehicle visits to certain locations. Consider the following design approach as an option: Sources Parking lot polygons Vehicle tracks Events (Assuming this is winter storm events) Outputs Parking lots (updated with lastserviced date) Tools: Keep your Join Features-1 to enrich Vehicle Tracks with event information Add "Detect Incidents" tool as the next tool after Join Features-1 Pipeline: Target: output of Join Features-1 Join: Parking lot polygons Configuration: Open condition: spatial relationship: intersects Accept other defaults Why use this tool? Create unique sets of observations for each detected incident (plow truck in parking lot polygon) Filter your AVL dataset down to events where plow trucks are working on parking lot polygons Add "Reconstruct Tracks" tool as the next tool after Detect Incidents Pipeline: Target: output of Detect Incidents Configuration: Summary Fields: Your datetime field, statistic of MAX, we will call this "datetimefield_MAX" IncidentDuration field, statistic of MAX Accept other defaults Why use this tool? Take your set of AVL/breadcrumb points and convert them to a polyline representing plow truck travel within the parking lot plowing event. Also acquires the duration of the dwell event in milliseconds. Add "Filter by Expression" tool as the next tool after "Reconstruct Tracks" Pipeline: Target: output of Reconstruct Tracks Configuration Filter down any polylines less than "x" milliseconds of duration Filter on DwellDuration_MAX field Why use this tool? Filter out the cases where a plow truck drove into a parking lot briefly but didn't actually spend enough time to plow the location Add "Join Features-2" tool as the next tool after "Filter by Expression" Pipeline: Target: output of Filter by Expression Join: Parking lot polygons Configuration Spatial: intersects Summary fields: Parking lot name/identifier, ANY Why use this tool? Append the associated parking lot name with the reconstructed AVL track plowing that parking lot to the schema Add "Summarize Attributes" tool as the next tool after "Join Features" Pipeline: Target: output of "Join Features-2" Configuration: Field: the Parking lot name/identifier, ANY that was generated in prior Join Features tool Summary field: Datetimefield MAX Why use this tool? For each unique parking lot processed by the former tools, calculate the most recent datetimefield value to get the most recent plow visit Add "Join Features-3" tool as the next tool after "Summarize Attributes" Pipeline: Target: Parking lot polygons Join: Output of Summarize Attributes tool above Configuration: Attribute join between parking lot name/identifier fields Summary field: datetimefield value ANY to append the latest edit value Why use this tool? Append the latest datetimefield value to the schema of the parking lot polygons Add "Map Fields" tool as the next tool after "Join Features" Pipeline: Target: Join Features-3 tool output from above Configuration: Replace your original datetimefield value in Arcade expression with the value from this new field Delete this new/surplus datetimefield value once the value is utilized Why use this tool? Update the parking lot polygon modified datetime value There are many ways to design and configure analytics in ArcGIS Velocity, and I have provided the above as an example that has led to success for other users for similar use cases.
... View more
09-20-2022
12:33 PM
|
1
|
4
|
1669
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 06-04-2025 05:55 AM | |
| 2 | 04-25-2025 11:39 AM | |
| 1 | 04-08-2025 05:23 AM | |
| 1 | 01-28-2025 06:21 AM | |
| 1 | 01-24-2025 02:34 PM |
| Online Status |
Offline
|
| Date Last Visited |
2 weeks ago
|