diff --git a/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/.classpath b/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/.classpath
deleted file mode 100644
index 098194ca4b..0000000000
--- a/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/.project b/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/.project
deleted file mode 100644
index bc6ad4c198..0000000000
--- a/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
- com.raytheon.uf.edex.upgrade.obslocation
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/META-INF/MANIFEST.MF b/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/META-INF/MANIFEST.MF
deleted file mode 100644
index 391cc9b0ae..0000000000
--- a/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,8 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Obslocation
-Bundle-SymbolicName: com.raytheon.uf.edex.upgrade.obslocation
-Bundle-Version: 1.14.0.qualifier
-Bundle-Vendor: RAYTHEON
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Require-Bundle: org.postgres;bundle-version="9.2.4"
diff --git a/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/build.properties b/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/build.properties
deleted file mode 100644
index 34d2e4d2da..0000000000
--- a/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .
diff --git a/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/src/com/raytheon/uf/edex/upgrade/obslocation/DataUriDoubleToFloat.java b/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/src/com/raytheon/uf/edex/upgrade/obslocation/DataUriDoubleToFloat.java
deleted file mode 100644
index 71fae85581..0000000000
--- a/deltaScripts/14.4.1/DR3410/com.raytheon.uf.edex.upgrade.obslocation/src/com/raytheon/uf/edex/upgrade/obslocation/DataUriDoubleToFloat.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/**
- * This software was developed and / or modified by Raytheon Company,
- * pursuant to Contract DG133W-05-CQ-1067 with the US Government.
- *
- * U.S. EXPORT CONTROLLED TECHNICAL DATA
- * This software product contains export-restricted data whose
- * export/transfer/disclosure is restricted by U.S. law. Dissemination
- * to non-U.S. persons whether in the United States or abroad requires
- * an export license or other authorization.
- *
- * Contractor Name: Raytheon Company
- * Contractor Address: 6825 Pine Street, Suite 340
- * Mail Stop B8
- * Omaha, NE 68106
- * 402.291.0100
- *
- * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
- * further licensing information.
- **/
-package com.raytheon.uf.edex.upgrade.obslocation;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-/**
- * Reformats the dataURI to match the new precision scheme for obs locations.
- *
- *
- *
- * SOFTWARE HISTORY
- *
- * Date Ticket# Engineer Description
- * ------------ ---------- ----------- --------------------------
- * Jul 30, 2014 3410 bclement Initial creation
- *
- *
- *
- * @author bclement
- * @version 1.0
- */
-public class DataUriDoubleToFloat {
-
- private static final String HOST_ARGUMENT = "-host";
-
- private static final String DEFAULT_HOST = "localhost";
-
- private static final String PORT_ARGUMENT = "-port";
-
- private static final String DEFAULT_PORT = "5432";
-
- private static final String USER_ARGUMENT = "-user";
-
- private static final String DEFAULT_USER = "awips";
-
- private static final String PASSWORD_ARGUMENT = "-password";
-
- private static final String DEFAULT_PASSWORD = "awips";
-
- private static final String DATABASE_ARGUMENT = "-database";
-
- private static final String DEFAULT_DATABASE = "metadata";
-
- private static final String JDBC_CONNECTION_FORMAT_STRING = "jdbc:postgresql://%s:%s/%s";
-
- private static final String USER_PROPERTY = "user";
-
- private static final String PASSWORD_PROPERTY = "password";
-
- private static Map argumentMap = new HashMap();
-
- /* map of table names to latitude 0-based index in data uri */
- private static final Map latitudeIndexMap = new HashMap();
-
- static {
- latitudeIndexMap.put("tcg", 5);
- latitudeIndexMap.put("acars", 4);
- latitudeIndexMap.put("acarssounding", 3);
- latitudeIndexMap.put("ldad_manual", 5);
- latitudeIndexMap.put("obs", 5);
- latitudeIndexMap.put("airep", 5);
- latitudeIndexMap.put("bufrncwf", 3);
- latitudeIndexMap.put("svrwx", 4);
- latitudeIndexMap.put("ldadprofiler", 4);
- latitudeIndexMap.put("bufrquikscat", 4);
- latitudeIndexMap.put("sfcobs", 5);
- latitudeIndexMap.put("bufrua", 6);
- latitudeIndexMap.put("modelsounding", 4);
- latitudeIndexMap.put("fssobs", 5);
- latitudeIndexMap.put("lsr", 4);
- latitudeIndexMap.put("ldadhydro", 5);
- latitudeIndexMap.put("pirep", 5);
- latitudeIndexMap.put("profiler", 4);
- latitudeIndexMap.put("tcs", 4);
- latitudeIndexMap.put("ncpafm", 5);
- latitudeIndexMap.put("ncscd", 4);
- latitudeIndexMap.put("ncuair", 4);
- latitudeIndexMap.put("nctaf", 4);
- }
-
- private static final String LOC_DEF_COL = "locationdefined";
-
- private static final String DATAURI_COL = "datauri";
-
- private static final String LAT_COL = "latitude";
-
- private static final String LON_COL = "longitude";
-
- /**
- * @return a newly created connection to the database
- * @throws SQLException
- */
- private static Connection openConnection() throws SQLException {
- String host = getString(HOST_ARGUMENT, DEFAULT_HOST);
- String port = getString(PORT_ARGUMENT, DEFAULT_PORT);
- String database = getString(DATABASE_ARGUMENT, DEFAULT_DATABASE);
- String user = getString(USER_ARGUMENT, DEFAULT_USER);
- String password = getString(PASSWORD_ARGUMENT, DEFAULT_PASSWORD);
-
- DriverManager.registerDriver(new org.postgresql.Driver());
- String connectionURL = String.format(JDBC_CONNECTION_FORMAT_STRING,
- host, port, database);
- Properties props = new Properties();
- props.setProperty(USER_PROPERTY, user);
- props.setProperty(PASSWORD_PROPERTY, password);
-
- return DriverManager.getConnection(connectionURL, props);
- }
-
- /**
- * Parse command line arguments into the argumentMap
- *
- * @param args
- */
- private static void parseArguments(String[] args) {
- for (int i = 0; i < args.length; ++i) {
- String arg = args[i];
- if (arg.startsWith("-")) {
- // we have a key
- if (args.length > (i + 1)
- && args[i + 1].startsWith("-") == false) {
- argumentMap.put(arg, args[i + 1]);
- ++i;
- } else {
- argumentMap.put(arg, true);
- }
- }
- }
- }
-
- /**
- * Get command line argument value
- *
- * @param key
- * @param defaultValue
- * @return
- */
- private static String getString(String key, String defaultValue) {
- Object val = argumentMap.get(key);
- if (val != null) {
- return val.toString();
- }
- return defaultValue;
- }
-
- /**
- * Get all tables in the schema with the provided column name
- *
- * @param conn
- * @param column
- * @return
- * @throws Exception
- */
- private static Set getTablesWithColumn(Connection conn,
- String column) throws Exception {
- Statement query = conn.createStatement();
- ResultSet result = query
- .executeQuery("select table_name from information_schema.columns where column_name = '" + column +"'");
- Set rval = new HashSet<>();
- while (result.next()) {
- rval.add(result.getString("table_name"));
- }
- return rval;
- }
-
- /**
- * Create an updatable result set with id, latitude, longitude and datauri
- * columns
- *
- * @param conn
- * @param table
- * @return
- * @throws Exception
- */
- private static ResultSet getLocationAndDataUri(Connection conn, String table)
- throws Exception {
- Statement query = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
- ResultSet.CONCUR_UPDATABLE);
- String sql = String.format("select id, %s, %s, %s from %s", LAT_COL,
- LON_COL, DATAURI_COL, table);
- return query.executeQuery(sql);
- }
-
- /**
- * Reformat each dataURI in table
- *
- * @param conn
- * @param table
- * @throws Exception
- */
- private static void updateTable(Connection conn, String table)
- throws Exception {
- Integer latIndex = latitudeIndexMap.get(table);
- if (latIndex == null) {
- throw new Exception(
- "Unable to determine index of latitude/longitude in dataURI");
- }
- /* plus 1 here to account for how String.split() handles leading slash */
- latIndex += 1;
- int lonIndex = latIndex + 1;
- ResultSet res = getLocationAndDataUri(conn, table);
- while (res.next()) {
- String uri = res.getString(DATAURI_COL);
- Float lat = res.getFloat(LAT_COL);
- Float lon = res.getFloat(LON_COL);
- if (uri == null) {
- int id = res.getInt("id");
- throw new Exception("Empty dataURI on row with id " + id);
- }
- String[] parts = uri.split("/");
- if (parts.length < lonIndex + 1) {
- throw new Exception("Expected dataURI with at least "
- + (lonIndex + 1) + " parts, got " + uri);
- }
- String latStr = parts[latIndex];
- String lonStr = parts[lonIndex];
- String newLatStr = String.valueOf(lat);
- String newLonStr = String.valueOf(lon);
- if (!latStr.equals(newLatStr) || !lonStr.equals(newLonStr)) {
- parts[latIndex] = newLatStr;
- parts[lonIndex] = newLonStr;
- StringBuilder sb = new StringBuilder();
- /*
- * skip first element due to String.split() with leading slash
- */
- for (int i = 1; i < parts.length; ++i) {
- sb.append("/").append(parts[i]);
- }
- res.updateString(DATAURI_COL, sb.toString());
- try {
- res.updateRow();
- } catch (SQLException e) {
- if (e.getMessage().contains("duplicate key")) {
- /*
- * this can happen if data has been ingested twice with
- * both the float locations and the double locations.
- */
- res.deleteRow();
- System.out.println("Encountered duplicate row after"
- + " reformatting, deleted row with dataURI "
- + uri + " to resolve conflict.");
- } else {
- throw e;
- }
- }
- }
- }
- System.out.println("Updated table: " + table);
- }
-
- /**
- * @param args
- * @throws Exception
- */
- public static void main(String[] args) throws Exception {
- parseArguments(args);
- Connection conn = openConnection();
- Set locationTables = getTablesWithColumn(conn, LOC_DEF_COL);
- Set dataUriTables = getTablesWithColumn(conn, DATAURI_COL);
- /* only look at tables that both use obs location and have data uris */
- locationTables.retainAll(dataUriTables);
- for (String table : locationTables) {
- try {
- updateTable(conn, table);
- } catch (Exception e) {
- String msg = e.getLocalizedMessage();
- System.err.println("ERROR: Unable to update table " + table
- + ": " + e.getLocalizedMessage());
- if (msg == null || msg.isEmpty()) {
- e.printStackTrace();
- }
-
- }
- }
- }
-
-}
diff --git a/deltaScripts/14.4.1/DR3410/lonLatDoubleToReal.sh b/deltaScripts/14.4.1/DR3410/lonLatDoubleToReal.sh
deleted file mode 100755
index 8604079b91..0000000000
--- a/deltaScripts/14.4.1/DR3410/lonLatDoubleToReal.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-# DR #3410 - this update script will change columns from Double to Real
-
-# operate on tables that were built with classes that embed SurfaceObsLocation or AircraftObsLocation
-# only these tables contain the column 'locationdefined'
-TABLES=$(psql -U awips -d metadata -tc "select table_name from information_schema.columns where column_name = 'locationdefined'")
-COLUMNS=(latitude longitude)
-PSQL="/awips2/psql/bin/psql"
-
-# takes two args: a table name and a column name
-# alters the column in the table to real
-function changeToReal {
- echo "INFO: Changing table $1 column $2 to real."
- ${PSQL} -U awips -d metadata -c "ALTER TABLE $1 ALTER COLUMN $2 TYPE real;"
- if [ $? -ne 0 ]; then
- echo "ERROR: Failed to change the column $2 for table $1"
- return 1
- fi
-}
-
-msg="INFO: All columns changed successfully"
-${PSQL} -U awips -d metadata -c "drop table if exists bufrmos"
-
-for table in ${TABLES[*]}
-do
- echo "INFO: Altering table $table."
- for column in ${COLUMNS[*]}
- do
- changeToReal $table $column || msg="INFO: Operation completed, some columns could not be changed"
- done
-done
-
-echo $msg
-
-echo "Reformatting dataURIs that used double precision locations..."
-
-JAVA="/awips2/java/bin/java"
-
-${JAVA} -jar reformat_obslocation_datauri.jar
-
diff --git a/deltaScripts/14.4.1/DR3410/reformat_obslocation_datauri.jar b/deltaScripts/14.4.1/DR3410/reformat_obslocation_datauri.jar
deleted file mode 100644
index 30d591be79..0000000000
Binary files a/deltaScripts/14.4.1/DR3410/reformat_obslocation_datauri.jar and /dev/null differ