Using ArcGIS 10.4

I have a feature class with many small catchments. I also have several raster layers with information for these catchments (derived by zonal statistics). For example the sum of precipitation within each catchment.

Now I realized I need all these information in one big table to have the catchment with its position and size and the information like precipitation next to it (for example to normalize the value by catchment size etc. Of course the sum of rain also depends on the size of the catchment...). The problem is that a join-table does not work because the catchments don't have unique names that are the same in every layer.

So I tried spatial join multiple times. I first had to convert the raster layer into a point data. When I then try to spatial join this to the catchments, it takes hours and then at some point fails.

Any idea how I can solve that?

I was thinking something like get the centroid of every catchment (to not have millions of points, because within each catchment everything is the same anyway) but I have no idea how.

EDIT: With radouxju's advice I was able to solve the problem. BUT something happened that might cause problems in my analysis.

Unfortunately my subcatchments are not 100% precise. Its not an issue for the analyses but might be now. As you can see in the picture the edges are a little off. This seems to leave me with more than one line per catchment with identical ID because there are always little additional river segments (see little identify-window in picture). Any idea how I could/should treat that? Manually delete everything thats smaller than, I dont know, 20 meters?!

River segments

2 Answers 2


You could convert the other way around. Using the centroid is indeed a good solution if your rasters came from a zonal stat

First, convert the catchment polygon into point with feature to point (if you don't have this tool (licenced), compute the coordinate centroid then add those coordinate as point (XY event layer))

Then, use "extract multivalue to point" in order to have the raster value under each centroid.

Finally, join the point table to the polygon table, but this might not be necessary in your case because you already have all attributes in the point table.

For the next time, note that there is a tool called "zonal stat as table" that create tables with the identifiers of the polygon layer, which you can join easily.

  • You are my hero! This is exactly what I needed. Thank you so much!!
    – Canna
    Commented Mar 7, 2018 at 21:42
  • Unfortunately I found a small problem. See edit in my question please. Thank you.
    – Canna
    Commented Mar 7, 2018 at 22:54
  • @Heiko, rather than edit your question with another question, I'd post a new question. As this one is already accepted, you may get more visibility with a new question.
    – Fezter
    Commented Mar 7, 2018 at 23:10

My recommendation would be to derive your stats by “Zonal statistics as table” instead of “zonal statistics”, then join the tables back to your polygonized catchments. Centroids can be problematic in instances where the centroid doesn’t necessarily lie inside the feature eg. a crescent moon, unless you use “feature to point” with the “inside” parameter. If you don’t have a unique “BasinID” for every catchment feature, just use the OID or FID field for the basis of your zonal stats and joins.

  • You are right, next time I should do that. But it is really too much to redo everything. Also I am wondering: Sometimes I had to change things after the zonal statistics. Like recalssify something or delete zeros. I couldnt have done that with using zonal statistics as table because I probably wouldn't even have recognized the mistakes. Right? I dont know if the problem above is actually a problem. I will try to solve it manually if it is. Everything else seems impossible right now.
    – Canna
    Commented Mar 9, 2018 at 12:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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