public SolrInputDocument getSolrDocFromTileSummary()

in src/main/java/org/apache/sdap/ningester/writer/SolrStore.java [73:115]


    public SolrInputDocument getSolrDocFromTileSummary(TileSummary summary) {

        TileSummary.BBox bbox = summary.getBbox();
        TileSummary.DataStats stats = summary.getStats();

        Calendar startCal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
        startCal.setTime(new Date(stats.getMinTime() * 1000));
        Calendar endCal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
        endCal.setTime(new Date(stats.getMaxTime() * 1000));

        String minTime = iso.format(startCal.getTime());
        String maxTime = iso.format(endCal.getTime());

        String geo = determineGeo(summary);

        String granuleFileName = Paths.get(summary.getGranule()).getFileName().toString();

        SolrInputDocument inputDocument = new SolrInputDocument();
        inputDocument.addField("table_s", TABLE_NAME);
        inputDocument.addField("geo", geo);
        inputDocument.addField("id", summary.getTileId());
        inputDocument.addField("solr_id_s", summary.getDatasetName() + "!" + summary.getTileId());
        inputDocument.addField("dataset_id_s", summary.getDatasetUuid());
        inputDocument.addField("sectionSpec_s", summary.getSectionSpec());
        inputDocument.addField("dataset_s", summary.getDatasetName());
        inputDocument.addField("granule_s", granuleFileName);
        inputDocument.addField("tile_var_name_s", summary.getDataVarName());
        inputDocument.addField("tile_min_lon", bbox.getLonMin());
        inputDocument.addField("tile_max_lon", bbox.getLonMax());
        inputDocument.addField("tile_min_lat", bbox.getLatMin());
        inputDocument.addField("tile_max_lat", bbox.getLatMax());
        inputDocument.addField("tile_min_time_dt", minTime);
        inputDocument.addField("tile_max_time_dt", maxTime);
        inputDocument.addField("tile_min_val_d", stats.getMin());
        inputDocument.addField("tile_max_val_d", stats.getMax());
        inputDocument.addField("tile_avg_val_d", stats.getMean());
        inputDocument.addField("tile_count_i", Long.valueOf(stats.getCount()).intValue());

        summary.getGlobalAttributesList().forEach(attribute ->
                inputDocument.addField(attribute.getName(), attribute.getValuesCount() == 1 ? attribute.getValues(0) : attribute.getValuesList())
        );
        return inputDocument;
    }