Skip to content

Commit

Permalink
v1.76
Browse files Browse the repository at this point in the history
  • Loading branch information
Bob Simons committed May 18, 2017
1 parent 578a197 commit cf41ac0
Show file tree
Hide file tree
Showing 159 changed files with 21,879 additions and 7,827 deletions.
2 changes: 1 addition & 1 deletion WEB-INF/ArchiveADataset.bat
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
rem This is the Windows batch file to run ArchiveADataset.
rem See http://coastwatch.pfeg.noaa.gov/erddap/download/setupDatasetsXml.html#Tools

java -cp ./classes;../../../lib/servlet-api.jar;lib/activation.jar;lib/axis.jar;lib/cassandra-driver-core.jar;lib/netty-all.jar;lib/guava.jar;lib/metrics-core.jar;lib/lz4.jar;lib/snappy-java.jar;lib/commons-compress.jar;lib/commons-discovery.jar;lib/itext-1.3.1.jar;lib/jaxrpc.jar;lib/joda-time.jar;lib/lucene-core.jar;lib/mail.jar;lib/netcdfAll-latest.jar;lib/slf4j.jar;lib/postgresql.jdbc.jar;lib/saaj.jar;lib/wsdl4j.jar;lib/aws-java-sdk.jar;lib/commons-codec.jar;lib/commons-logging.jar;lib/fluent-hc.jar;lib/httpclient.jar;lib/httpclient-cache.jar;lib/httpcore.jar;lib/httpmime.jar;lib/jna.jar;lib/jna-platform.jar;lib/jackson-annotations.jar;lib/jackson-core.jar;lib/jackson-databind.jar -Xms1500M -Xmx1500M gov.noaa.pfel.erddap.ArchiveADataset %*
java -cp ./classes;../../../lib/servlet-api.jar;lib/activation.jar;lib/axis.jar;lib/cassandra-driver-core.jar;lib/netty-all.jar;lib/guava.jar;lib/metrics-core.jar;lib/lz4.jar;lib/snappy-java.jar;lib/commons-compress.jar;lib/commons-discovery.jar;lib/itext-1.3.1.jar;lib/jaxrpc.jar;lib/lucene-core.jar;lib/mail.jar;lib/netcdfAll-latest.jar;lib/slf4j.jar;lib/postgresql.jdbc.jar;lib/saaj.jar;lib/wsdl4j.jar;lib/aws-java-sdk.jar;lib/commons-codec.jar;lib/commons-logging.jar;lib/fluent-hc.jar;lib/httpclient.jar;lib/httpclient-cache.jar;lib/httpcore.jar;lib/httpmime.jar;lib/jna.jar;lib/jna-platform.jar;lib/jackson-annotations.jar;lib/jackson-core.jar;lib/jackson-databind.jar -Xms1500M -Xmx1500M gov.noaa.pfel.erddap.ArchiveADataset %*
2 changes: 1 addition & 1 deletion WEB-INF/ArchiveADataset.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
cp1="./classes:../../../lib/servlet-api.jar:lib/activation.jar:lib/axis.jar"
cp2=":lib/cassandra-driver-core.jar:lib/netty-all.jar:lib/guava.jar:lib/metrics-core.jar:lib/lz4.jar:lib/snappy-java.jar"
cp3=":lib/commons-compress.jar:lib/commons-discovery.jar:lib/itext-1.3.1.jar"
cp4=":lib/jaxrpc.jar:lib/joda-time.jar:lib/lucene-core.jar"
cp4=":lib/jaxrpc.jar:lib/lucene-core.jar"
cp5=":lib/mail.jar:lib/netcdfAll-latest.jar:lib/slf4j.jar:lib/postgresql.jdbc.jar"
cp6=":lib/saaj.jar:lib/wsdl4j.jar"
cp7=":lib/aws-java-sdk.jar:lib/commons-codec.jar:lib/commons-logging.jar"
Expand Down
2 changes: 1 addition & 1 deletion WEB-INF/DasDds.bat
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
rem This is the Windows batch file to run DasDds.
rem See http://coastwatch.pfeg.noaa.gov/erddap/download/setupDatasetsXml.html#Tools

