FallowRotation.java [src/java/m/crp1/erosion] Revision: default  Date:
/*
 * $Id$
 *
 * This file is part of the Cloud Services Integration Platform (CSIP),
 * a Model-as-a-Service framework, API, and application suite.
 *
 * 2012-2022, OMSLab, Colorado State University.
 *
 * OMSLab licenses this file to you under the MIT license.
 * See the LICENSE file in the project root for more information.
 */
package m.crp1.erosion;

import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;

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

  /**
   * Fallow Management define for RUSLE2
   */
  private static final String R2_FALLOW_MANAGEMENT = "{"
      + "\"lmod_file\": {\n"
      + "        \"path\": \"managements\\\\man\",\n"
      + "        \"name\": \"12 Monthly Rotary Harrow Operations\",\n"
      + "        \"key\": \"\",\n"
      + "        \"type\": \"MANAGEMENT\",\n"
      + "        \"metainfo\": {},\n"
      + "        \"params\": {\"param\": [\n"
      + "          {\n"
      + "            \"name\": \"DURATION_IN_MAN\",\n"
      + "            \"type\": \"Int\",\n"
      + "            \"unit\": \"year\",\n"
      + "            \"data\": [1]\n"
      + "          },\n"
      + "          {\n"
      + "            \"name\": \"OP_DATE\",\n"
      + "            \"type\": \"Dte\",\n"
      + "            \"unit\": \"date\",\n"
      + "            \"dim\": {\"name\": \"OP_DATE\"},\n"
      + "            \"data\": [\n"
      + "              \"0000-01-01\",\n"
      + "              \"0000-02-01\",\n"
      + "              \"0000-03-01\",\n"
      + "              \"0000-04-01\",\n"
      + "              \"0000-05-01\",\n"
      + "              \"0000-06-01\",\n"
      + "              \"0000-07-01\",\n"
      + "              \"0000-08-01\",\n"
      + "              \"0000-09-01\",\n"
      + "              \"0000-10-01\",\n"
      + "              \"0000-11-01\",\n"
      + "              \"0000-12-01\"\n"
      + "            ]\n"
      + "          },\n"
      + "          {\n"
      + "            \"name\": \"MAN_OP_VEG_CROP_YEAR_END_START\",\n"
      + "            \"type\": \"Bol\",\n"
      + "            \"dim\": {\"name\": \"OP_DATE\"},\n"
      + "            \"data\": [\n"
      + "              {\"value\": false},\n"
      + "              {\"value\": false},\n"
      + "              {\"value\": false},\n"
      + "              {\"value\": false},\n"
      + "              {\"value\": false},\n"
      + "              {\"value\": false},\n"
      + "              {\"value\": false},\n"
      + "              {\"value\": false},\n"
      + "              {\"value\": false},\n"
      + "              {\"value\": false},\n"
      + "              {\"value\": false},\n"
      + "              {\"value\": false}\n"
      + "            ]\n"
      + "          },\n"
      + "          {\n"
      + "            \"name\": \"OP_PTR\",\n"
      + "            \"type\": \"ObR\",\n"
      + "            \"dim\": {\"name\": \"OP_DATE\"},\n"
      + "            \"file_type\": \"OPERATION\",\n"
      + "            \"data\": [\n"
      + "              {\n"
      + "                \"file_key\": \"1707336101459795802\",\n"
      + "                \"value\": \"operations\\\\\\\\Harrow, rotary\"\n"
      + "              },\n"
      + "              {\n"
      + "                \"file_key\": \"1707336101459795802\",\n"
      + "                \"value\": \"operations\\\\\\\\Harrow, rotary\"\n"
      + "              },\n"
      + "              {\n"
      + "                \"file_key\": \"1707336101459795802\",\n"
      + "                \"value\": \"operations\\\\\\\\Harrow, rotary\"\n"
      + "              },\n"
      + "              {\n"
      + "                \"file_key\": \"1707336101459795802\",\n"
      + "                \"value\": \"operations\\\\\\\\Harrow, rotary\"\n"
      + "              },\n"
      + "              {\n"
      + "                \"file_key\": \"1707336101459795802\",\n"
      + "                \"value\": \"operations\\\\\\\\Harrow, rotary\"\n"
      + "              },\n"
      + "              {\n"
      + "                \"file_key\": \"1707336101459795802\",\n"
      + "                \"value\": \"operations\\\\\\\\Harrow, rotary\"\n"
      + "              },\n"
      + "              {\n"
      + "                \"file_key\": \"1707336101459795802\",\n"
      + "                \"value\": \"operations\\\\\\\\Harrow, rotary\"\n"
      + "              },\n"
      + "              {\n"
      + "                \"file_key\": \"1707336101459795802\",\n"
      + "                \"value\": \"operations\\\\\\\\Harrow, rotary\"\n"
      + "              },\n"
      + "              {\n"
      + "                \"file_key\": \"1707336101459795802\",\n"
      + "                \"value\": \"operations\\\\\\\\Harrow, rotary\"\n"
      + "              },\n"
      + "              {\n"
      + "                \"file_key\": \"1707336101459795802\",\n"
      + "                \"value\": \"operations\\\\\\\\Harrow, rotary\"\n"
      + "              },\n"
      + "              {\n"
      + "                \"file_key\": \"1707336101459795802\",\n"
      + "                \"value\": \"operations\\\\\\\\Harrow, rotary\"\n"
      + "              },\n"
      + "              {\n"
      + "                \"file_key\": \"1707336101459795802\",\n"
      + "                \"value\": \"operations\\\\\\\\Harrow, rotary\"\n"
      + "              }\n"
      + "            ]\n"
      + "          },\n"
      + "          {\n"
      + "            \"name\": \"VEG_PTR\",\n"
      + "            \"type\": \"Ovr\",\n"
      + "            \"dim\": {\"name\": \"OP_DATE\"},\n"
      + "            \"file_type\": \"VEGETATION\",\n"
      + "            \"data\": [\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null}\n"
      + "            ]\n"
      + "          },\n"
      + "          {\n"
      + "            \"name\": \"EXT_RES_PTR\",\n"
      + "            \"type\": \"Ovr\",\n"
      + "            \"dim\": {\"name\": \"OP_DATE\"},\n"
      + "            \"file_type\": \"RESIDUE\",\n"
      + "            \"data\": [\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null},\n"
      + "              {\"file_key\": null}\n"
      + "            ]\n"
      + "          },\n"
      + "          {\n"
      + "            \"name\": \"ROW_DIRECTION\",\n"
      + "            \"type\": \"Ovr\",\n"
      + "            \"dim\": {\"name\": \"OP_DATE\"},\n"
      + "            \"data\": [\n"
      + "              {\"value\": \"0\"},\n"
      + "              {\"value\": \"0\"},\n"
      + "              {\"value\": \"0\"},\n"
      + "              {\"value\": \"0\"},\n"
      + "              {\"value\": \"0\"},\n"
      + "              {\"value\": \"0\"},\n"
      + "              {\"value\": \"0\"},\n"
      + "              {\"value\": \"0\"},\n"
      + "              {\"value\": \"0\"},\n"
      + "              {\"value\": \"0\"},\n"
      + "              {\"value\": \"0\"},\n"
      + "              {\"value\": \"0\"}\n"
      + "            ]\n"
      + "          },\n"
      + "          {\n"
      + "            \"name\": \"RES_ADDED\",\n"
      + "            \"type\": \"Flt\",\n"
      + "            \"unit\": \"pound/acre\",\n"
      + "            \"dim\": {\"name\": \"OP_DATE\"},\n"
      + "            \"data\": [\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null\n"
      + "            ]\n"
      + "          },\n"
      + "          {\n"
      + "            \"name\": \"MAN_OP_VEG_NUM_HARV_UNITS\",\n"
      + "            \"type\": \"Flt\",\n"
      + "            \"dim\": {\"name\": \"OP_DATE\"},\n"
      + "            \"data\": [\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null,\n"
      + "              null\n"
      + "            ]\n"
      + "          }\n"
      + "        ]}\n"
      + "      }}";

  private static final String WEPS_FALLOW_ROTATION = "{\n"
      + "        \"rotationFiles\": [{\n"
      + "                \"rotation\": {\n"
      + "                    \"duration\": 1,\n"
      + "                    \"length\": 0,\n"
      + "                    \"managements\": [{\n"
      + "                            \"events\": [{\n"
      + "                                    \"date\": \"2020-01-31\",\n"
      + "                                    \"interval\": false,\n"
      + "                                    \"operation\": {\n"
      + "                                        \"add_residue\": false,\n"
      + "                                        \"begin_growth\": false,\n"
      + "                                        \"defaultResidueAdded\": 0,\n"
      + "                                        \"id\": \"23112\",\n"
      + "                                        \"kill_crop\": false,\n"
      + "                                        \"name\": \"Harrow, rotary\",\n"
      + "                                        \"opGroup1\": \"Tillage, surface, shallow\",\n"
      + "                                        \"opNotes\": \"Tillage operation, shallow, Rotary harrow with spike tine clusters mounted on a rotating cable\\nset at slight angle, Breaks crusts, lifts and redeposits residue, levels surface,\\nlightly incorporates seed, fertilizer or chemicals.  Vegetation is killed.\",\n"
      + "                                        \"row_direction\": \"0\",\n"
      + "                                        \"stir\": 10.24\n"
      + "                                    }\n"
      + "                                }, {\n"
      + "                                    \"date\": \"2020-02-28\",\n"
      + "                                    \"interval\": false,\n"
      + "                                    \"operation\": {\n"
      + "                                        \"add_residue\": false,\n"
      + "                                        \"begin_growth\": false,\n"
      + "                                        \"defaultResidueAdded\": 0,\n"
      + "                                        \"id\": \"23112\",\n"
      + "                                        \"kill_crop\": false,\n"
      + "                                        \"name\": \"Harrow, rotary\",\n"
      + "                                        \"opGroup1\": \"Tillage, surface, shallow\",\n"
      + "                                        \"opNotes\": \"Tillage operation, shallow, Rotary harrow with spike tine clusters mounted on a rotating cable\\nset at slight angle, Breaks crusts, lifts and redeposits residue, levels surface,\\nlightly incorporates seed, fertilizer or chemicals.  Vegetation is killed.\",\n"
      + "                                        \"row_direction\": \"0\",\n"
      + "                                        \"stir\": 10.24\n"
      + "                                    }\n"
      + "                                }, {\n"
      + "                                    \"date\": \"2020-03-31\",\n"
      + "                                    \"interval\": false,\n"
      + "                                    \"operation\": {\n"
      + "                                        \"add_residue\": false,\n"
      + "                                        \"begin_growth\": false,\n"
      + "                                        \"defaultResidueAdded\": 0,\n"
      + "                                        \"id\": \"23112\",\n"
      + "                                        \"kill_crop\": false,\n"
      + "                                        \"name\": \"Harrow, rotary\",\n"
      + "                                        \"opGroup1\": \"Tillage, surface, shallow\",\n"
      + "                                        \"opNotes\": \"Tillage operation, shallow, Rotary harrow with spike tine clusters mounted on a rotating cable\\nset at slight angle, Breaks crusts, lifts and redeposits residue, levels surface,\\nlightly incorporates seed, fertilizer or chemicals.  Vegetation is killed.\",\n"
      + "                                        \"row_direction\": \"0\",\n"
      + "                                        \"stir\": 10.24\n"
      + "                                    }\n"
      + "                                }, {\n"
      + "                                    \"date\": \"2020-04-30\",\n"
      + "                                    \"interval\": false,\n"
      + "                                    \"operation\": {\n"
      + "                                        \"add_residue\": false,\n"
      + "                                        \"begin_growth\": false,\n"
      + "                                        \"defaultResidueAdded\": 0,\n"
      + "                                        \"id\": \"23112\",\n"
      + "                                        \"kill_crop\": false,\n"
      + "                                        \"name\": \"Harrow, rotary\",\n"
      + "                                        \"opGroup1\": \"Tillage, surface, shallow\",\n"
      + "                                        \"opNotes\": \"Tillage operation, shallow, Rotary harrow with spike tine clusters mounted on a rotating cable\\nset at slight angle, Breaks crusts, lifts and redeposits residue, levels surface,\\nlightly incorporates seed, fertilizer or chemicals.  Vegetation is killed.\",\n"
      + "                                        \"row_direction\": \"0\",\n"
      + "                                        \"stir\": 10.24\n"
      + "                                    }\n"
      + "                                }, {\n"
      + "                                    \"date\": \"2020-05-31\",\n"
      + "                                    \"interval\": false,\n"
      + "                                    \"operation\": {\n"
      + "                                        \"add_residue\": false,\n"
      + "                                        \"begin_growth\": false,\n"
      + "                                        \"defaultResidueAdded\": 0,\n"
      + "                                        \"id\": \"23112\",\n"
      + "                                        \"kill_crop\": false,\n"
      + "                                        \"name\": \"Harrow, rotary\",\n"
      + "                                        \"opGroup1\": \"Tillage, surface, shallow\",\n"
      + "                                        \"opNotes\": \"Tillage operation, shallow, Rotary harrow with spike tine clusters mounted on a rotating cable\\nset at slight angle, Breaks crusts, lifts and redeposits residue, levels surface,\\nlightly incorporates seed, fertilizer or chemicals.  Vegetation is killed.\",\n"
      + "                                        \"row_direction\": \"0\",\n"
      + "                                        \"stir\": 10.24\n"
      + "                                    }\n"
      + "                                }, {\n"
      + "                                    \"date\": \"2020-06-30\",\n"
      + "                                    \"interval\": false,\n"
      + "                                    \"operation\": {\n"
      + "                                        \"add_residue\": false,\n"
      + "                                        \"begin_growth\": false,\n"
      + "                                        \"defaultResidueAdded\": 0,\n"
      + "                                        \"id\": \"23112\",\n"
      + "                                        \"kill_crop\": false,\n"
      + "                                        \"name\": \"Harrow, rotary\",\n"
      + "                                        \"opGroup1\": \"Tillage, surface, shallow\",\n"
      + "                                        \"opNotes\": \"Tillage operation, shallow, Rotary harrow with spike tine clusters mounted on a rotating cable\\nset at slight angle, Breaks crusts, lifts and redeposits residue, levels surface,\\nlightly incorporates seed, fertilizer or chemicals.  Vegetation is killed.\",\n"
      + "                                        \"row_direction\": \"0\",\n"
      + "                                        \"stir\": 10.24\n"
      + "                                    }\n"
      + "                                }, {\n"
      + "                                    \"date\": \"2020-07-31\",\n"
      + "                                    \"interval\": false,\n"
      + "                                    \"operation\": {\n"
      + "                                        \"add_residue\": false,\n"
      + "                                        \"begin_growth\": false,\n"
      + "                                        \"defaultResidueAdded\": 0,\n"
      + "                                        \"id\": \"23112\",\n"
      + "                                        \"kill_crop\": false,\n"
      + "                                        \"name\": \"Harrow, rotary\",\n"
      + "                                        \"opGroup1\": \"Tillage, surface, shallow\",\n"
      + "                                        \"opNotes\": \"Tillage operation, shallow, Rotary harrow with spike tine clusters mounted on a rotating cable\\nset at slight angle, Breaks crusts, lifts and redeposits residue, levels surface,\\nlightly incorporates seed, fertilizer or chemicals.  Vegetation is killed.\",\n"
      + "                                        \"row_direction\": \"0\",\n"
      + "                                        \"stir\": 10.24\n"
      + "                                    }\n"
      + "                                }, {\n"
      + "                                    \"date\": \"2020-08-31\",\n"
      + "                                    \"interval\": false,\n"
      + "                                    \"operation\": {\n"
      + "                                        \"add_residue\": false,\n"
      + "                                        \"begin_growth\": false,\n"
      + "                                        \"defaultResidueAdded\": 0,\n"
      + "                                        \"id\": \"23112\",\n"
      + "                                        \"kill_crop\": false,\n"
      + "                                        \"name\": \"Harrow, rotary\",\n"
      + "                                        \"opGroup1\": \"Tillage, surface, shallow\",\n"
      + "                                        \"opNotes\": \"Tillage operation, shallow, Rotary harrow with spike tine clusters mounted on a rotating cable\\nset at slight angle, Breaks crusts, lifts and redeposits residue, levels surface,\\nlightly incorporates seed, fertilizer or chemicals.  Vegetation is killed.\",\n"
      + "                                        \"row_direction\": \"0\",\n"
      + "                                        \"stir\": 10.24\n"
      + "                                    }\n"
      + "                                }, {\n"
      + "                                    \"date\": \"2020-09-30\",\n"
      + "                                    \"interval\": false,\n"
      + "                                    \"operation\": {\n"
      + "                                        \"add_residue\": false,\n"
      + "                                        \"begin_growth\": false,\n"
      + "                                        \"defaultResidueAdded\": 0,\n"
      + "                                        \"id\": \"23112\",\n"
      + "                                        \"kill_crop\": false,\n"
      + "                                        \"name\": \"Harrow, rotary\",\n"
      + "                                        \"opGroup1\": \"Tillage, surface, shallow\",\n"
      + "                                        \"opNotes\": \"Tillage operation, shallow, Rotary harrow with spike tine clusters mounted on a rotating cable\\nset at slight angle, Breaks crusts, lifts and redeposits residue, levels surface,\\nlightly incorporates seed, fertilizer or chemicals.  Vegetation is killed.\",\n"
      + "                                        \"row_direction\": \"0\",\n"
      + "                                        \"stir\": 10.24\n"
      + "                                    }\n"
      + "                                }, {\n"
      + "                                    \"date\": \"2020-10-31\",\n"
      + "                                    \"interval\": false,\n"
      + "                                    \"operation\": {\n"
      + "                                        \"add_residue\": false,\n"
      + "                                        \"begin_growth\": false,\n"
      + "                                        \"defaultResidueAdded\": 0,\n"
      + "                                        \"id\": \"23112\",\n"
      + "                                        \"kill_crop\": false,\n"
      + "                                        \"name\": \"Harrow, rotary\",\n"
      + "                                        \"opGroup1\": \"Tillage, surface, shallow\",\n"
      + "                                        \"opNotes\": \"Tillage operation, shallow, Rotary harrow with spike tine clusters mounted on a rotating cable\\nset at slight angle, Breaks crusts, lifts and redeposits residue, levels surface,\\nlightly incorporates seed, fertilizer or chemicals.  Vegetation is killed.\",\n"
      + "                                        \"row_direction\": \"0\",\n"
      + "                                        \"stir\": 10.24\n"
      + "                                    }\n"
      + "                                }, {\n"
      + "                                    \"date\": \"2020-11-30\",\n"
      + "                                    \"interval\": false,\n"
      + "                                    \"operation\": {\n"
      + "                                        \"add_residue\": false,\n"
      + "                                        \"begin_growth\": false,\n"
      + "                                        \"defaultResidueAdded\": 0,\n"
      + "                                        \"id\": \"23112\",\n"
      + "                                        \"kill_crop\": false,\n"
      + "                                        \"name\": \"Harrow, rotary\",\n"
      + "                                        \"opGroup1\": \"Tillage, surface, shallow\",\n"
      + "                                        \"opNotes\": \"Tillage operation, shallow, Rotary harrow with spike tine clusters mounted on a rotating cable\\nset at slight angle, Breaks crusts, lifts and redeposits residue, levels surface,\\nlightly incorporates seed, fertilizer or chemicals.  Vegetation is killed.\",\n"
      + "                                        \"row_direction\": \"0\",\n"
      + "                                        \"stir\": 10.24\n"
      + "                                    }\n"
      + "                                }, {\n"
      + "                                    \"date\": \"2020-12-31\",\n"
      + "                                    \"interval\": false,\n"
      + "                                    \"operation\": {\n"
      + "                                        \"add_residue\": false,\n"
      + "                                        \"begin_growth\": false,\n"
      + "                                        \"defaultResidueAdded\": 0,\n"
      + "                                        \"id\": \"23112\",\n"
      + "                                        \"kill_crop\": false,\n"
      + "                                        \"name\": \"Harrow, rotary\",\n"
      + "                                        \"opGroup1\": \"Tillage, surface, shallow\",\n"
      + "                                        \"opNotes\": \"Tillage operation, shallow, Rotary harrow with spike tine clusters mounted on a rotating cable\\nset at slight angle, Breaks crusts, lifts and redeposits residue, levels surface,\\nlightly incorporates seed, fertilizer or chemicals.  Vegetation is killed.\",\n"
      + "                                        \"row_direction\": \"0\",\n"
      + "                                        \"stir\": 10.24\n"
      + "                                    }\n"
      + "                                }],\n"
      + "                            \"id\": null,\n"
      + "                            \"name\": \"default\",\n"
      + "                            \"path\": \"Edited managements\",\n"
      + "                            \"stir\": 0\n"
      + "                        }],\"name\": \"Fallow 12x Rotary Harrow\"\n"
      + "                }\n"
      + "            }]\n"
      + "}";


  public static JSONObject weps_rotation(int length) throws JSONException {
    String adjustedRotation = WEPS_FALLOW_ROTATION.replace("\"length\": 0", "\"length\": " + length);
    return new JSONObject(adjustedRotation);
  }


  public static JSONObject r2_rotation() throws JSONException {
    return new JSONObject(R2_FALLOW_MANAGEMENT);
  }
}