static float rateArea(Plantation allots[], World world) {
    //
    //  Favour fertile, unpaved areas close to the parent botanical station but
    //  farther from other structures-
    float
      fertility = 0, num = 0,
      minDist = World.SECTOR_SIZE, parentDist = 0 ;
    for (Plantation p : allots) {
      parentDist += Spacing.distance(p, p.belongs) ;
      Target close = world.presences.nearestMatch(Venue.class, p, minDist) ;
      if (
        close != null && close != p.belongs &&
        ! (close instanceof Plantation)
      ) {
        minDist = Spacing.distance(p, close) ;
      }
      for (Tile t : world.tilesIn(p.area(), false)) {
        fertility += t.habitat().moisture() ;
        if (t.pathType() == Tile.PATH_ROAD) fertility /= 2 ;
        num++ ;
      }
    }
    float rating = fertility / num ;
    rating *= 1 - (parentDist / (allots.length * World.SECTOR_SIZE)) ;
    rating *= minDist / World.SECTOR_SIZE ;
    return rating ;
  }