java -cp ./classes;../../../lib/servlet-api.jar;lib/activation.jar;lib/axis.jar;lib/cassandra-driver-core.jar;lib/netty-all.jar;lib/guava.jar;lib/metrics-core.jar;lib/lz4.jar;lib/snappy-java.jar;lib/commons-compress.jar;lib/commons-discovery.jar;lib/itext-1.3.1.jar;lib/jaxrpc.jar;lib/joda-time.jar;lib/lucene-core.jar;lib/mail.jar;lib/netcdfAll-latest.jar;lib/slf4j.jar;lib/postgresql.jdbc.jar;lib/saaj.jar;lib/wsdl4j.jar;lib/aws-java-sdk.jar;lib/commons-codec.jar;lib/commons-logging.jar;lib/fluent-hc.jar;lib/httpclient.jar;lib/httpclient-cache.jar;lib/httpcore.jar;lib/httpmime.jar;lib/jna.jar;lib/jna-platform.jar;lib/jackson-annotations.jar;lib/jackson-core.jar;lib/jackson-databind.jar -Xms1000M -Xmx1000M gov.noaa.pfel.erddap.DasDds %*
java -cp ./classes;../../../lib/servlet-api.jar;lib/activation.jar;lib/axis.jar;lib/cassandra-driver-core.jar;lib/netty-all.jar;lib/guava.jar;lib/metrics-core.jar;lib/lz4.jar;lib/snappy-java.jar;lib/commons-compress.jar;lib/commons-discovery.jar;lib/itext-1.3.1.jar;lib/jaxrpc.jar;lib/lucene-core.jar;lib/mail.jar;lib/netcdfAll-latest.jar;lib/slf4j.jar;lib/postgresql.jdbc.jar;lib/saaj.jar;lib/wsdl4j.jar;lib/aws-java-sdk.jar;lib/commons-codec.jar;lib/commons-logging.jar;lib/fluent-hc.jar;lib/httpclient.jar;lib/httpclient-cache.jar;lib/httpcore.jar;lib/httpmime.jar;lib/jna.jar;lib/jna-platform.jar;lib/jackson-annotations.jar;lib/jackson-core.jar;lib/jackson-databind.jar -Xms1000M -Xmx1000M gov.noaa.pfel.erddap.DasDds %*
2 changes: 1 addition & 1 deletion WEB-INF/DasDds.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
cp1="./classes:../../../lib/servlet-api.jar:lib/activation.jar:lib/axis.jar"
cp2=":lib/cassandra-driver-core.jar:lib/netty-all.jar:lib/guava.jar:lib/metrics-core.jar:lib/lz4.jar:lib/snappy-java.jar"
cp3=":lib/commons-compress.jar:lib/commons-discovery.jar:lib/itext-1.3.1.jar"
cp4=":lib/jaxrpc.jar:lib/joda-time.jar:lib/lucene-core.jar"
cp4=":lib/jaxrpc.jar:lib/lucene-core.jar"
cp5=":lib/mail.jar:lib/netcdfAll-latest.jar:lib/slf4j.jar:lib/postgresql.jdbc.jar"
cp6=":lib/saaj.jar:lib/wsdl4j.jar"
cp7=":lib/aws-java-sdk.jar:lib/commons-codec.jar:lib/commons-logging.jar"
Expand Down
2 changes: 1 addition & 1 deletion WEB-INF/FileVisitorDNLS.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
cp1="./classes:../../../lib/servlet-api.jar:lib/activation.jar:lib/axis.jar"
cp2=":lib/cassandra-driver-core.jar:lib/netty-all.jar:lib/guava.jar:lib/metrics-core.jar:lib/lz4.jar:lib/snappy-java.jar"
cp3=":lib/commons-compress.jar:lib/commons-discovery.jar:lib/itext-1.3.1.jar"
cp4=":lib/jaxrpc.jar:lib/joda-time.jar:lib/lucene-core.jar"
cp4=":lib/jaxrpc.jar:lib/lucene-core.jar"
cp5=":lib/mail.jar:lib/netcdfAll-latest.jar:lib/slf4j.jar:lib/postgresql.jdbc.jar"
cp6=":lib/saaj.jar:lib/wsdl4j.jar"
cp7=":lib/aws-java-sdk.jar:lib/commons-codec.jar:lib/commons-logging.jar"
Expand Down
2 changes: 1 addition & 1 deletion WEB-INF/GenerateDatasetsXml.bat
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
rem This is the Windows batch file to run GenerateDatasetsXml.
rem See http://coastwatch.pfeg.noaa.gov/erddap/download/setupDatasetsXml.html#Tools

