|
POST
|
Christina, Did you have success with your script? I'm in need of exactly the same thing: a script to auto-generate unique IDs that are a letter+number combo. If so, would you mind sharing your code and/or lessons learned? peter[dot]palacios[at]yahoo[dot]com Thanks in advance for your time and courtesy. See this post for the code that worked for her.
... View more
10-26-2011
07:36 AM
|
0
|
0
|
1285
|
|
POST
|
I am a new user of GIS and I have a polyline shapefile with roads in GCS_WGS_1984 geographic projection and I want to extract part of it (only the motorways) in a new shapefile with projection Lambert Conformal Conic in order to calculate the length of each polyline. How can I extract the information I need and save it in a different projection from the one the initial shapefile has? First I assume there is an field in the attribute table that classifies the roads to that you can create a query to select the motorways only. You can use either the Selection menu item for Select by Attributes or open the layer's table and use the Select by Layer in the table. After you have the correct layer as your target build an SQL expression to do the selection. Something like: ROAD_CLASS = 'MOTORWAY' Once all of your Motorways are selected, you can right click the layer in the Table of Contents and choose Data then Export. Browse to the directory where you want the shapefile to be, give the new file a name and choose shapefile as the type of file to export. Hit OK and you have a new shapefile with just the motorways you selected.
... View more
10-26-2011
07:03 AM
|
0
|
0
|
2355
|
|
POST
|
How do you enable hyperlink fields in layer properties? Fields in the related table are not listed in the drop down menu. You must have ArcGIS 9.3 (maybe 9.2) or better. Access the ArcMap Option under the Customize tab and check the item shown in the first image to make any available hyperlink active in the Identify tool. Create your relate. Make sure the Display field expression of your layer creates a meaningful label (at ArcGIS 10 you can build a label from many fields just like in the Label Tab of the layer). If you enable record sorting in the Identify tool the features will be listed alphabetically based on the label expression you built. Now when you click the Identify tool, make sure that the layer with the relate is an Identify target. The features of the layer will have a tree expander as shown in the upper half of the dialog of the second attached image. Expand the tree two levels to get to the related table records. In this case there are 4 related table records to the feature. Click on one of the related records to access its field list. Any fields that contain a useable hyperlink in the related table will be active and can be clicked to launch the hyperlink as shown in the lower half of the dialog in the second attached image. I have only one hyperlink field in my related records in this example, but I could have made every field a hyperlink in my related table if I had wanted it to be that way. (I just noticed I cut off the little lightning bolt that appeared on the right hand side of the text in the field with the hyperlink, but when I first captured the image the hyperlink lightning bolt was there).
... View more
10-26-2011
06:26 AM
|
0
|
0
|
3393
|
|
POST
|
A possible way around it is to create a new feature layer where you join the attribute table of your layer to the hyperlinks table, in essence creating new features for each hyperlink record. Some features will overlap since you have many hyperlinks per feature. You could then make your new hyperlink layer features transparent in your map. When a user uses the hyperlinks tool they will only see the blue feature layers, which when selected will give you a list of which hyperlinks at that particular location. Hopefully you get the gist. This won't work because of the one-to-many relationship. You could use the Make Query Table tool to handle the join instead. It will multiply the feature geometry for as many table records that exist. Read the help for it here. A relate works with the Identify tool to access the hyperlink fields if you enable all hyperlinks in the options of ArcMap. You have to expand the relate tree to get at the hyperlink field, so it is a few clicks, but the records can be sorted on a Display field, which I like better than the hyperlink tool.
... View more
10-25-2011
06:44 PM
|
0
|
0
|
3393
|
|
POST
|
Ahh, I see the light! Forget about the routes, and just use the intersection points. That makes sense. What if the intersection is at a 45 degree angle or I have curvealinear streets? The offset may be NW. Will the offset know to follow the segment? I want the point in the middle of the road, side doesn't matter. I'll start looking into this tomorrow. Thanks again! Streets at 45 degree angles and curvilinear streets (at least S curves with an intersection in the middle of the S and loops that intersect the same street twice) are problematic to interpret no matter what. People in the field will make their best guess on 45 degree streets and usually pick something opposite of a nearby east/west or north/south street, which the model cannot "see". Or else they do not pay attention to the fact that there are two street intersections with the same name. Of you don't know if they are describing the S relative to its overall direction or its local direction at the intersection. Whether you have a Thomas Bros or a GIS model, those descriptions remain ambiguous without more information. If your orientation is built from the upper left than NW (-1) and SE (1) are not a problem. For NE and SW you have ambiguity that may require looking at the overall trend of the route to make your best guess. The angle of the intersection can give you a clue, since it rarely is exactly at 45 degrees. The offset always follows the line as long as it is within the bounds of the line's measures. If it is really ambigous sometime I just try a multiplier and if it throws an error by being off the line, try the other direction. If a measure is too low or too high to fall in the Route's measures, you can generate an Error field when you create the Event layer that tells you there is a problem. When nothing seems to work, I just temporarily enter the known intersection measure from my intersection table so I can use the record to zoom to the intersection and then look the road over before applying the offset multiplier. I also have a field for making adjustment to the offset distance so that I keep the event on the line (say it overshoots by 5 feet, I will shorten it in the modified offset field). I also calculate the From and To measures of the Route so I can join to it and see that a measure value is too high. Too low is usually negative, so it is easy to figure out. If it is just -20 feet or so then I may just adjust the offset by 20 (very typical in cul-de-sac bulbs). Anyway, now you are getting the idea.
... View more
10-25-2011
04:24 PM
|
0
|
0
|
2882
|
|
POST
|
I did ESRI's intro to Linear Referencing course and it was working with trails data with about 14 trails. It wasn't much help, making an event table consisted of typing in the trail number for the route you want to place a point on. I want to be able to do some kind of calculation to create my route name. So I figure I concantonate the primary, direction and secondary street and that will be my route name. I guess my concern is how do I reliably and repeatibly find a particular intersection. The labeled section of centerline refers to the two different discriptions I could have from the police department that would be describing the same piece of road. So my concern is with new event tables I receive on a quarterly basis. How will I know and match up the police description of the street segment (i.e. Primary St = Arneill, Secondary St = Ponderosa, distance 100 ft, direction South) matching up with what I have. I like the idea of having single segments, or even single segments between intersections and for example subtracting from the total if it is south and adding if it is North, but I would think I would need to program something to know the total measure of each segment and know a particular description of it means it should subtract from the total and not add. Where you are going opposite of my approach is that you are trying to make the cross-streets tie to roadways segments or routes and not to intersections or points and therefore are multiplying routes. I tie my cross-street names to intersections or points and not to road segments or routes and therefore multiply my points. My approach allows me to use any intersection of a road as a reference relative to any other point along that road, no matter how many intersections the road has, which is the real world way things work. If I tell you to go 3,000 feet south of ARNELL RD_PONDEROSA DR, I could just as easily say 2,000 feet south of ARNELL RD_PICKWICK DR if those two intersections are 1,000 feet apart. Police will use either to mean the same thing, so your model needs to allow for either description. Therefore I have at the same point for any two cross-streets two points. The intersection of ARNELL RD_PONDEROSA DR_ has a measure relative to ARNELL RD, while the intersection of PONDEROSA DR_ARNELL RD has a measure relative to PONDEROSA DR at the exact same point. These two points in the exact same place tie me to two different routes that cross in the same place. I then use the same principal of combining the street names at the intersection that you want to use for your Routes and can join to the intersections for calculations the same way that you want to do it with Routes. So just switch your thinking away from the Route and apply it to the intersection. After all we use the expression "reference points" and "points of reference", not "reference segments" and "segments of reference". My model has been applied to over 70,000 different event points and line segments, and I may have only typed in 12 measure in all that time apart from a calculation. I have also found that I have only had to inspect and fix less than 5% of everything I create to be certain it was created the correct way. Most of my features are created without me looking at them and check out when I do look at them or when other look at them (I have not personally looked at everyone of the 44,000 signs I have created, but when I do I can activate my hyperlink to streetview and see the sign within 5 feet of the position I calculated most of the time). Offset direction (north/south or east/west) are just handled by multiplying the offset by 1 or -1. If you built your Route from the upper-left you can predict that north and west are a multiplier of -1 about 90% of time and south or east are a multiplyier of 1 about 90% of the time if your roads are at all cose to being built on a grid. You can use the normal angle of the intersection point (generated as an option of an LR Event point layer) to find anomolies based on the intersection angle. An SQL expression can test for anomolous angles relative to your normal expectation. Typically on diagonal roads where the user may say north/south but GIS says east/west or loop roads where I have two intersections of the same name pair and I have to figure out which end of the road is meant.
... View more
10-25-2011
02:04 PM
|
0
|
0
|
2882
|
|
POST
|
Richard, Thanks for your help so far. I have most of my data formatted but I am still confused on how I will identify the routes from a listing of Primary St, Cross Street and Direction. I had a few problems: 1. How do I create a route that is not strictly increasing? If I create two routes on the same line that are increasing in opposite directions then it will work. My idea is to have at least two names for each segment because each street could be described as being south or north of its cross street. See attached image. Arneill will have two different route IDs. This way I can simply concantonate the primary st, direction and cross street from the table I receive from the police dept and it will find my route. I plug in the distance and I have my collision point. 2. This creates a lot of manual work. I will have to Create Route on each street manually to see what direction they go and make a route on them. Then I will have to create the names. I looked at your graphic and am not sure I know what the call out lable refers to. If it is a subsection of the line between the north and south intersection, that is not how I create my routes. My routes would not break at any intersection and would have measures that normally start at the north or west and continue to the south or east. So I would have 8 Routes total on the map that you created. One for Ponderosa Dr, one for Pickwick Dr, one for Arnell Rd, one for Fulton St, one for Pheasant Hill Rd, one each for the unlabeled Cul-de-sacs, and one for Hartnell St at the 3 way intersection with Fulton St and Pickwick Dr. You always want strictly increasing routes, period. That is the definition of a simple route and that is always your goal. You also do not need routes going both directions to assign positions that go in opposite directions. Measure direction along an LR Route is just a function of adding or subtracting measure values relative to a known fixed measure at a reference intersection. For example, if the reference measure on Ponderosa Dr at its intersection with Arnell Rd is 1,000 feet (meaning that it is offset 1,000 feet from the beginning of the line at the west end of Ponderosa Dr), then to go 100 feet west of that intersection you subtract 100 feet (1,000 - 100 = 900) and to go 100 east of that intersection you add 100 feet to the intersection measure (1,000 + 100 = 1,100). All of those measures would have a Route ID of Ponderosa Dr and each of those positions can be on the same Route. If your concern is with direction of travel of a vehicle, that is a separate field and is represented by a side offset, not a measure offset. Vehicles travelling both eastbound and westbound can be described as being on Ponderosa Dr 100 feet west of Arnell Rd, but the eastbound vehicle is on the right or south side of the line and the westbound vehicle is on the left or north side of the line if the line's measures increase from west to east. The side offset is again just a positive or negative number relative to the one line. You do not need lines going in opposite directions to deal with direction of travel. Your approach won't work because at some point you will get an offset distance that crosses an intersection and your Route will not be able to accomodate that position.
... View more
10-25-2011
12:18 PM
|
0
|
0
|
2413
|
|
POST
|
Good point on the -1 vs 999! I don't think it is an issue with the JOIN_FID 0, because they won't be selected by Joint_Count = 0. Did I misunderstand you? I missed that suggestion. My second step would not be necessary if the Join_Count value is used in the selection.
... View more
10-24-2011
10:09 AM
|
0
|
0
|
1323
|
|
POST
|
I think you are talking about the output of Join-one-to-many, which contains the JOIN_FID field. Yes, we realized this issue and have had a fix in 10.1 so that the unjoined features will get -1 in this field. You can do this as a workaround: Select points with Joint_Count of 0 and calculate the JOIN_FID to be 999, as you wished. Sorry about the inconvenience. Hope that helps. Actually, I would calculate it to -1 as the fix at 10.1 does (since you could easily get to a real FID of 999 in your polygons, but not -1). Also you would need to select the polygon that actually has an ID of 0 and then do a select by location on the Spatial Join points file. Anything that get selected should be calculated back to 0 (since it actually is a point associated with the Polygon having an FID of 0).
... View more
10-24-2011
09:52 AM
|
0
|
0
|
1323
|
|
POST
|
Hallo, I am trying to perform a spatial join. I always get the error 999999 if I set the merge rule of one field to maximum? What could be the reason? If I use first (default); it is working. Matthias Maximum only works with numeric fields and will not work with text fields. Your field must be a text field, and first and last are your only options.
... View more
10-24-2011
08:55 AM
|
0
|
0
|
2425
|
|
POST
|
I am attempting to get demographic data attached to census blocks into a layer of transportation analysis zones (TAZs) which are also polygons. I need to move things like total population to the TAZs because it doesn't exist there and they are my primary unit of analysis. The issue here is that a) the blocks are smaller than the TAZs so there are many blocks contained within one TAZ and b) the census block and TAZ boundaries do not line up (are off by maybe 12-35 meters). What is the best way to aggregate the census data from many blocks into one TAZ while not having to deal with slivers and endless editing? Thanks for any and all help! If you do not need to reshape the blocks to actually fit the boundaries of the predominant TAZ and just need to tag the blocks with the TAZ ID so they can be summarized, you can use the Feature to Point tool to export the Centroids of the blocks (check the option ot keep the Centroid inside the polygon) and then use the Spatial Join tool to get the ID association you need. Then you should be able to run summaries of the block data for transfer to the TAZs.
... View more
10-22-2011
05:36 PM
|
0
|
0
|
882
|