I have yield data of a field. The final data are represented by quarter million of polygons.

The width of the harvester was 30 ft and it measured and stored the yield data after each 1.2 ft. So, the raw data contained locations of some points (where the yield was measured) and the yield. For practical use, the points were converted to polygons with the size of 30ft by 1.2ft. I have been asked to concentrate (dissolve) every 5 polygons and produce one, thus the resulted polygon will be 30 ft by 6ft (1.2*5). The new polygon will also contain the average yield of the old 5 polygons. The polygons are in a sequential order from left to right and I don't have to do change the polygons length which is 30 ft (harvester width).

The polygons are shown in the image. However, in this image, the polygons have some blank space between them, please assume there will be no blank space.

enter image description here

  • Are the polygons the thin coloured rectangles? You want to create bigger polygons that span five of each of the thin coloured rectangles? – Spacedman May 7 '18 at 17:27
  • 1
    Could you approach the problem a different way? Can you convert the raw points file into a raster instead, then use raster processing to derive the end product? – Dan May 8 '18 at 21:46

Assuming you can tolerate some error, this is how I would solve this problem:

Create a polygon fishnet, with the origin of the fishnet sharing the origin point of your yield polygons. Set the width and length of the fishnet to equal your 6ft by 30ft. Be sure to change the geometry type drop list to Polygon, it defaults to Polyline. If you have a slight rotation to your yield polygons, see this on how to use the Y-Axis Coordinate field.

Then using the spatial join tool: set your target as your fishnet, join as your yield layer, keep the operation one-to-one. Under 'field map to join', right click the yield attribute from your layer and set the Merge Rule to 'mean'. Leave the match option set on intersect.

This will find all polygons in your yield layer that intersect your fishnet and create a field in the fishnet with the average of all yields. This will contain some error if the yield polygon overlaps slightly with a neighbouring fishnet polygon.

You could potentially remove the error by creating a more granular fishnet and remove any fishnet polygon features that intersect a 6x30 grid. That will create a gap between the fishnet polygons that is hopefully wider that the intrusion of the yield polygons that are not uniform or square.

Dissolve the fishnet polys so that you have fishnet grid that is slightly smaller, say 5x28.

Perform the spatial join while averaging.

Finally, create your 6x30 fishnet and do another spatial join without any data transform to the 5x29 fishnet. Now you have a gap less 6x30 polygon grid with, hopefully, no juxtaposition data leakage.

And of course you could programmatically solve this too.

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.