java -cp ./classes;../../../lib/servlet-api.jar;lib/activation.jar;lib/axis.jar;lib/cassandra-driver-core.jar;lib/netty-all.jar;lib/guava.jar;lib/metrics-core.jar;lib/lz4.jar;lib/snappy-java.jar;lib/commons-compress.jar;lib/commons-discovery.jar;lib/itext-1.3.1.jar;lib/jaxrpc.jar;lib/joda-time.jar;lib/lucene-core.jar;lib/mail.jar;lib/netcdfAll-latest.jar;lib/slf4j.jar;lib/postgresql.jdbc.jar;lib/saaj.jar;lib/wsdl4j.jar;lib/aws-java-sdk.jar;lib/commons-codec.jar;lib/commons-logging.jar;lib/fluent-hc.jar;lib/httpclient.jar;lib/httpclient-cache.jar;lib/httpcore.jar;lib/httpmime.jar;lib/jna.jar;lib/jna-platform.jar;lib/jackson-annotations.jar;lib/jackson-core.jar;lib/jackson-databind.jar -Xms1000M -Xmx1000M gov.noaa.pfel.erddap.GenerateDatasetsXml %*
java -cp ./classes;../../../lib/servlet-api.jar;lib/activation.jar;lib/axis.jar;lib/cassandra-driver-core.jar;lib/netty-all.jar;lib/guava.jar;lib/metrics-core.jar;lib/lz4.jar;lib/snappy-java.jar;lib/commons-compress.jar;lib/commons-discovery.jar;lib/itext-1.3.1.jar;lib/jaxrpc.jar;lib/lucene-core.jar;lib/mail.jar;lib/netcdfAll-latest.jar;lib/slf4j.jar;lib/postgresql.jdbc.jar;lib/saaj.jar;lib/wsdl4j.jar;lib/aws-java-sdk.jar;lib/commons-codec.jar;lib/commons-logging.jar;lib/fluent-hc.jar;lib/httpclient.jar;lib/httpclient-cache.jar;lib/httpcore.jar;lib/httpmime.jar;lib/jna.jar;lib/jna-platform.jar;lib/jackson-annotations.jar;lib/jackson-core.jar;lib/jackson-databind.jar -Xms1000M -Xmx1000M gov.noaa.pfel.erddap.GenerateDatasetsXml %*
2 changes: 1 addition & 1 deletion WEB-INF/GenerateDatasetsXml.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
cp1="./classes:../../../lib/servlet-api.jar:lib/activation.jar:lib/axis.jar"
cp2=":lib/cassandra-driver-core.jar:lib/netty-all.jar:lib/guava.jar:lib/metrics-core.jar:lib/lz4.jar:lib/snappy-java.jar"
cp3=":lib/commons-compress.jar:lib/commons-discovery.jar:lib/itext-1.3.1.jar"
cp4=":lib/jaxrpc.jar:lib/joda-time.jar:lib/lucene-core.jar"
cp4=":lib/jaxrpc.jar:lib/lucene-core.jar"
cp5=":lib/mail.jar:lib/netcdfAll-latest.jar:lib/slf4j.jar:lib/postgresql.jdbc.jar"
cp6=":lib/saaj.jar:lib/wsdl4j.jar"
cp7=":lib/aws-java-sdk.jar:lib/commons-codec.jar:lib/commons-logging.jar"
Expand Down
103 changes: 84 additions & 19 deletions WEB-INF/classes/com/cohort/array/Attributes.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.regex.Pattern;

/**
* This class holds a list of attributes (name=value, where name is a String
Expand All @@ -28,7 +29,7 @@ public class Attributes {
public static boolean verbose = false;

/** The backing data structure. It is thread-safe. */
private ConcurrentHashMap hashmap = new ConcurrentHashMap(16, 0.75f, 4);
private ConcurrentHashMap<String,PrimitiveArray> hashmap = new ConcurrentHashMap(16, 0.75f, 4);

/**
* This constructs a new, empty Attributes object.
Expand Down Expand Up @@ -100,7 +101,7 @@ public Object clone() {
* @return the attribute's value (a PrimitiveArray).
*/
public PrimitiveArray get(String name) {
return (PrimitiveArray)hashmap.get(name);
return hashmap.get(name);
}

/**
Expand Down Expand Up @@ -314,7 +315,7 @@ public int getRawInt(String name) {
* @return the previous value stored for attributeName, or null if none
*/
public PrimitiveArray remove(String name) {
return (PrimitiveArray)hashmap.remove(name);
return hashmap.remove(name);
}

