- URL:https://<geoanalytics-url>/FindDwellLocations
- Version Introduced:10.8
Description
The Find Dwell Locations task works with time-enabled points of type instant to find where points dwell within a specific distance and duration.
Dwell locations are determined using time (timeTolerance) and distance (distanceTolerance) values. First, the tool assigns features to a track using a unique identifier. Track order is determined by the time of features. Next, the distance between the first observation in a track and the next is calculated. Features are considered to be part of a dwell if two temporally consecutive points stay within the given distance for at least the given duration. When two features are found to be part of a dwell, the first feature in the dwell is used as a reference point, and the tool finds consecutive features that are within the specified distance of the reference point in the dwell. Once all features within the specified distance are found, the tool collects the dwell features and calculates their mean center. Features before and after the current dwell are added to the dwell if they are within the given distance of the dwell location's mean center. This process continues until the end of the track.
For example, ecologists and conservation workers can use the Find Dwell Locations tool to improve the safety of elk during migratory seasons. Use the results to implement or improve protected areas in locations where the animals are spending the most time.
For another example, let's say you work with the Department of Transportation and you want to improve traffic congestion on highways near exits. Using the Find Dwell Locations tool, you can isolate areas experiencing congestion by identifying vehicle tracks that stay within a certain distance for a certain amount of time.
Request parameters
Parameter | Details |
---|---|
inputLayer (Required) | The time-enabled point features from which dwell locations will be found. Syntax: As described in Feature input, this parameter can be one of the following:
REST examples: |
trackFields (Required) | The fields used to identify distinct tracks. There can be multiple trackFields. REST examples: |
distanceMethod (Required) | The method used to calculate distances between points. There are two methods from which to choose: Planar and Geodesic. The Planar method joins points using a planar method and will not cross the international date line. This method is appropriate for local analysis on projected data. This is the default. The Geodesic method joins points geodesically and will allow tracks to cross the international date line. This method is appropriate for large areas and geographic coordinate systems. REST Examples
|
distanceTolerance (Required) | The dwell distance tolerance is the maximum distance between points to be considered in a single dwell location. Dwell locations are determined using distance and time (timeTolerance). REST Examples
|
distanceToleranceUnit (Required) | The unit of the distanceTolerance. REST Examples
|
timeTolerance (Required) | The dwell time tolerance is the minimum time duration of a dwell to be considered in a single dwell location. Dwell locations are determined using distance (distanceTolerance) and time. REST Examples
|
timeToleranceUnit (Required) | The unit of the timeTolerance. REST Examples
|
summaryFields (Optional) | A list of field names and statistical summary types you want to calculate. Note that the count of points in a dwell is always returned. By default, all statistics are returned if the outputType specified is DwellMeanCenters (this is the default) or DwellConvexHulls. Only the count is returned if the outputType specified is DwellFeatures or AllFeatures. onStatisticField specifies the name of the fields in the target layer. statisticType is one of the following:
REST Examples
|
outputType (Optional) | Determines which features are returned and the format. Four types are available:
REST Examples
|
timeBoundarySplit (Optional) | A time boundary allows you to analyze values within a defined time span. For example, if you use a time boundary of 1 day, starting on January 1, 1980, tracks will be analyzed 1 day at a time. The time boundary parameter was introduced in ArcGIS Enterprise 10.8.1. The timeBoundarySplit parameter defines the scale of the time boundary. In the case above, this would be 1. See the portal documentation for this tool to learn more. REST scripting example: "timeBoundarySplit" : 1 REST web example: 2 REST Examples
|
timeBoundarySplitUnit (Required if timeBoundarySplit is specified) | The unit applied to the time boundary. timeBoundarySplitUnit is required if a timeBoundarySplit is provided. Values: Milliseconds | Seconds | Minutes | Hours | Days | Weeks| Months | Years REST Examples
|
timeBoundaryReference (Optional) | A date that specifies the reference time to align the time boundary to, represented in milliseconds from epoch. The default is January 1, 1970, at 12:00 a.m. (epoch time stamp 0). This option is only available if the timeBoundarySplit and timeBoundarySplitUnit are set. REST Examples
|
outputName (Required) | The task will create a feature service of the results. You define the name of the service. REST examples: |
context (Optional) | The context parameter contains additional settings that affect task execution. For this task, there are four settings:
Syntax:
|
f | The response format. The default response format is html. Values: html | json |
Example usage
Below is a sample request URL for FindDwellLocations:
https://machine.domain.com/webadaptor/rest/services/System/GeoAnalyticsTools/GPServer/FindDwellLocations/submitJob?inputLayer={"url":"https://webadaptor.domain.com/server/rest/services/Hurricane/hurricaneTrack/0"}&trackFields=Hurricane Name&distanceMethod=Geodesic&distanceTolerance=5.5&distanceToleranceUnit=Miles&timeTolerance=1&timeToleranceUnit=Weeks&outputType=DwellMeanCenters&outputName=myOutput&context={"extent":{"xmin":-122.68,"ymin":45.53,"xmax":-122.45,"ymax":45.6,"spatialReference":{"wkid":4326}}}&f=json
Response
When you submit a request, the service assigns a unique job ID for the transaction.
{
"jobId": "<unique job identifier>",
"jobStatus": "<job status>"
}
After the initial request is submitted, you can use jobId to periodically check the status of the job and messages as described in Check job status. Once the job has successfully completed, use jobId to retrieve the results. To track the status, you can make a request of the following form:
https://<analysis url>/FindDwellLocations/jobs/<jobId>
Access results
When the status of the job request is esriJobSucceeded, you can access the results of the analysis by making a request of the following form:
https://<analysis-url>/FindDwellLocations/jobs/<jobId>/results/output?token=<your token>&f=json
Response | Description |
---|---|
output | The geometry of the output features will differ depending on the outputType specified. In addition to summaryStatistics, the following fields will be returned:
Note that the fields specified as trackFields are always returned. The result has properties for parameter name, data type, and value. The contents of value depend on the outputName parameter provided in the initial request. The value contains the URL of the feature service layer. See Feature output for more information about how the result layer is accessed. |