private PointFeature nextFilteredDataPoint() throws IOException {
    if (orgIter == null) return null;
    if (!orgIter.hasNext()) return null;

    PointFeature pdata = orgIter.next();
    while (!filter(pdata)) {
      if (!orgIter.hasNext()) return null;
      pdata = orgIter.next();
    }

    return pdata;
  }
 public PointFeature next() throws IOException {
   npts++;
   return pfIter.next();
 }