How to interpolate into polygons?

I need to interpolate values from points to polygons.

I have a point shapefile and a shapefile of adjacent polygons. Some polygons get several points falling inside, some have nothing. I thought about interpolating values for polygon centroids only, but this is rather crude. I would like to take into account whole polygon areas.

I was going to produce a grid in ArcGIS with very small cells and then calculate average values of cells falling inside each polygon (by zonal statistics), but this way is very time and memory consuming (I have a lot of points and polygons and a large area).

Also I found in ArcGIS for a geostatistical layer: Predicting values for specified point locations. I can set there polygons as my specific locations and have the output with predicted values for each polygon in the attribute table. But I have no idea how ArcGIS calculates values for polygons there (they appear different from the values for the point centers of the polygons).

-
What are the values that you are trying to interpolate onto the polygons? The type of values, for instance, whether they are elevations, or population or pollution levels. What do the points represent, as well as the polygons? These all factor into deciding the best method for working with your specific problem. The more detail you can give about your data, the better an answer you are likely to receive. –  Get Spatial Sep 6 '12 at 23:07
The points are bathymetric surveys, the polygons are the curvilinear mesh for a numerical model. –  nadya Sep 6 '12 at 23:59
Knowing that you have bathymetric data, I would recommend editing your question to state specifically how this data needs to fit into your numerical model. Also, how big is your dataset. You may be on the right track with interpolating a grid from the points then overlaying the polygons on top. It may not be as time intensive as you think. Again, more specific detail including what was in your comment, instead of the generalities in your question now, will help you obtain a more relevant answer. –  Get Spatial Sep 7 '12 at 4:09
Isn't this what you call block kriging? I don't use Arc so I don't have any specifics to suggest I'm afraid. –  user13184 Nov 29 '12 at 7:06

I would recommend you to interpolate your data using the raster interpolation, and after, as a second step, apply something like Add Surface Information (it is ArcGIS tool).

-
Thanks for letting me know about this new tool in ArcGIS 10. The help says that for polygon it can add to the attribute table 3D area of the surface overlapping the polygon, minimum, maximum, and mean of the elevation and slope from the surface. Mean of the elevation is relevant to my needs, however, it is the same as using Zonal Statistics tool as I wrote in my question (the middle paragraph). Anyway to produce a small-cell raster and get average values of cells inside the polygons. This is what I am actually doing, but it is quite time and memory consuming. –  nadya Nov 29 '12 at 2:36

The ArcGIS Spatial_Join tool might accomplish what you need. It will sum, average, etc the point attributes that overlap each Polygon, and populate each Polygon accordingly. Try it out, it might be fast enough. Build a spatial index first for your two shapefiles.

-
Thanks, but I mentioned that many (the most) of the polygons don't overlap any point. Just average inside each polygon is not possible, interpolation is needed. –  nadya Sep 6 '12 at 23:56

You can use max-ent approximants to construct shape functions in each polygon (see http://dilbert.engr.ucdavis.edu/~suku/maxent/ and http://www.lacan.upc.edu/arroyo/Site1/Research/Entries/2012/9/12_Maximum_entropy_approximation.html). Once you have constructed this approximation space, a mean least square approach allows you to calculate the values of the data at the vertices of the polygons.

-
Thank you, looks interesting, I will investigate this method. And I also thought about getting values at vertices of polygons. –  nadya Jan 18 '13 at 22:26