protected PointFeature makeFeature(int recnum, StructureData sdata) throws IOException { cursor.recnum[0] = recnum; cursor.tableData[0] = sdata; // always in the first position cursor.currentIndex = 0; ft.addParentJoin(cursor); // there may be parent joins if (isMissing()) return null; // missing data double obsTime = ft.getObsTime(this.cursor); // must send a copy, since sdata is changing each time, and StandardPointFeature may be stored return new StandardPointFeature(cursor.copy(), timeUnit, obsTime); }