GetLatLonCokey.java [tools/GetLatLonCokey/src/getlatloncokey] Revision: 2ab4f110edef59d017f8900e3715acdc24b2ea32  Date: Wed Oct 30 15:11:23 MDT 2019
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package getlatloncokey;

import csip.ServiceException;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Arrays;
import org.codehaus.jettison.json.JSONException;
import soils.Component;
import soils.MapUnit;
import soils.db.tables.TableComponent;
import soils.db.tables.TableMapUnit;

/**
 *
 * @author <a href="mailto:shaun.case@colostate.edu">Shaun Case</a>
 */
public class GetLatLonCokey {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        ArrayList<String> fields = new ArrayList<>();

        MapUnit.setDefaultUsedColumns(new ArrayList<>(Arrays.asList(TableMapUnit.MUKEY, TableMapUnit.MUACRES)));
        Component.setDefaultUsedColumns(new ArrayList<>(Arrays.asList(TableComponent.COKEY, TableComponent.COMPPCT_R_NAME)));

        FileOutputStream outFile = new FileOutputStream("latlon_cokey.csv");
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outFile));

        //  Write header
        if (args.length >= 1) {
            String tFields = args[0].trim();
            String[] fieldList = tFields.split(",");

            for (String field : fieldList) {
                fields.add(field.trim().toLowerCase());
            }
        } else {
            fields.add("latitude");
            fields.add("longitude");
            fields.add("cokey");
        }

        writer.write(fields + System.lineSeparator());
        
        File folder = new File(new java.io.File(".").getCanonicalPath());
        File[] listOfFiles = folder.listFiles();

        for (File file : listOfFiles) {
            if (file.isFile()) {
                if (file.getName().contains(".zip")) {
                    System.out.println(file.getName());

                    CliWindSoilFile cwsFile;
                    try {
                        cwsFile = new CliWindSoilFile(file, fields);
                        cwsFile.writeCSV(writer);
                    } catch (JSONException | ServiceException ex) {
                        System.err.println(ex);
                    }
                }

            }
        }

        writer.close();
    }
}