Loading data-discovery/src/main/java/output/Dataset.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -69,7 +69,7 @@ class Dataset this.access = new Access(); this.access = new Access(); this.access.accessFileUrl = null; this.access.accessFileUrl = null; this.access.accessCutoutUrl = null; this.access.accessCutoutUrl = null; this.access.accessMosaicUrl = mergeUrlRoot + "?" + mergeQueryString + publisherDid; this.access.accessMosaicUrl = mergeUrlRoot + "?" + mergeQueryString + "&ID=" + publisherDid; //this.vertices_deg = mergeVertices(datasetList, /*inputs.*/coord); //this.vertices_deg = mergeVertices(datasetList, /*inputs.*/coord); } } Loading data-discovery/src/main/java/output/XmlSerializer.java +26 −18 Original line number Original line Diff line number Diff line Loading @@ -12,6 +12,7 @@ import java.io.BufferedWriter; import java.util.List; import java.util.List; import java.util.ArrayList; import java.util.ArrayList; import vo.parameter.*; final class XmlSerializer final class XmlSerializer { { Loading Loading @@ -255,7 +256,7 @@ final class XmlSerializer public static void serializeToLegacyResults( public static void serializeToLegacyResults( PrintWriter writer, String charEncoding, PrintWriter writer, String charEncoding, AuthPolicy inputAuth, Coord inputCoord, SubsurveyId inputSubsurveyId, AuthPolicy inputAuth, Pos pos, Band band, SubsurveyId inputSubsurveyId, SearchOutputData searchOutputData, SearchOutputData searchOutputData, boolean showDuration, long startTime_msec) boolean showDuration, long startTime_msec) { { Loading @@ -265,7 +266,8 @@ final class XmlSerializer writer.println("<inputs>"); writer.println("<inputs>"); if(inputSubsurveyId != null) writer.println(serialize(inputSubsurveyId)); if(inputSubsurveyId != null) writer.println(serialize(inputSubsurveyId)); if(inputCoord != null) writer.println(serialize(inputCoord)); if(pos != null) writer.println(serialize(pos)); if(band != null) writer.println(serialize(band)); if(inputAuth != null) writer.println(serialize(inputAuth)); if(inputAuth != null) writer.println(serialize(inputAuth)); writer.println("</inputs>"); writer.println("</inputs>"); Loading @@ -280,34 +282,40 @@ final class XmlSerializer writer.println("</results>"); writer.println("</results>"); } } private static String serialize(Coord coord) private static String serialize(Pos pos) { { StringBuilder xml = new StringBuilder(); StringBuilder xml = new StringBuilder(); if(coord.pos != null) if(pos != null) { { xml.append("<SkySystem>"+coord.pos.system+"</SkySystem>"); xml.append("<SkySystem>"+pos.system+"</SkySystem>"); switch(coord.pos.shape) switch(pos.shape) { { case CIRCLE: case CIRCLE: xml.append("<l>" + String.valueOf(coord.pos.circle.lon) + "</l>"); xml.append("<l>" + String.valueOf(pos.circle.lon) + "</l>"); xml.append("<b>" + String.valueOf(coord.pos.circle.lat) + "</b>"); xml.append("<b>" + String.valueOf(pos.circle.lat) + "</b>"); xml.append("<r>" + String.valueOf(coord.pos.circle.radius)+"</r>"); break; xml.append("<r>" + String.valueOf(pos.circle.radius)+"</r>"); break; case RANGE: case RANGE: xml.append("<l>" + String.valueOf((coord.pos.range.lon1 + coord.pos.range.lon2)/2.0) + "</l>"); xml.append("<l>" + String.valueOf((pos.range.lon1 + pos.range.lon2)/2.0) + "</l>"); xml.append("<b>" + String.valueOf((coord.pos.range.lat1 + coord.pos.range.lat2)/2.0) + "</b>"); xml.append("<b>" + String.valueOf((pos.range.lat1 + pos.range.lat2)/2.0) + "</b>"); xml.append("<dl>" + String.valueOf(coord.pos.range.lon2 - coord.pos.range.lon1) + "</dl>"); xml.append("<dl>" + String.valueOf(pos.range.lon2 - pos.range.lon1) + "</dl>"); xml.append("<db>" + String.valueOf(coord.pos.range.lat2 - coord.pos.range.lat1) + "</db>"); xml.append("<db>" + String.valueOf(pos.range.lat2 - pos.range.lat1) + "</db>"); break; break; default: // POLYGON was not used in VLKB-legacy -> let it fail with error default: // POLYGON was not used in VLKB-legacy -> let it fail with error xml.append("<shape> unknown shape: " + coord.pos.shape + " </shape>"); xml.append("<shape> unknown shape: " + pos.shape + " </shape>"); } } } return xml.toString(); } } if(coord.band != null) private static String serialize(Band band) { StringBuilder xml = new StringBuilder(); if(band != null) { { xml.append("<vl>" + String.valueOf(coord.band.getMin()) +"</vl>"); xml.append("<vl>" + String.valueOf(band.getMin()) +"</vl>"); xml.append("<vu>" + String.valueOf(coord.band.getMax()) +"</vu>"); xml.append("<vu>" + String.valueOf(band.getMax()) +"</vu>"); xml.append("<vtype>"+ coord.band.system +"</vtype>"); xml.append("<vtype>"+ band.system +"</vtype>"); } } return xml.toString(); return xml.toString(); Loading data-discovery/src/main/java/search/DbPSearch.java +3 −3 Original line number Original line Diff line number Diff line Loading @@ -163,14 +163,14 @@ public class DbPSearch public FormatResponseFilter.ObsCore[] queryOutputData(String[] pubdidArr, Coord coord) public FormatResponseFilter.ObsCore[] queryOutputData(String[] pubdidArr, Pos pos) { { LOGGER.info(""); LOGGER.info(""); String commaSepPubdids = String.join("\',\'", pubdidArr); String commaSepPubdids = String.join("\',\'", pubdidArr); String inputRegion = toPgSphereSqlTypeString(coord.pos); String inputRegion = toPgSphereSqlTypeString(pos); String dbRegion = toRegionColumnName(coord.pos.system); String dbRegion = toRegionColumnName(pos.system); String theQuery ="SELECT *," String theQuery ="SELECT *," + inputRegion + " <@ " + dbRegion + " AS inputInsideDb, " + inputRegion + " <@ " + dbRegion + " AS inputInsideDb, " Loading data-discovery/src/main/java/webapi/FormatResponseFilter.java +42 −46 Original line number Original line Diff line number Diff line Loading @@ -101,30 +101,26 @@ public class FormatResponseFilter implements Filter { { PrintWriter responseWriter = ((HttpServletResponse)response).getWriter(); PrintWriter responseWriter = ((HttpServletResponse)response).getWriter(); // VLKB: reconstruct cutout/merge queryStrings and overlap code Map<String, String[]> params = request.getParameterMap(); Map<String, String[]> params = request.getParameterMap(); // Coord coord = new Coord(params); SubsurveyId subsurveyId = new SubsurveyId(params); SubsurveyId subsurveyId = new SubsurveyId(params); // FIXME add invalid param excpetions -> params already parsed in servlet Pos pos = Pos.parsePos(params, DEFAULT_SKY_SYSTEM); Band band = Band.parseBand(params, DEFAULT_SPEC_SYSTEM); Coord coord = new Coord(); String queryStringBase = toQueryString(pos, band); coord.pos = Pos.parsePos(params, DEFAULT_SKY_SYSTEM); coord.band = Band.parseBand(params, DEFAULT_SPEC_SYSTEM); coord.time = Time.parseTime(params, DEFAULT_TIME_SYSTEM); coord.pol = Pol.parsePol(params); ObsCore[] obsCoreArr = queryObsCore(pubdidArr, ObsCore[] obsCoreArr = queryObsCore(pubdidArr, coord); // VLKB: calc overlap-code for sky pos); // VLKB: calc overlap-code for sky Dataset[] datasetArr = convert(obsCoreArr, Dataset[] datasetArr = convert(obsCoreArr, coord, // VLKB: calc overlap-code for velocity band, // VLKB: calc overlap-code for velocity settings.serviceUrls.cutoutUrl(), settings.serviceUrls.cutoutUrl(), toQueryString(coord)); queryStringBase); SearchOutputData searchOutputData = SearchOutputData.marshall(datasetArr, SearchOutputData searchOutputData = SearchOutputData.marshall(datasetArr, subsurveyId, subsurveyId, dbSubsurveyArr, dbSubsurveyArr, settings.serviceUrls.mergeUrl(), settings.serviceUrls.mergeUrl(), toQueryString(coord)); queryStringBase); String respFormat; String respFormat; String respFormatReq[] = params.get("RESPONSEFORMAT"); String respFormatReq[] = params.get("RESPONSEFORMAT"); Loading @@ -146,7 +142,7 @@ public class FormatResponseFilter implements Filter response.setContentType("application/xml"); response.setContentType("application/xml"); boolean showDuration = true; boolean showDuration = true; XmlSerializer.serializeToLegacyResults(responseWriter, RESPONSE_ENCODING, XmlSerializer.serializeToLegacyResults(responseWriter, RESPONSE_ENCODING, responseWrapper.auth, coord, subsurveyId, // <inputs/> responseWrapper.auth, pos, band, subsurveyId, // <inputs/> searchOutputData, searchOutputData, showDuration,startTime_msec); showDuration,startTime_msec); } } Loading Loading @@ -241,7 +237,7 @@ public class FormatResponseFilter implements Filter private FormatResponseFilter.ObsCore[] queryObsCore(String[] pubdidArr, Coord coord)//, String fitsRemotePath) private FormatResponseFilter.ObsCore[] queryObsCore(String[] pubdidArr, Pos pos)//, String fitsRemotePath) { { LOGGER.info("trace"); LOGGER.info("trace"); Loading @@ -251,7 +247,7 @@ public class FormatResponseFilter implements Filter dbps = new DbPSearch(settings.dbConn); dbps = new DbPSearch(settings.dbConn); } } return dbps.queryOutputData(pubdidArr, coord); return dbps.queryOutputData(pubdidArr, pos); //FormatResponseFilter.ObsCore[] obsCoreArr = dbps.queryOutputData(pubdidArr, coord); //FormatResponseFilter.ObsCore[] obsCoreArr = dbps.queryOutputData(pubdidArr, coord); //return convert(obsCoreArr, coord, fitsRemotePath); //return convert(obsCoreArr, coord, fitsRemotePath); } } Loading @@ -260,7 +256,7 @@ public class FormatResponseFilter implements Filter private Dataset[] convert(FormatResponseFilter.ObsCore[] obsCoreArr, Coord coord, private Dataset[] convert(FormatResponseFilter.ObsCore[] obsCoreArr, Band band, String cutoutUrlRoot, String cutoutQueryString) String cutoutUrlRoot, String cutoutQueryString) { { List<Dataset> datasetList = new ArrayList<Dataset>(); List<Dataset> datasetList = new ArrayList<Dataset>(); Loading @@ -273,13 +269,13 @@ public class FormatResponseFilter implements Filter dataset.subsurvey_id = obsCore.obs_collection; dataset.subsurvey_id = obsCore.obs_collection; dataset.overlapCodeSky = convertToOverlapCodeSky(obsCore.inputInsideDb, obsCore.dbInsideInput); dataset.overlapCodeSky = convertToOverlapCodeSky(obsCore.inputInsideDb, obsCore.dbInsideInput); dataset.overlapCodeVel = convertToOverlapCodeVel(coord,obsCore.em_valid,obsCore.em_min,obsCore.em_max); dataset.overlapCodeVel = convertToOverlapCodeVel(band,obsCore.em_valid,obsCore.em_min,obsCore.em_max); dataset.overlapCode = convertToOverlapCode(dataset.overlapCodeSky, dataset.overlapCodeVel); dataset.overlapCode = convertToOverlapCode(dataset.overlapCodeSky, dataset.overlapCodeVel); dataset.dataType = obsCore.dataproduct_type; dataset.dataType = obsCore.dataproduct_type; dataset.publisherDid = obsCore.obs_publisher_did; dataset.publisherDid = obsCore.obs_publisher_did; dataset.access.accessFileUrl = obsCore.access_url; dataset.access.accessFileUrl = obsCore.access_url; dataset.access.accessCutoutUrl = cutoutUrlRoot + "?" + cutoutQueryString + dataset.publisherDid; dataset.access.accessCutoutUrl = cutoutUrlRoot + "?" + cutoutQueryString + "&ID=" + dataset.publisherDid; dataset.access.accessMosaicUrl = null; dataset.access.accessMosaicUrl = null; dataset.vertices_deg = convertToVertices(obsCore.vertices_str); dataset.vertices_deg = convertToVertices(obsCore.vertices_str); Loading @@ -300,20 +296,20 @@ public class FormatResponseFilter implements Filter } } private int convertToOverlapCodeVel(Coord coord, boolean v_valid, double v_min, double v_max) private int convertToOverlapCodeVel(Band band, boolean v_valid, double v_min, double v_max) { { if((coord.band != null) && v_valid) if((band != null) && v_valid) { { if(coord.band.system == Band.System.VELO_LSRK) if(band.system == Band.System.VELO_LSRK) { { // FIXME assert coord: vel_min <= vel_max // FIXME assert coord: vel_min <= vel_max // FIXME assert cube: v_min <= v_max // FIXME assert cube: v_min <= v_max boolean dbInInp = (coord.band.getMin() <= v_min) && (v_min <= coord.band.getMax()) boolean dbInInp = (band.getMin() <= v_min) && (v_min <= band.getMax()) && (coord.band.getMin() <= v_max) && (v_max <= coord.band.getMax()); && (band.getMin() <= v_max) && (v_max <= band.getMax()); boolean inpInDb = (v_min <= coord.band.getMin()) && (coord.band.getMin() <= v_max) boolean inpInDb = (v_min <= band.getMin()) && (band.getMin() <= v_max) && (v_min <= coord.band.getMax() ) && (coord.band.getMax() <= v_max); && (v_min <= band.getMax() ) && (band.getMax() <= v_max); return convertToOverlapCodeSky(inpInDb, dbInInp); return convertToOverlapCodeSky(inpInDb, dbInInp); Loading Loading @@ -362,39 +358,39 @@ public class FormatResponseFilter implements Filter // generate cutout/merge queryStrings // generate cutout/merge queryStrings private String toQueryString(Coord coord) private String toQueryString(Pos pos, Band band) { { LOGGER.info("trace"); LOGGER.info("trace"); StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder(); //sb.append("POSSYS=" + coord.pos.system.toString()); if(pos!=null) switch(coord.pos.shape) { switch(pos.shape) { { case CIRCLE: case CIRCLE: sb.append("POS=" + coord.pos.circle.toString()); sb.append("POS=" + pos.circle.toString()); break; break; case RANGE: case RANGE: sb.append("POS=" + coord.pos.range.toString()); sb.append("POS=" + pos.range.toString()); break; break; case POLYGON: case POLYGON: sb.append("POS=" + coord.pos.polygon.toString()); sb.append("POS=" + pos.polygon.toString()); break; break; default: default: LOGGER.info("Coord::toQueryString: unknown shape: " + coord.pos.shape.toString()); LOGGER.info("Coord::toQueryString: unknown shape: " + pos.shape.toString()); } } } sb.append("&POSSYS=" + pos.system.toString()); if(coord.band != null) if(band != null) { { sb.append("&" + coord.band.toString()); sb.append("&" + band.toString()); //sb.append("&BANDSYS=" + coord.band.system.toString() ); } } sb.append("&ID="); // FIXME id-value will be added in FormatResponseFilter return sb.toString(); return sb.toString(); } } Loading Loading
data-discovery/src/main/java/output/Dataset.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -69,7 +69,7 @@ class Dataset this.access = new Access(); this.access = new Access(); this.access.accessFileUrl = null; this.access.accessFileUrl = null; this.access.accessCutoutUrl = null; this.access.accessCutoutUrl = null; this.access.accessMosaicUrl = mergeUrlRoot + "?" + mergeQueryString + publisherDid; this.access.accessMosaicUrl = mergeUrlRoot + "?" + mergeQueryString + "&ID=" + publisherDid; //this.vertices_deg = mergeVertices(datasetList, /*inputs.*/coord); //this.vertices_deg = mergeVertices(datasetList, /*inputs.*/coord); } } Loading
data-discovery/src/main/java/output/XmlSerializer.java +26 −18 Original line number Original line Diff line number Diff line Loading @@ -12,6 +12,7 @@ import java.io.BufferedWriter; import java.util.List; import java.util.List; import java.util.ArrayList; import java.util.ArrayList; import vo.parameter.*; final class XmlSerializer final class XmlSerializer { { Loading Loading @@ -255,7 +256,7 @@ final class XmlSerializer public static void serializeToLegacyResults( public static void serializeToLegacyResults( PrintWriter writer, String charEncoding, PrintWriter writer, String charEncoding, AuthPolicy inputAuth, Coord inputCoord, SubsurveyId inputSubsurveyId, AuthPolicy inputAuth, Pos pos, Band band, SubsurveyId inputSubsurveyId, SearchOutputData searchOutputData, SearchOutputData searchOutputData, boolean showDuration, long startTime_msec) boolean showDuration, long startTime_msec) { { Loading @@ -265,7 +266,8 @@ final class XmlSerializer writer.println("<inputs>"); writer.println("<inputs>"); if(inputSubsurveyId != null) writer.println(serialize(inputSubsurveyId)); if(inputSubsurveyId != null) writer.println(serialize(inputSubsurveyId)); if(inputCoord != null) writer.println(serialize(inputCoord)); if(pos != null) writer.println(serialize(pos)); if(band != null) writer.println(serialize(band)); if(inputAuth != null) writer.println(serialize(inputAuth)); if(inputAuth != null) writer.println(serialize(inputAuth)); writer.println("</inputs>"); writer.println("</inputs>"); Loading @@ -280,34 +282,40 @@ final class XmlSerializer writer.println("</results>"); writer.println("</results>"); } } private static String serialize(Coord coord) private static String serialize(Pos pos) { { StringBuilder xml = new StringBuilder(); StringBuilder xml = new StringBuilder(); if(coord.pos != null) if(pos != null) { { xml.append("<SkySystem>"+coord.pos.system+"</SkySystem>"); xml.append("<SkySystem>"+pos.system+"</SkySystem>"); switch(coord.pos.shape) switch(pos.shape) { { case CIRCLE: case CIRCLE: xml.append("<l>" + String.valueOf(coord.pos.circle.lon) + "</l>"); xml.append("<l>" + String.valueOf(pos.circle.lon) + "</l>"); xml.append("<b>" + String.valueOf(coord.pos.circle.lat) + "</b>"); xml.append("<b>" + String.valueOf(pos.circle.lat) + "</b>"); xml.append("<r>" + String.valueOf(coord.pos.circle.radius)+"</r>"); break; xml.append("<r>" + String.valueOf(pos.circle.radius)+"</r>"); break; case RANGE: case RANGE: xml.append("<l>" + String.valueOf((coord.pos.range.lon1 + coord.pos.range.lon2)/2.0) + "</l>"); xml.append("<l>" + String.valueOf((pos.range.lon1 + pos.range.lon2)/2.0) + "</l>"); xml.append("<b>" + String.valueOf((coord.pos.range.lat1 + coord.pos.range.lat2)/2.0) + "</b>"); xml.append("<b>" + String.valueOf((pos.range.lat1 + pos.range.lat2)/2.0) + "</b>"); xml.append("<dl>" + String.valueOf(coord.pos.range.lon2 - coord.pos.range.lon1) + "</dl>"); xml.append("<dl>" + String.valueOf(pos.range.lon2 - pos.range.lon1) + "</dl>"); xml.append("<db>" + String.valueOf(coord.pos.range.lat2 - coord.pos.range.lat1) + "</db>"); xml.append("<db>" + String.valueOf(pos.range.lat2 - pos.range.lat1) + "</db>"); break; break; default: // POLYGON was not used in VLKB-legacy -> let it fail with error default: // POLYGON was not used in VLKB-legacy -> let it fail with error xml.append("<shape> unknown shape: " + coord.pos.shape + " </shape>"); xml.append("<shape> unknown shape: " + pos.shape + " </shape>"); } } } return xml.toString(); } } if(coord.band != null) private static String serialize(Band band) { StringBuilder xml = new StringBuilder(); if(band != null) { { xml.append("<vl>" + String.valueOf(coord.band.getMin()) +"</vl>"); xml.append("<vl>" + String.valueOf(band.getMin()) +"</vl>"); xml.append("<vu>" + String.valueOf(coord.band.getMax()) +"</vu>"); xml.append("<vu>" + String.valueOf(band.getMax()) +"</vu>"); xml.append("<vtype>"+ coord.band.system +"</vtype>"); xml.append("<vtype>"+ band.system +"</vtype>"); } } return xml.toString(); return xml.toString(); Loading
data-discovery/src/main/java/search/DbPSearch.java +3 −3 Original line number Original line Diff line number Diff line Loading @@ -163,14 +163,14 @@ public class DbPSearch public FormatResponseFilter.ObsCore[] queryOutputData(String[] pubdidArr, Coord coord) public FormatResponseFilter.ObsCore[] queryOutputData(String[] pubdidArr, Pos pos) { { LOGGER.info(""); LOGGER.info(""); String commaSepPubdids = String.join("\',\'", pubdidArr); String commaSepPubdids = String.join("\',\'", pubdidArr); String inputRegion = toPgSphereSqlTypeString(coord.pos); String inputRegion = toPgSphereSqlTypeString(pos); String dbRegion = toRegionColumnName(coord.pos.system); String dbRegion = toRegionColumnName(pos.system); String theQuery ="SELECT *," String theQuery ="SELECT *," + inputRegion + " <@ " + dbRegion + " AS inputInsideDb, " + inputRegion + " <@ " + dbRegion + " AS inputInsideDb, " Loading
data-discovery/src/main/java/webapi/FormatResponseFilter.java +42 −46 Original line number Original line Diff line number Diff line Loading @@ -101,30 +101,26 @@ public class FormatResponseFilter implements Filter { { PrintWriter responseWriter = ((HttpServletResponse)response).getWriter(); PrintWriter responseWriter = ((HttpServletResponse)response).getWriter(); // VLKB: reconstruct cutout/merge queryStrings and overlap code Map<String, String[]> params = request.getParameterMap(); Map<String, String[]> params = request.getParameterMap(); // Coord coord = new Coord(params); SubsurveyId subsurveyId = new SubsurveyId(params); SubsurveyId subsurveyId = new SubsurveyId(params); // FIXME add invalid param excpetions -> params already parsed in servlet Pos pos = Pos.parsePos(params, DEFAULT_SKY_SYSTEM); Band band = Band.parseBand(params, DEFAULT_SPEC_SYSTEM); Coord coord = new Coord(); String queryStringBase = toQueryString(pos, band); coord.pos = Pos.parsePos(params, DEFAULT_SKY_SYSTEM); coord.band = Band.parseBand(params, DEFAULT_SPEC_SYSTEM); coord.time = Time.parseTime(params, DEFAULT_TIME_SYSTEM); coord.pol = Pol.parsePol(params); ObsCore[] obsCoreArr = queryObsCore(pubdidArr, ObsCore[] obsCoreArr = queryObsCore(pubdidArr, coord); // VLKB: calc overlap-code for sky pos); // VLKB: calc overlap-code for sky Dataset[] datasetArr = convert(obsCoreArr, Dataset[] datasetArr = convert(obsCoreArr, coord, // VLKB: calc overlap-code for velocity band, // VLKB: calc overlap-code for velocity settings.serviceUrls.cutoutUrl(), settings.serviceUrls.cutoutUrl(), toQueryString(coord)); queryStringBase); SearchOutputData searchOutputData = SearchOutputData.marshall(datasetArr, SearchOutputData searchOutputData = SearchOutputData.marshall(datasetArr, subsurveyId, subsurveyId, dbSubsurveyArr, dbSubsurveyArr, settings.serviceUrls.mergeUrl(), settings.serviceUrls.mergeUrl(), toQueryString(coord)); queryStringBase); String respFormat; String respFormat; String respFormatReq[] = params.get("RESPONSEFORMAT"); String respFormatReq[] = params.get("RESPONSEFORMAT"); Loading @@ -146,7 +142,7 @@ public class FormatResponseFilter implements Filter response.setContentType("application/xml"); response.setContentType("application/xml"); boolean showDuration = true; boolean showDuration = true; XmlSerializer.serializeToLegacyResults(responseWriter, RESPONSE_ENCODING, XmlSerializer.serializeToLegacyResults(responseWriter, RESPONSE_ENCODING, responseWrapper.auth, coord, subsurveyId, // <inputs/> responseWrapper.auth, pos, band, subsurveyId, // <inputs/> searchOutputData, searchOutputData, showDuration,startTime_msec); showDuration,startTime_msec); } } Loading Loading @@ -241,7 +237,7 @@ public class FormatResponseFilter implements Filter private FormatResponseFilter.ObsCore[] queryObsCore(String[] pubdidArr, Coord coord)//, String fitsRemotePath) private FormatResponseFilter.ObsCore[] queryObsCore(String[] pubdidArr, Pos pos)//, String fitsRemotePath) { { LOGGER.info("trace"); LOGGER.info("trace"); Loading @@ -251,7 +247,7 @@ public class FormatResponseFilter implements Filter dbps = new DbPSearch(settings.dbConn); dbps = new DbPSearch(settings.dbConn); } } return dbps.queryOutputData(pubdidArr, coord); return dbps.queryOutputData(pubdidArr, pos); //FormatResponseFilter.ObsCore[] obsCoreArr = dbps.queryOutputData(pubdidArr, coord); //FormatResponseFilter.ObsCore[] obsCoreArr = dbps.queryOutputData(pubdidArr, coord); //return convert(obsCoreArr, coord, fitsRemotePath); //return convert(obsCoreArr, coord, fitsRemotePath); } } Loading @@ -260,7 +256,7 @@ public class FormatResponseFilter implements Filter private Dataset[] convert(FormatResponseFilter.ObsCore[] obsCoreArr, Coord coord, private Dataset[] convert(FormatResponseFilter.ObsCore[] obsCoreArr, Band band, String cutoutUrlRoot, String cutoutQueryString) String cutoutUrlRoot, String cutoutQueryString) { { List<Dataset> datasetList = new ArrayList<Dataset>(); List<Dataset> datasetList = new ArrayList<Dataset>(); Loading @@ -273,13 +269,13 @@ public class FormatResponseFilter implements Filter dataset.subsurvey_id = obsCore.obs_collection; dataset.subsurvey_id = obsCore.obs_collection; dataset.overlapCodeSky = convertToOverlapCodeSky(obsCore.inputInsideDb, obsCore.dbInsideInput); dataset.overlapCodeSky = convertToOverlapCodeSky(obsCore.inputInsideDb, obsCore.dbInsideInput); dataset.overlapCodeVel = convertToOverlapCodeVel(coord,obsCore.em_valid,obsCore.em_min,obsCore.em_max); dataset.overlapCodeVel = convertToOverlapCodeVel(band,obsCore.em_valid,obsCore.em_min,obsCore.em_max); dataset.overlapCode = convertToOverlapCode(dataset.overlapCodeSky, dataset.overlapCodeVel); dataset.overlapCode = convertToOverlapCode(dataset.overlapCodeSky, dataset.overlapCodeVel); dataset.dataType = obsCore.dataproduct_type; dataset.dataType = obsCore.dataproduct_type; dataset.publisherDid = obsCore.obs_publisher_did; dataset.publisherDid = obsCore.obs_publisher_did; dataset.access.accessFileUrl = obsCore.access_url; dataset.access.accessFileUrl = obsCore.access_url; dataset.access.accessCutoutUrl = cutoutUrlRoot + "?" + cutoutQueryString + dataset.publisherDid; dataset.access.accessCutoutUrl = cutoutUrlRoot + "?" + cutoutQueryString + "&ID=" + dataset.publisherDid; dataset.access.accessMosaicUrl = null; dataset.access.accessMosaicUrl = null; dataset.vertices_deg = convertToVertices(obsCore.vertices_str); dataset.vertices_deg = convertToVertices(obsCore.vertices_str); Loading @@ -300,20 +296,20 @@ public class FormatResponseFilter implements Filter } } private int convertToOverlapCodeVel(Coord coord, boolean v_valid, double v_min, double v_max) private int convertToOverlapCodeVel(Band band, boolean v_valid, double v_min, double v_max) { { if((coord.band != null) && v_valid) if((band != null) && v_valid) { { if(coord.band.system == Band.System.VELO_LSRK) if(band.system == Band.System.VELO_LSRK) { { // FIXME assert coord: vel_min <= vel_max // FIXME assert coord: vel_min <= vel_max // FIXME assert cube: v_min <= v_max // FIXME assert cube: v_min <= v_max boolean dbInInp = (coord.band.getMin() <= v_min) && (v_min <= coord.band.getMax()) boolean dbInInp = (band.getMin() <= v_min) && (v_min <= band.getMax()) && (coord.band.getMin() <= v_max) && (v_max <= coord.band.getMax()); && (band.getMin() <= v_max) && (v_max <= band.getMax()); boolean inpInDb = (v_min <= coord.band.getMin()) && (coord.band.getMin() <= v_max) boolean inpInDb = (v_min <= band.getMin()) && (band.getMin() <= v_max) && (v_min <= coord.band.getMax() ) && (coord.band.getMax() <= v_max); && (v_min <= band.getMax() ) && (band.getMax() <= v_max); return convertToOverlapCodeSky(inpInDb, dbInInp); return convertToOverlapCodeSky(inpInDb, dbInInp); Loading Loading @@ -362,39 +358,39 @@ public class FormatResponseFilter implements Filter // generate cutout/merge queryStrings // generate cutout/merge queryStrings private String toQueryString(Coord coord) private String toQueryString(Pos pos, Band band) { { LOGGER.info("trace"); LOGGER.info("trace"); StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder(); //sb.append("POSSYS=" + coord.pos.system.toString()); if(pos!=null) switch(coord.pos.shape) { switch(pos.shape) { { case CIRCLE: case CIRCLE: sb.append("POS=" + coord.pos.circle.toString()); sb.append("POS=" + pos.circle.toString()); break; break; case RANGE: case RANGE: sb.append("POS=" + coord.pos.range.toString()); sb.append("POS=" + pos.range.toString()); break; break; case POLYGON: case POLYGON: sb.append("POS=" + coord.pos.polygon.toString()); sb.append("POS=" + pos.polygon.toString()); break; break; default: default: LOGGER.info("Coord::toQueryString: unknown shape: " + coord.pos.shape.toString()); LOGGER.info("Coord::toQueryString: unknown shape: " + pos.shape.toString()); } } } sb.append("&POSSYS=" + pos.system.toString()); if(coord.band != null) if(band != null) { { sb.append("&" + coord.band.toString()); sb.append("&" + band.toString()); //sb.append("&BANDSYS=" + coord.band.system.toString() ); } } sb.append("&ID="); // FIXME id-value will be added in FormatResponseFilter return sb.toString(); return sb.toString(); } } Loading