Issue #1257: Fix NSharp point retrieval
Change-Id: I50e27a10c987dfb373c8431bff7a18f50563f4b4 Former-commit-id:ca878b536f
[formerly25fe0aef5b
] [formerlyca878b536f
[formerly25fe0aef5b
] [formerly3fa2a8b894
[formerly 3a6ee9b778035d62285be6d1e5ff08f240ba8c51]]] Former-commit-id:3fa2a8b894
Former-commit-id:13bffbc202
[formerlyd434d967dd
] Former-commit-id:a8b4b8ac8b
This commit is contained in:
parent
337a366bf4
commit
dd0b4bae3d
1 changed files with 27 additions and 16 deletions
|
@ -22,6 +22,7 @@ package gov.noaa.nws.ncep.edex.uengine.tasks.profile;
|
|||
|
||||
import java.awt.Point;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -206,13 +207,15 @@ public class PointIn {// extends ScriptTask {
|
|||
// arbitrary list of IPersistable could be in any number of data stores
|
||||
Map<IDataStore, List<IPersistable>> dataStoreMap = dao
|
||||
.getDataStoreMap(objList);
|
||||
int rvalIndex = 0;
|
||||
|
||||
int totalRec = 0;
|
||||
|
||||
try {
|
||||
// list for data records retrieved
|
||||
List<IDataRecord> dataRecords = new ArrayList<IDataRecord>(
|
||||
objects.length);
|
||||
// map of IPersistable to its IDataRecord. Since objects not
|
||||
// guaranteed to be in file order have to recreate order after
|
||||
// retrievals done
|
||||
Map<IPersistable, IDataRecord> dataRecords = new HashMap<IPersistable, IDataRecord>(
|
||||
(int) (objects.length * 1.25) + 1);
|
||||
|
||||
for (Map.Entry<IDataStore, List<IPersistable>> entry : dataStoreMap
|
||||
.entrySet()) {
|
||||
|
@ -229,8 +232,13 @@ public class PointIn {// extends ScriptTask {
|
|||
// retrieve data from this data store
|
||||
IDataRecord[] records = dataStore.retrieveGroups(groups,
|
||||
pointRequest);
|
||||
for (IDataRecord rec : records) {
|
||||
dataRecords.add(rec);
|
||||
int index = 0;
|
||||
for (IPersistable persist : persistList) {
|
||||
if (index < records.length) {
|
||||
dataRecords.put(persist, records[index++]);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -240,16 +248,19 @@ public class PointIn {// extends ScriptTask {
|
|||
}
|
||||
|
||||
int recordIndex = 0;
|
||||
for (IDataRecord record : dataRecords) {
|
||||
float[] data = (float[]) record.getDataObject();
|
||||
// note; data.length should be the same as points.size()
|
||||
// if(k==0)
|
||||
// System.out.println("data[] szie="+data.length+
|
||||
// " parameter group size="+dr.length);
|
||||
totalRec += data.length;
|
||||
for (int pointIndex = 0; pointIndex < data.length; pointIndex++) {
|
||||
float[] pData = rval.get(pointIndex);
|
||||
pData[recordIndex] = data[pointIndex];
|
||||
for (IPersistable persist : objList) {
|
||||
IDataRecord record = dataRecords.get(persist);
|
||||
if (record != null) {
|
||||
float[] data = (float[]) record.getDataObject();
|
||||
// note; data.length should be the same as points.size()
|
||||
// if(k==0)
|
||||
// System.out.println("data[] szie="+data.length+
|
||||
// " parameter group size="+dr.length);
|
||||
totalRec += data.length;
|
||||
for (int pointIndex = 0; pointIndex < data.length; pointIndex++) {
|
||||
float[] pData = rval.get(pointIndex);
|
||||
pData[recordIndex++] = data[pointIndex];
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.println("total points = " + points.size()
|
||||
|
|
Loading…
Add table
Reference in a new issue