POST
|
In your Closest Facility Layer properties, go to the Network Locations tab. In the section on the bottom called Finding Network Locations, you can choose which of your source features can have points located on them by using the check boxes. You'll want to configure these settings the way you want them before you load your incidents and facilities. See http://resources.arcgis.com/en/help/main/10.2/index.html#/What_are_network_analysis_objects/00470000003n000000/GUID-9722833A-C61D-4E66-87CD-796A8A7231A1/ for more information about network locations and how to use the settings I mentioned.
... View more
05-13-2014
07:48 AM
|
0
|
0
|
179
|
POST
|
Hi Chase. If you have your own sidewalk data, you will probably want to use it to create a network dataset. A network dataset is required as input for all the Network Analyst tool, and it contains the street (or sidewalk) network as well as properties that determine the travel time or distance across each network edge. After creating your network dataset, you will probably want to use the Closest Facility tool to find the bus stop closest to each housing project and the travel time between them. To help you get started, I recommend working through some of the Network Analyst tutorials here: http://resources.arcgis.com/en/help/main/10.2/index.html#//00470000005r000000. Exercises 1 and 4 are probably the most relevant. If you have GTFS public transit data (the kind used in Google Maps), you can actually do a slightly more nuanced analysis using the BetterBusBuffers tool, which you can download from ArcGIS Online here: http://www.arcgis.com/home/item.html?id=42e57c5ff9a0497f831f4fced087b9b0. This tool can count the number of transit trips available at a set of point (your housing projects) during a time window. So, instead of just measuring the distance to the closest stop, it can actually count how many buses use that stop, which gives you a more complete picture of how much transit access the housing project residents have.
... View more
05-12-2014
07:30 AM
|
0
|
0
|
1267
|
POST
|
So each block group has an extra travel time associated with it? If so, that will be hard to incorporate into a Service Area analysis around the Facilities, since these service areas will have no relationship to the block groups at all. Can you, instead, generate the service areas around the block groups? If so, you can use the Attr_[Impedance] field in the Service Area Facilities sublayer to add a customized delay time to each block group. When you load the block groups as SA Facilities, use field mapping to map your delay time field in block groups to the Attr_[Impedance] field in SA Facilities, where [Impedance] signifies the travel time cost attribute on your network. Read more about the Attr_[Impedance] property under Facility properties on this page: http://resources.arcgis.com/en/help/main/10.2/index.html#/Service_area_analysis/004700000048000000/ If creating service areas around the block groups isn't what you want, can you explain better how you want to incorporate your calculated extra time from the block groups into the service areas for the facilities? Do you want to add extra travel time to the roads near each block group?
... View more
05-08-2014
09:33 AM
|
0
|
0
|
314
|
POST
|
Could you describe what you're trying to do a little more, or post a sketch of what you're looking for? I don't understand the relationship you're trying to draw between the Closest Facility analysis and the Service Area analysis. When you calculated the closest facility travel times, you were presumably using a network dataset with a travel time cost attribute that determines how long it takes to travel on any given street in the network. The Service Area solver can use the same network dataset and cost attribute. If you create service areas around your Facilities, the resulting polygons should show the area reachable within your 30, 60, and 90 minute break values. If the block group points were within those time limits in your closest facility analysis, they should fall under the service area polygons. However, the service area calculation is completely independent of your closest facility calculation.
... View more
05-08-2014
07:21 AM
|
0
|
0
|
314
|
POST
|
You can export the Lines to a feature class, add a text field for the formatted time, and then use the Calculate Field tool from ArcToolbox to put the time into the format you want. The Calculate Field tool allows you to use a code block where you can define a function that formats the time however you want. See http://resources.arcgis.com/en/help/main/10.2/index.html#//00170000004m000000 for some examples of using the code block.
... View more
03-19-2014
07:17 AM
|
0
|
0
|
739
|
POST
|
Glad you figured it out. Yes, the SearchCursor returns items in a tuple. You could have chosen to return more than one field (in addition to SHAPE@), and it would have returned something like (SHAPE@, Field, Field), so it makes sense that you have to use a [0] to get the first item in the tuple (even if there is only one item in it). The distance is, I believe, the distance along the route in the units of the coordinate system used by the route. If it's in a geographic coordinate system, you should probably project it into something appropriate for the area you're studying. Do your stops have a route ID associated with them? If so, you can use a loop to loop through the routes. For each route, you can use MakeFeatureLayer on the stops to select only the stops associated with the route ID, and then do the SearchCursor on the feature layer and loop through those stops to calculate the distance along the line. Something like this (which I didn't test, so it might not be perfect): cursorRoute = arcpy.da.SearchCursor(fcRoute,['SHAPE@', 'RouteID'])
for route in cursorRoute:
RouteID = route[1]
routeGeom = route[0]
where = '"RouteID" = %s' % str(RouteID)
arcpy.management.MakeFeatureLayer(fcStop, "Stops", where)
cursorStop = arcpy.da.SearchCursor(fcStop,['STOP_ID','SHAPE@'])
for stop in cursorStop:
stopGeom = stopGeom[1] # Looks like the geometry is the second item in your tuple here
dist_along_route = routeGeom.measureOnLine(stopGeom,FALSE)
... View more
03-12-2014
07:19 AM
|
0
|
0
|
517
|
POST
|
You CAN use the Route tool to do this. Use the RouteName field in field mapping. You will need a separate, unique RouteName for each student, and you will need a separate copy of the student's school for each student that has the RouteName assigned to it. Naturally, this significantly increases the size of your input data. With so many students, you'll probably want to break it up into chunks. You can automate your workflow using python or ModelBuilder if you don't want to run each chunk manually. See this thread for more detailed information: http://forums.arcgis.com/threads/102763-shortest-distance
... View more
03-11-2014
07:23 AM
|
0
|
0
|
330
|
POST
|
Not a stupid question at all! You need to read in your shapefile or feature class using a search cursor (arcpy.da.SearchCursor). You can read in the shape geometry using the SHAPE@ keyword, and that should give you a point or a line geometry object. You then feed the point and line geometry objects to the measureOnLine method. There are some SearchCursor examples here: http://resources.arcgis.com/en/help/main/10.2/index.html#//018w00000011000000
... View more
03-10-2014
01:21 PM
|
0
|
0
|
1432
|
POST
|
Any stops with the same RouteName will end up on the same route. If you have Person 1 going to Park A, and you have three entrances for Park A (A1, A2, and A3), and you assign them all to RouteName 1, the route solver will produce a route like this: Person 1 -> A1 -> A2 -> A3. The route will have four stops, which I think isn't what you want. You need to choose just one of those park entrances as the second stop in your route. Alternatively, if you don't actually know which park/entrance each person is going to, you can use the Closest Facility solver. This will generate a route to the closest park or park entrance to each person. However, if you already have data reporting which park each person goes to, the closest one might not necessarily match.
... View more
03-06-2014
06:22 AM
|
0
|
0
|
799
|
POST
|
Great. Just to clarify, the measureOnLine() function isn't available in 10.2, only in 10.2.1, which is a separate product. If you're going to upgrade, make sure you can upgrade all the way to 10.2.1 and not just 10.2.
... View more
03-04-2014
02:43 PM
|
0
|
0
|
1432
|
POST
|
So a pedestrian route might go something like this: street -> station entrance -> station connector -> station -> Rail line -> station -> station connector -> station entrance -> street (Tell me if I got that wrong). Since your station entrances interact with streets, those station entrances need to fall on street vertices or endpoints, depending on the connectivity settings you've given it (End Point vs. Any Vertex). If your street features don't have vertices at the locations of the entrances, you can use the Integrate tool to create vertices in the streets. Without vertices or endpoints, the station entrances will never connect with the streets, and the pedestrians will never be able to get to the rail lines, so your routes will not show any rail usage.
... View more
03-04-2014
09:46 AM
|
0
|
0
|
803
|
POST
|
If your rail stations are being used as the points that connect two separate connectivity groups, and those rail stations don't touch the streets at all, then yes, that is the problem. The points have to touch both. Furthermore, the points need to fall on an endpoint or vertex (depending on your connectivity settings) of the feature classes they touch.
... View more
03-04-2014
07:59 AM
|
0
|
0
|
803
|
POST
|
Hello, Sui Tao. I will try to help you out with this. What version of ArcGIS are you running? There's a new python method in ArcGIS 10.2.1 that would be perfect for what you're trying to do. It allows you to quickly find the distance along a line that a point falls. You could find the distance that each stop falls along the route they're assigned to and sort by that distance to determine the order. You have to create a Polyline geometry object for your route line and a Point geometry object for each stop. Then use the measureOnLine() method. You would end up with something like: dist_along_route = lineGeom.measureOnLine(ptGeom) See http://resources.arcgis.com/en/help/main/10.2/index.html#//018z00000070000000. Unfortunately, this simple method isn't available in ArcGIS versions prior to 10.2.1. If you don't have 10.2.1 yet, you could accomplish the same thing using the linear referencing tools. See http://resources.arcgis.com/en/help/main/10.2/index.html#//003m00000002000000. You would first use the Create Routes tool on your polyline routes. This just generates measures along those route lines so you can return the distance along the lines later. Then, you would use Locate Features Along Routes to determine the distance along each route that each stop falls. You could then extract the distance from the resulting table and sort it to determine your stop sequence. You would want to run the tool separately for each route in your system. If you have a lot of routes, this will likely be time consuming, as the linear referencing tools tend to run a bit slowly. The 10.2.1 Geometry method I mentioned above is much faster. Let me know if this doesn't answer your question or if I can provide any further assistance.
... View more
03-04-2014
06:44 AM
|
0
|
0
|
1432
|
POST
|
Hi Ada. After you've created your network dataset, what's the goal of your analysis? Do you want to calculate pedestrian travel time from one point to another? Do you want to compare that to drive time? The way you set up your network attributes should depend on what you're hoping to analyze. I'm guessing you probably don't want to create an attribute that uses either walk time OR drive time on the streets. You probably want to use separate attributes for these, like you have it set up now. When someone is driving, they could conceivably park and then get on a train or bus, but they're not going to be able to continue driving when they get off the train or bus because they've left their car at the other end of their journey. So, you're going to want one impedance attribute where the street evaluators are set up for walking and the bus and train ones are set up for bus/train time. You'll want a second one where the street evaluators are set up for road speeds and the bus/train ones are never used (because this is a purely drive-time analysis). You can use a constant evaluator and set it to -1 to make train/bus edges never used. Your logic for calculating travel speed in your evaluators looks correct, as long as the units of your cost attribute and the other attributes you're using in your functions are correct. It's all just basic unit conversions.
... View more
03-04-2014
06:25 AM
|
0
|
0
|
803
|
POST
|
This video has a demonstration showing essentially what you're trying to do. http://video.esri.com/watch/2918/network-analyst-performing-network-analysis The relevant part starts around 12:50, and the field mapping portion starts around 16:30. The demo finished up around 19:40.
... View more
02-27-2014
02:14 PM
|
0
|
0
|
799
|
Title | Kudos | Posted |
---|---|---|
2 | 08-13-2024 09:47 AM | |
1 | 08-08-2024 03:14 PM | |
1 | 07-02-2020 11:57 AM | |
1 | 06-11-2024 09:30 AM | |
1 | 06-13-2024 06:10 AM |
Online Status |
Online
|
Date Last Visited |
7 hours ago
|