0

I am working with land parcel data and Arcmap 10.1. Each land parcel has a code (1,2,3,4) depending on the type of water supply source that it uses. I am trying to take a tally of each code within each census tract. I've been able to devise a very primitive method to do this:

  1. Load parcel layer (points) and census tract layer (shapes)
  2. Select one census tract, and use "Selection by Location" to select all parcels that fall within the census tract.
  3. Open attributes table
  4. Copy and paste into Excel
  5. Use Excel to get the sum

There are around 4000 census tracts, and I would have to do this for every parcel. I then tried spatial join. However, there are too many data points for the computer to handle.

Once I can get a spatial join, then it would be very simple. I have other data that is much more manageable, and I tried spatial join and tallying up the data by forming a new field on the attributes table, and it worked.

The main problem is that spatial join is taking way too long.

  • I'm assuming that you have spatial indexes on the relevant data? – Nathanus Jul 8 '14 at 16:39
  • I'm a novice, but I think all the data have spatial attributes. I load up a map of the US Northeast, and the parcels and tracts line up with the map, if that's what you're concerned about. The attributes also have the northing and easting data using NAD83. – user64742 Jul 8 '14 at 16:59
  • What is your methodology for parcels which may lie in one or more census tracts? – GISKid Jul 8 '14 at 17:10
  • How many points are we talking about? What direction and settings did you use on your spatial join? How large are the datasets from a file size standpoint? Number of attributes? What level license do you have (Basic, Standard, Advanced)? Spatial join doesn't appear to use tiling with large datasets, but some of the other Overlay tools do - Identity and Intersect are potential methods to get a tract ID attribute on your points. From there you should look at the Summary Statistics tool rather than any copying to Excel (for anything, including your other data, not just this dataset). – Chris W Jul 8 '14 at 20:47
  • Also, @GISKid raises a very valid point - if your original parcel data is polygons, you can have a parcel fall in multiple tracts. The process my answer outlines wouldn't really change (beyond the ability to use Union as well, and the risk of sliver polygons), but may be more accurate. By converting parcels to points, they will only count toward one tract when maybe they should count toward a few. – Chris W Jul 8 '14 at 22:24
1

As mentioned in my comment, I don't believe Spatial Join uses tiling, which breaks large datasets up into chunks for processing. However Identity (requires an Advanced license) and Intersect do. Either operation will give your points the attributes of your tract polys, including name, which is what you're trying to get out of your Spatial Join. Note that Identity will return all points, while Intersect will only return the points that are covered by a tract - any outside will be dropped. If size/processing is a concern, you might make a copy of the tracts and delete all attributes except name/ID.

Once you've got a tract name/ID attribute on your points, you'll run Summary Statistics on that result. You can use whatever valid statistic field you like (one is required for the tool to run, but the result isn't needed for the information you want). At the bottom however you can enter Case fields. You'll want to add tract name/ID and code as case fields (in that order). The resulting table generated by the tool will have a line for each unique tract/code combination and a count in a Frequency column of the number of times it occurs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.