/**
Expand All @@ -330,8 +331,8 @@ public PrimitiveArray remove(String name) {
public PrimitiveArray set(String name, PrimitiveArray value) {
if (value == null || value.size() == 0 ||
(value.size() == 1 && value instanceof StringArray && value.getString(0).trim().length() == 0))
return (PrimitiveArray)hashmap.remove(name);
return (PrimitiveArray)hashmap.put(String2.canonical(name), value);
return hashmap.remove(name);
return hashmap.put(String2.canonical(name), value);
}

/**
Expand Down Expand Up @@ -647,21 +648,18 @@ public String toNcString(String prefix, String suffix) {
String names[] = getNames();
for (int index = 0; index < names.length; index++) {
sb.append(prefix + names[index] + " = ");
Object o = hashmap.get(names[index]);
PrimitiveArray pa = hashmap.get(names[index]);
String connect = "";
if (o instanceof StringArray) {
StringArray sa = (StringArray)o;
int n = sa.size();
boolean isCharArray = pa instanceof CharArray;
if (pa instanceof StringArray || isCharArray) {
int n = pa.size();
for (int i = 0; i < n; i++) {
sb.append(connect);
connect = ", ";
//we don't need/want full String2.toJson encoding, just encode \ and ".
String s = String2.replaceAll(sa.get(i), "\\", "\\\\"); // \ becomes \\
s = String2.replaceAll(s, "\"", "\\\""); // " becomes \"
sb.append("\"" + s + "\"");
sb.append(String2.toJson(pa.getString(i), 65536, isCharArray)); //encodeNewline?
}
} else if (o instanceof FloatArray) {
FloatArray fa = (FloatArray)o;
} else if (pa instanceof FloatArray) {
FloatArray fa = (FloatArray)pa;
int n = fa.size();
for (int i = 0; i < n; i++) {
sb.append(connect);
Expand All @@ -670,7 +668,7 @@ public String toNcString(String prefix, String suffix) {
sb.append("f");
}
} else {
sb.append(o.toString());
sb.append(pa.toString());
}
sb.append(suffix + "\n");
}
Expand Down Expand Up @@ -708,6 +706,8 @@ public boolean equals(Object o) {
* This doesn't throw an Exception if a difference is found.
*
* @param o an object, presumably an Attributes
* @return a string indicating the differents of this Attributes and o,
* or "" if no difference.
*/
public String testEquals(Object o) {
if (o == null)
Expand Down Expand Up @@ -806,6 +806,20 @@ public void trimAndMakeValidUnicode() {

}

/**
* This uses StringArray.fromNccsv() on all StringArray values
* to de-JSON and convert "" to ".
*/
public void fromNccsvStrings() {
Iterator it = hashmap.keySet().iterator();
while (it.hasNext()) {
String name = (String)it.next();
PrimitiveArray pa = get(name);
if (pa.elementClass() == String.class)
((StringArray)pa).fromNccsv();
}
}

/**
* This makes a set of addAttributes which are needed to change a into b.
* If an attribute in 'a' needs to be set to null, this sets it to the String
Expand Down Expand Up @@ -843,6 +857,56 @@ else if (!aPA.equals(bPA))
return addAtts;
}

/**
* This writes the attributes for a variable (or *GLOBAL*) to an NCCSV String.
* This doesn't write *SCALAR* or dataType attributes.
* This doesn't change any of the attributes.
*
* @param varName
* @return a string with all of the attributes for a variable (or *GLOBAL*)
* formatted for NCCSV.
*/
public String toNccsvString(String varName) {
String nccsvVarName = String2.toNccsvDataString(varName);
StringBuilder sb = new StringBuilder();
String tName;

//special case: *GLOBAL* Conventions
if (varName.equals(String2.NCCSV_GLOBAL)) {
tName = "Conventions";
String val = getString(tName);
if (String2.isSomething(val)) {
if (val.indexOf("NCCSV") < 0)
val += ", " + String2.NCCSV_VERSION;
} else {
val = "COARDS, CF-1.6, ACDD-1.3, " + String2.NCCSV_VERSION;
}
sb.append(
String2.toNccsvDataString(varName) + "," +
String2.toNccsvDataString(tName) + "," +
String2.toNccsvAttString(val) + "\n");
}

//each of the attributes
String names[] = getNames();
for (int ni = 0; ni < names.length; ni++) {
tName = names[ni];
if (varName.equals(String2.NCCSV_GLOBAL) && tName.equals("Conventions"))
continue;
if (!String2.isSomething(tName) ||
tName.equals("_NCProperties"))
continue;
PrimitiveArray tValue = get(tName);
if (tValue == null || tValue.size() == 0 || tValue.toString().length() == 0)
continue; //do nothing
sb.append(
String2.toNccsvDataString(nccsvVarName) + "," +
String2.toNccsvDataString(tName) + "," +
tValue.toNccsvAttString() + "\n");
}
return sb.toString();
}

/**
* This tests the methods in this class.
*
Expand Down Expand Up @@ -880,7 +944,7 @@ public static void test() throws Exception {
Test.ensureEqual(atts.remove("zz"), new IntArray(new int[]{2}), "");
Test.ensureEqual(atts.size(), 9, "");

////empty string same as null; attribute removed
//empty string same as null; attribute removed
atts.set("zz", "a");
Test.ensureEqual(atts.size(), 10, "");
atts.set("zz", "");
Expand Down Expand Up @@ -926,7 +990,7 @@ public static void test() throws Exception {
//toString
Test.ensureEqual(atts.toString(),
" byte=1\n" +
" char=97\n" +
" char=a\n" +
" double=3.141592653589793\n" +
" float=2.5\n" +
" int=1000000\n" +
Expand Down Expand Up @@ -985,7 +1049,7 @@ public static void test() throws Exception {
atts3.set(atts4);
Test.ensureEqual(atts3.toString(),
" byte=1\n" +
" char=100\n" +
" char=d\n" +
" double=3.141592653589793\n" +
" float=2.5\n" +
" int=1000000\n" +
Expand Down Expand Up @@ -1055,6 +1119,7 @@ public static void test() throws Exception {
Test.ensureEqual(a, b, "");
Test.ensureEqual(a.toString(), b.toString(), "");


String2.log("*** test Attributes finished successfully.");
}

Expand Down
23 changes: 19 additions & 4 deletions WEB-INF/classes/com/cohort/array/ByteArray.java
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ public ByteArray(String fileName) throws Exception {
*
* @param pa the values of pa are interpreted as boolean, which are then
* converted to bytes.
* @return a ByteArray
*/
public static ByteArray toBooleanToByte(PrimitiveArray pa) {
int size = pa.size();
Expand Down Expand Up @@ -763,7 +764,7 @@ public double getDouble(int index) {
* with String2.parseDouble and so may return Double.NaN.
*/
public double getUnsignedDouble(int index) {
//or see http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/reference/faq.html#Unsigned
//or see https://www.unidata.ucar.edu/software/thredds/current/netcdf-java/reference/faq.html#Unsigned
return Byte.toUnsignedInt(get(index));
}

Expand Down Expand Up @@ -952,6 +953,18 @@ public String toString() {
return String2.toCSSVString(toArray()); //toArray() get just 'size' elements
}

/**
* This converts the elements into an NCCSV attribute String, e.g.,: -128b, 127b
*
* @return an NCCSV attribute String
*/
public String toNccsvAttString() {
StringBuilder sb = new StringBuilder(size * 6);
for (int i = 0; i < size; i++)
sb.append((i == 0? "" : ",") + array[i] + "b");
return sb.toString();
}

/**
* This sorts the elements in ascending order.
* To get the elements in reverse order, just read from the end of the list
Expand Down Expand Up @@ -1059,11 +1072,11 @@ public void readDis(DataInputStream dis, int n) throws Exception {
* @throws Exception if trouble
*/
public void externalizeForDODS(DataOutputStream dos) throws Exception {
super.externalizeForDODS(dos);
super.externalizeForDODS(dos); //writes as bytes

//pad to 4 bytes boundary at end
int tSize = size;
while (tSize++ % 4 != 0)
while (tSize++ % 4 != 0)
dos.writeByte(0);
}

Expand Down Expand Up @@ -1358,7 +1371,8 @@ public int firstTie() {
/** This returns the minimum value that can be held by this class. */
public String minValue() {return "" + Byte.MIN_VALUE;}

/** This returns the maximum value that can be held by this class. */
/** This returns the maximum value that can be held by this class
(not including the cohort missing value). */
public String maxValue() {return "" + (Byte.MAX_VALUE - 1);}

/**
Expand Down Expand Up @@ -1764,6 +1778,7 @@ public static void test() throws Throwable {
Test.ensureEqual(anArray.getString(0), anArray.minValue(), "");
Test.ensureEqual(anArray.getString(0), "-128", "");
Test.ensureEqual(anArray.getString(1), anArray.maxValue(), "");

}

}
Expand Down
Loading

0 comments on commit cf41ac0

Please sign in to comment.