From e134c593faf3e3c2fcf421c081924def8a932c75 Mon Sep 17 00:00:00 2001 From: Dave Hladky Date: Mon, 21 Jan 2013 08:27:07 -0600 Subject: [PATCH] Issue #1513 Updated the way level lookups are created Change-Id: Ie1120707af608910a88c407ca8af8cf19b964555 Former-commit-id: da08fa1186282389b49be2eda2dab939499b6e4c [formerly d0ff35051ee6a01d37d3cf773ef1463ef52b3ce2] [formerly 53ceda6a62b4428469ae824a0bbb4e883673d9ed] [formerly da08fa1186282389b49be2eda2dab939499b6e4c [formerly d0ff35051ee6a01d37d3cf773ef1463ef52b3ce2] [formerly 53ceda6a62b4428469ae824a0bbb4e883673d9ed] [formerly cf1c674c2e78b91c6e8c0934c7f31729fb0d1f0f [formerly 53ceda6a62b4428469ae824a0bbb4e883673d9ed [formerly a6b74b9bd1781ca61e364e24f61bb647602fcce6]]]] Former-commit-id: cf1c674c2e78b91c6e8c0934c7f31729fb0d1f0f Former-commit-id: a2c43995ceddba0b11f5f3b7dddc68b9b6fc3e5f [formerly 82cd0a1b58e6d1b097e2a426c28b055991ec1ef4] [formerly 712cab376e7c48e00ea7d133e645e49a15eb434a [formerly e497d39d754d12edc9f06b019341bec3184f7bf7]] Former-commit-id: 4ae833ddc07c41e9de121fa586bd4493adad2cdd [formerly 037353dda298a1aa0d1f30d06c90f0677db98671] Former-commit-id: 220296333be7e28acafae7c3f1e9aa9ef648932a --- .../retrieval/util/LookupManager.java | 46 ++++++++++------- .../datadelivery/OPENDAPServiceConfig.xml | 1 + .../lookups/cmcensLevelLookup.xml | 13 ----- .../datadelivery/lookups/fensLevelLookup.xml | 13 ----- .../datadelivery/lookups/gensLevelLookup.xml | 29 ----------- .../lookups/gens_bcLevelLookup.xml | 10 ---- .../datadelivery/lookups/gfsLevelLookup.xml | 29 ----------- .../lookups/gfs_2p5LevelLookup.xml | 29 ----------- .../lookups/gfs_hdLevelLookup.xml | 50 ------------------- .../lookups/hireswLevelLookup.xml | 13 ----- .../lookups/naefs_bcLevelLookup.xml | 10 ---- .../datadelivery/lookups/namLevelLookup.xml | 45 ----------------- .../datadelivery/lookups/ofsLevelLookup.xml | 43 ---------------- .../datadelivery/lookups/rapLevelLookup.xml | 40 --------------- .../datadelivery/lookups/rtofsLevelLookup.xml | 4 -- .../datadelivery/lookups/rucLevelLookup.xml | 40 --------------- .../datadelivery/lookups/srefLevelLookup.xml | 42 ---------------- .../lookups/sref_bcLevelLookup.xml | 8 --- .../opendap/OpenDAPMetaDataParser.java | 11 ++-- .../opendap/OpenDAPParseUtility.java | 38 +++++++++++++- 20 files changed, 73 insertions(+), 441 deletions(-) delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/cmcensLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/fensLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gensLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gens_bcLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gfsLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gfs_2p5LevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gfs_hdLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/hireswLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/naefs_bcLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/namLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/ofsLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/rapLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/rtofsLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/rucLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/srefLevelLookup.xml delete mode 100644 edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/sref_bcLevelLookup.xml diff --git a/edexOsgi/com.raytheon.uf.common.datadelivery.retrieval/src/com/raytheon/uf/common/datadelivery/retrieval/util/LookupManager.java b/edexOsgi/com.raytheon.uf.common.datadelivery.retrieval/src/com/raytheon/uf/common/datadelivery/retrieval/util/LookupManager.java index 20e4bfed21..8fca5267ef 100644 --- a/edexOsgi/com.raytheon.uf.common.datadelivery.retrieval/src/com/raytheon/uf/common/datadelivery/retrieval/util/LookupManager.java +++ b/edexOsgi/com.raytheon.uf.common.datadelivery.retrieval/src/com/raytheon/uf/common/datadelivery/retrieval/util/LookupManager.java @@ -42,8 +42,10 @@ import com.raytheon.uf.common.serialization.SerializationUtil; import com.raytheon.uf.common.status.IUFStatusHandler; import com.raytheon.uf.common.status.UFStatus; import com.raytheon.uf.common.status.UFStatus.Priority; +import com.raytheon.uf.common.util.CollectionUtil; import com.raytheon.uf.common.util.ServiceLoaderUtil; + /** * Lookup table manager * @@ -54,6 +56,7 @@ import com.raytheon.uf.common.util.ServiceLoaderUtil; * ------------ ---------- ----------- -------------------------- * Mar 7, 2011 357 dhladky Initial creation * Oct 27, 2012 1163 dhladky Improved, dynamically create files, Added Units + * Jan 18, 2013 1513 dhladky Level lookup refit. * * * @@ -381,10 +384,9 @@ public class LookupManager { * @throws Exception */ public void modifyLevelLookups(String modelName, double dz, float min, - float max) throws Exception { + float max, List levs) throws Exception { LevelLookup ll = null; - List levs = null; if (levelLookupExists(modelName)) { ll = getLevelsFromFile(modelName); @@ -397,25 +399,33 @@ public class LookupManager { ll = new LevelLookup(); } - if (levs == null) { + boolean gen = false; + + + if (CollectionUtil.isNullOrEmpty(levs)) { ll.setLevelXml(new ArrayList()); levs = ll.getLevelXml(); + gen = true; + } else { + ll.setLevelXml(levs); } - int diff = (int) (max - min); - int total = (int) Math.abs((diff / dz)); - // These add simple place holder level - // identifiers. It is up to the admin - // to add the real values - if (diff < 0) { - for (int i = 0; i <= total; i++) { - double lev = max + i * dz; - levs.add(lev); - } - } else { - for (int i = 0; i <= total; i++) { - double lev = min + i * dz; - levs.add(lev); + if (gen) { + int diff = (int) (max - min); + int total = (int) Math.abs((diff / dz)); + // These add simple place holder level + // identifiers. It is up to the admin + // to add the real values + if (diff < 0) { + for (int i = 0; i <= total; i++) { + double lev = max + i * dz; + levs.add(lev); + } + } else { + for (int i = 0; i <= total; i++) { + double lev = min + i * dz; + levs.add(lev); + } } } @@ -551,4 +561,6 @@ public class LookupManager { return unitXml; } + + } diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/OPENDAPServiceConfig.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/OPENDAPServiceConfig.xml index dc9ce2dc88..1c895b1050 100644 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/OPENDAPServiceConfig.xml +++ b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/OPENDAPServiceConfig.xml @@ -74,6 +74,7 @@ + diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/cmcensLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/cmcensLevelLookup.xml deleted file mode 100644 index e5cdc29670..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/cmcensLevelLookup.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 1000.0 - 925.0 - 850.0 - 700.0 - 500.0 - 250.0 - 200.0 - 100.0 - 50.0 - 10.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/fensLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/fensLevelLookup.xml deleted file mode 100644 index e5cdc29670..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/fensLevelLookup.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 1000.0 - 925.0 - 850.0 - 700.0 - 500.0 - 250.0 - 200.0 - 100.0 - 50.0 - 10.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gensLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gensLevelLookup.xml deleted file mode 100644 index 96a86d0c5d..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gensLevelLookup.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - 1000.0 - 975.0 - 950.0 - 925.0 - 900.0 - 850.0 - 800.0 - 750.0 - 700.0 - 650.0 - 600.0 - 550.0 - 500.0 - 450.0 - 400.0 - 350.0 - 300.0 - 250.0 - 200.0 - 150.0 - 100.0 - 70.0 - 50.0 - 30.0 - 20.0 - 10.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gens_bcLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gens_bcLevelLookup.xml deleted file mode 100644 index d2aab31231..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gens_bcLevelLookup.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - 1000.0 - 925.0 - 850.0 - 600.0 - 500.0 - 250.0 - 200.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gfsLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gfsLevelLookup.xml deleted file mode 100644 index dd43090a50..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gfsLevelLookup.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - 1000.0 - 975.0 - 950.0 - 925.0 - 900.0 - 850.0 - 800.0 - 750.0 - 700.0 - 650.0 - 600.0 - 550.0 - 500.0 - 450.0 - 400.0 - 350.0 - 300.0 - 250.0 - 200.0 - 150.0 - 100.0 - 70.0 - 50.0 - 30.0 - 20.0 - 10.0 - \ No newline at end of file diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gfs_2p5LevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gfs_2p5LevelLookup.xml deleted file mode 100644 index 96a86d0c5d..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gfs_2p5LevelLookup.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - 1000.0 - 975.0 - 950.0 - 925.0 - 900.0 - 850.0 - 800.0 - 750.0 - 700.0 - 650.0 - 600.0 - 550.0 - 500.0 - 450.0 - 400.0 - 350.0 - 300.0 - 250.0 - 200.0 - 150.0 - 100.0 - 70.0 - 50.0 - 30.0 - 20.0 - 10.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gfs_hdLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gfs_hdLevelLookup.xml deleted file mode 100644 index 9c32afbf49..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/gfs_hdLevelLookup.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 1000.0 - 975.0 - 950.0 - 925.0 - 900.0 - 875.0 - 850.0 - 825.0 - 800.0 - 775.0 - 750.0 - 725.0 - 700.0 - 675.0 - 650.0 - 625.0 - 600.0 - 575.0 - 550.0 - 525.0 - 500.0 - 475.0 - 450.0 - 425.0 - 400.0 - 375.0 - 350.0 - 325.0 - 300.0 - 275.0 - 250.0 - 225.0 - 200.0 - 175.0 - 150.0 - 125.0 - 100.0 - 70.0 - 50.0 - 30.0 - 20.0 - 10.0 - 7.0 - 5.0 - 3.0 - 2.0 - 1.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/hireswLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/hireswLevelLookup.xml deleted file mode 100644 index ccf28104b4..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/hireswLevelLookup.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 1000.0 - 925.0 - 850.0 - 700.0 - 600.0 - 500.0 - 400.0 - 300.0 - 250.0 - 200.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/naefs_bcLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/naefs_bcLevelLookup.xml deleted file mode 100644 index eeb016cb52..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/naefs_bcLevelLookup.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - 1000.0 - 925.0 - 850.0 - 700.0 - 500.0 - 250.0 - 200.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/namLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/namLevelLookup.xml deleted file mode 100644 index d1a5b0eef9..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/namLevelLookup.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - 1000.0 - 975.0 - 950.0 - 925.0 - 900.0 - 875.0 - 850.0 - 825.0 - 800.0 - 775.0 - 750.0 - 725.0 - 700.0 - 675.0 - 650.0 - 625.0 - 600.0 - 575.0 - 550.0 - 525.0 - 500.0 - 475.0 - 450.0 - 425.0 - 400.0 - 375.0 - 350.0 - 325.0 - 300.0 - 275.0 - 250.0 - 225.0 - 200.0 - 175.0 - 150.0 - 125.0 - 100.0 - 75.0 - 50.0 - 20.0 - 10.0 - 5.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/ofsLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/ofsLevelLookup.xml deleted file mode 100644 index fb041d3a97..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/ofsLevelLookup.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - 6000.0 - 5500.0 - 5000.0 - 4500.0 - 4000.0 - 3500.0 - 3000.0 - 2500.0 - 2000.0 - 1500.0 - 1000.0 - 950.0 - 900.0 - 850.0 - 800.0 - 750.0 - 700.0 - 650.0 - 600.0 - 550.0 - 500.0 - 450.0 - 400.0 - 350.0 - 300.0 - 250.0 - 200.0 - 150.0 - 100.0 - 90.0 - 80.0 - 70.0 - 60.0 - 50.0 - 30.0 - 20.0 - 10.0 - 6.0 - 3.0 - 0.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/rapLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/rapLevelLookup.xml deleted file mode 100644 index 9996d3048a..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/rapLevelLookup.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - 1000.0 - 975.0 - 950.0 - 925.0 - 900.0 - 875.0 - 850.0 - 825.0 - 800.0 - 775.0 - 750.0 - 725.0 - 700.0 - 675.0 - 650.0 - 625.0 - 600.0 - 575.0 - 550.0 - 525.0 - 500.0 - 475.0 - 450.0 - 425.0 - 400.0 - 375.0 - 350.0 - 325.0 - 300.0 - 275.0 - 250.0 - 225.0 - 200.0 - 175.0 - 150.0 - 125.0 - 100.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/rtofsLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/rtofsLevelLookup.xml deleted file mode 100644 index 1cb435de22..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/rtofsLevelLookup.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 1.0 - \ No newline at end of file diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/rucLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/rucLevelLookup.xml deleted file mode 100644 index 9996d3048a..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/rucLevelLookup.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - 1000.0 - 975.0 - 950.0 - 925.0 - 900.0 - 875.0 - 850.0 - 825.0 - 800.0 - 775.0 - 750.0 - 725.0 - 700.0 - 675.0 - 650.0 - 625.0 - 600.0 - 575.0 - 550.0 - 525.0 - 500.0 - 475.0 - 450.0 - 425.0 - 400.0 - 375.0 - 350.0 - 325.0 - 300.0 - 275.0 - 250.0 - 225.0 - 200.0 - 175.0 - 150.0 - 125.0 - 100.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/srefLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/srefLevelLookup.xml deleted file mode 100644 index 892534c4a7..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/srefLevelLookup.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - 1000.0 - 975.0 - 950.0 - 925.0 - 900.0 - 875.0 - 850.0 - 825.0 - 800.0 - 775.0 - 750.0 - 725.0 - 700.0 - 675.0 - 650.0 - 625.0 - 600.0 - 575.0 - 550.0 - 525.0 - 500.0 - 475.0 - 450.0 - 425.0 - 400.0 - 375.0 - 350.0 - 325.0 - 300.0 - 275.0 - 250.0 - 225.0 - 200.0 - 175.0 - 150.0 - 125.0 - 100.0 - 75.0 - 50.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/sref_bcLevelLookup.xml b/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/sref_bcLevelLookup.xml deleted file mode 100644 index e04f191f0b..0000000000 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.harvester/utility/common_static/base/datadelivery/lookups/sref_bcLevelLookup.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - 1000.0 - 850.0 - 700.0 - 500.0 - 250.0 - diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.retrieval/src/com/raytheon/uf/edex/datadelivery/retrieval/opendap/OpenDAPMetaDataParser.java b/edexOsgi/com.raytheon.uf.edex.datadelivery.retrieval/src/com/raytheon/uf/edex/datadelivery/retrieval/opendap/OpenDAPMetaDataParser.java index 1cf52b060b..6b6f0fd4a3 100644 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.retrieval/src/com/raytheon/uf/edex/datadelivery/retrieval/opendap/OpenDAPMetaDataParser.java +++ b/edexOsgi/com.raytheon.uf.edex.datadelivery.retrieval/src/com/raytheon/uf/edex/datadelivery/retrieval/opendap/OpenDAPMetaDataParser.java @@ -89,6 +89,7 @@ import dods.dap.DAS; * Dec 12, 2012 supplement dhladky Restored operation of ensembles. * Dec 10, 2012 1259 bsteffen Switch Data Delivery from LatLon to referenced envelopes. * Jan 08, 2013 dhladky Performance enhancements, specific model fixes. + * Jan 18, 2013 1513 dhladky Level look up improvements. * * * @@ -135,8 +136,10 @@ class OpenDAPMetaDataParser extends MetaDataParser { // create new default lookups if (levelType.equals(LevelType.MB) || levelType.equals(LevelType.SEAB)) { + + List levelList = OpenDAPParseUtility.getInstance().parseLevels(gdsmd.getUrl(), serviceConfig.getConstantValue("LEV")); LookupManager.getInstance().modifyLevelLookups( - collectionName, dz, levMin, levMax); + collectionName, dz, levMin, levMax, levelList); } } @@ -654,12 +657,12 @@ class OpenDAPMetaDataParser extends MetaDataParser { } DAS das = (DAS) link.getLinks().get(DAP_TYPE.DAS.getDapType()); - dataSet.setParameters(getParameters(das, dataSet, gdsmd, link, - collection, dataDateFormat)); - + // set url first, used for level lookups gdsmd.setUrl(link.getUrl().replace( serviceConfig.getConstantValue("META_DATA_SUFFIX"), serviceConfig.getConstantValue("BLANK"))); + dataSet.setParameters(getParameters(das, dataSet, gdsmd, link, + collection, dataDateFormat)); Time dataSetTime = gdsmd.getTime(); if (dataSetTime == null) { throw new IllegalStateException( diff --git a/edexOsgi/com.raytheon.uf.edex.datadelivery.retrieval/src/com/raytheon/uf/edex/datadelivery/retrieval/opendap/OpenDAPParseUtility.java b/edexOsgi/com.raytheon.uf.edex.datadelivery.retrieval/src/com/raytheon/uf/edex/datadelivery/retrieval/opendap/OpenDAPParseUtility.java index 77a59a67ba..9ce0350fa0 100644 --- a/edexOsgi/com.raytheon.uf.edex.datadelivery.retrieval/src/com/raytheon/uf/edex/datadelivery/retrieval/opendap/OpenDAPParseUtility.java +++ b/edexOsgi/com.raytheon.uf.edex.datadelivery.retrieval/src/com/raytheon/uf/edex/datadelivery/retrieval/opendap/OpenDAPParseUtility.java @@ -21,8 +21,13 @@ import com.raytheon.uf.common.datadelivery.retrieval.xml.UnitLookup; import com.raytheon.uf.common.status.IUFStatusHandler; import com.raytheon.uf.common.status.UFStatus; import com.raytheon.uf.common.status.UFStatus.Priority; +import com.raytheon.uf.edex.datadelivery.retrieval.util.ConnectionUtil; import dods.dap.AttributeTable; +import dods.dap.DArray; +import dods.dap.DConnect; +import dods.dap.DataDDS; +import dods.dap.PrimitiveVector; /** * Constants for working with OpenDAP. This class should remain package-private, @@ -43,12 +48,13 @@ import dods.dap.AttributeTable; * Nov 09, 2012 1163 dhladky Made pre-load for service config * Nov 19, 2012 1166 djohnson Clean up JAXB representation of registry objects. * Jan 08, 2013 1466 dhladky NCOM dataset name parsing fix. + * Jan 18, 2013 1513 dhladky Level Lookup improvements. * * * @author dhladky * @version 1.0 */ -final class OpenDAPParseUtility { +public final class OpenDAPParseUtility { private static final Pattern QUOTES_PATTERN = Pattern.compile("\""); @@ -336,7 +342,35 @@ final class OpenDAPParseUtility { return QUOTES_PATTERN.matcher(val).replaceAll( serviceConfig.getConstantValue("BLANK")); } - + /** + * Parse out the levels from the dods + * @param url + * @param lev + * @return + */ + public List parseLevels(String url, String lev) { + + List levels = null; + + try { + DConnect connect = ConnectionUtil.getDConnect(url + "?" + lev); + DataDDS data = connect.getData(null); + DArray array = (DArray) data.getVariable(lev); + PrimitiveVector pm = array.getPrimitiveVector(); + double[] values = (double[]) pm.getInternalStorage(); + levels = new ArrayList(); + for (double value : values) { + levels.add(value); + } + + } catch (Exception e) { + statusHandler.handle(Priority.PROBLEM, "Error downloading/parsing levels: " + + url, e); + } + + return levels; + + } }