Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

BasicEnums.h

Go to the documentation of this file.
00001 //------------------------------------------------------------------------------
00002 //
00003 //      Thomas Berger (main author), Pepijn Schreinemachers, and Thorsten Arnold
00004 //
00005 //
00006 //      Hohenheim University (490d)
00007 //      Professorship for Land Use Economics in the Tropics and Subtropics
00008 //
00009 //      May not be distributed without permission by main author
00010 //
00011 //      File:                           BasicEnums.h (formerly enum_defs.h)
00012 //
00013 //      Contents:               Contains enumeration lists
00014 //
00015 //
00016 //
00017 //------------------------------------------------------------------------------
00018 
00019 
00020 #ifndef _BasicEnums_h
00021 #define _BasicEnums_h
00022 
00024 enum WaterAssignmentType
00025 {       onlyActual,
00026         onlyRandom,
00027         bothRights
00028 };
00029 
00030 enum    typeIrrigationMethod
00031 {       irrigMethodFlood,
00032         irrigMethodFurrow,
00033         irrigMethodTerrassing,
00034         irrigMethodDrip,
00035         irrigMethodImprovedFurrow,
00036         irrigMethodAdvancedFurrow,  //californiano
00037         irrigMethodSprinkler,
00038         /* TODO 5 -oBerger -cImplement : include new irrigaiton methods in water balance */
00039         // Comment Arnold: Not required, it does it automatically. But this "typeIrrigationMethod" is a workaround and should not be
00040         // extended! 
00041         // Note: Each new irrigation method also requires a string BasicData::getStringIrrigationMethods(typeIrrigationMethod)
00042         irrigMethodTape,
00043         irrigMethodCenterPivot,
00044         irrigMethodMicroSprinkler,
00045         irrigMethodEND
00046 };
00047 
00048 enum TypeRoleInCoupling 
00049 {       typeSequencer, 
00050         typeDatamanager,        
00051         typeMPMAS, 
00052         typeWasimWrapper, 
00053         typeCropModel           
00054 };
00055 
00056 
00057 enum TypeDataExchangeType       
00058 {       typeMatrixDouble,       
00059         typeRaster2D            
00060 };
00061 
00062 
00063 
00064 enum TypeDataExchangeChannel 
00065 { 
00066 //      0                                                       1                                               2                                                       3                               4                               5                                                       
00067         typeControllerToPerif1,  typePerif1ToController, typeControllerToPerif2,        typePerif2ToController, typeControllerToPerif3,  typePerif3ToController, 
00068 //      6                                                       7                                               8                                                       9                               10                      11                                                      
00069         typeControllerToPerif4,  typePerif4ToController, typeControllerToPerif5,        typePerif5ToController, typeControllerToPerif6,  typePerif6ToController 
00070 };
00071 
00072 
00073 enum    TypeHydroModel
00074 {       typeHydroNull,
00075         typeHydroEdic,
00076         typeHydroWasim
00077 };
00078 
00079 enum    TypeCropModel
00080 {       typeCropNull,
00081         typeCropTspc,
00082         typeCropWat
00083 };
00084 
00085 enum TypeEdicFlow
00086 {       enumMethodPlantuptake,
00087         enumMethodSurfaceOvernight,             // These are set afterwards, by hand
00088         enumMethodSurface,
00089         enumMethodLateral,
00090         enumMethodDeep,
00091         enumMethod_MAX_read,            // These are automatically read from file
00092         enumMethodCanalDeep,
00093         enumMethodCanalLateral,
00094    enumMethodCanalSurface,
00095         enumMethodEND
00096 };
00097                  
00098 enum POSITIONMATRIXtranslation
00099 {       posM_LPcol,     posM_crA,       posM_CropID,    posM_tech,       posM_max,
00100         posM_LUwasim,   posM_freq, posM_binQuant,       posM_bin,       posM_numG
00101 };
00102 
00103 
00104 // if
00105 //              FileTypeEnum fileTypeGisInput:  file in input/gis/
00106 //              FileTypeEnum fileTypeIsDAT:     file in input/dat/
00107 //              ...     see     function getFullMpmasFilename
00108 enum    EnumFileType
00109 {       fileTypeGisInput,       fileTypeGisOutputYearly, fileTypeGisOutputMonthly, fileTypeIsDAT, fileTypeIsDatByCatchment, fileTypeIsDatYearly,
00110         fileTypeIsDatMonthly, fileTypeIsTEST, fileTypeIsOUT, fileTypeIsOutByCatchment,
00111         fileTypeIsOutByCatchmentAndMonth
00112 };
00113 
00114 
00115 enum Content
00116 // 0                            1                                       2                                        3                                       4
00117 {       // GisFiles:
00118         contFarmID,             contPropID,      contSoilID,             contCluID,                      contNetwID,
00119         contPopID,              contAgentID,            contDistFromHome,       contUser, contSectorID,         contENDBASIC,   
00120         
00121         // Types used   by TSPC-Model
00122         contSoilN,       contSoilP,                      contSoilK,                      contSoilA,
00123         contSoilC,              contSoilSl,      contSoilSe,
00124    contSlopeLen,        contSlopeErosion,       contSoilCond,    contENDTSPC,   
00125         
00126         // irrigation data handled in MPMAS 
00127         contCropAct,    contPrecip, contIrrigQuantEdic, contENDIRRIG,
00128 
00129         // Further data handled in "coupling" matrices
00130    //  ... the order is important: They are allocated into an 
00131    //  ... array of dimension ((contENDCOUPL - contENDIRRIG + 1) = contENDCOUPL - contENDIRRIG), 
00132    //  ... and stored in matrices within the clas cell. Used also during coupling!
00133    contSoilMoist, contSoilMoist05, contSoilMoist1, contETpot, contETreal, 
00134    contSurfaceRunoff, contPercol, contBaseFlow, contGroundwaterRecharge,  
00135         contIrrigGrid,  contLUGrid,      contLUwasim,   contETdiff,     contFlowMat,
00136         contWATERWAYS, contDEM, contIrrigQuant, contInterceptEvap, contThrougfall,  
00137         contENDCOUPL, 
00138    
00139    // Other formats, or special types, that are not gridded data
00140    contLUTable, contIrrigTable, 
00141 
00142         // DAT Files
00143         fileTypeBasicData,      fileTypeMarket, fileTypePCrops, fileTypeSoils, fileTypeMILP,
00144         fileTypeLivestock,      fileTypeSegment, fileTypePopulation, fileTypeCluster,
00145         fileTypeEdicCalibrationFactor,  fileTypeEdicSurfaceRunoff, fileTypeEdicLateralFlows, fileTypeEdicRiverFlows,
00146         fileTypeEdicIrrigationMethods,  fileTypeRegion, fileTypeCropWat,
00147         fileTypeEffectivePrecip, fileTypeActualPrecip, 
00148         fileTypeSectorRandomWaterRights,        fileTypeSectorActualWaterRights, fileTypeSectorInfrastructureProjects,
00149         fileTypeLanduseByCatchment, fileTypeTimeHandler, fileTypeIrrigationFactors, fileTypeSpatialExportInfo, 
00150         fileTypeENDFILETYPE,
00151         
00152         // General
00153         contIsInit,      contNotInit,    contNotFound,   contData,      contNOTYPE, contEMPTY,          contNoDataVal,  contmapData,
00154 
00155         // ControlFile
00156         contCntrlData, contSectorCntrl, contOutputData, contMonthlyData, contMAXLEN
00157 };
00158 
00159 enum ExportType
00160 // 0                            1                                2                  3                        4
00161 // 5                            6                               7                    8                       9
00162 {
00163          expFlowMat, expIrrigTable, expLUTable, expIrrigGrid, expLUGrid,
00164          expWATERWAYS,   expDEM, expSoilMoist,   expSoilMoist05, expSoilMoist1,  expETpot, expETreal,
00165          expETdiff,  expPrecip ,  expIrrigQuant, expSurfaceRunoff,    expBaseFlow, expGroundwaterRecharge, 
00166          expInterceptEvap, expThroughfall, expPercol,  expNOTYPE
00167 };
00168 
00169 // Filenames initialized in     function "init_strings.cpp:     initFILENAMES()"
00170 enum KEYTYPE
00171 {       keyDEFAULTS, keyMAS2WASIM, keyCROPACT, keyWASIMFILENAMES,       keySECTORtight,
00172         keySECTORFULL, keyENUM_SECIDS, keyENUM_CatchIDS, keyDATAEXCH,   
00173         keyACTIVITY, keyLU_fixed,       keyPROP, keyELEV,       keyLOG, keyLOG2, keyTABLE_onetime,
00174         keyTABLE_timeseries, keyLUFILTER,       keyFILTER_FINE, keyWasimZONEascii,
00175         keyINFLOWvect,           /*     [monthly]/inflow         */
00176         keyMedianVect,           /*     sectorFlows             */
00177         keyMonthlyDir,           /*     monthly         */
00178         keyAbstraTrunk,          /*     abstra */
00179         keyIrrigDir,                     /*             "irrigTables"   */
00180         keyIrrigTrunk,           /*      "IrrigationTable" */
00181         keySectorRaster_WasimResolution, /*   "" */
00182 //      keyWasimLU,                                      
00183 //      keyWasimIRR,                     /*     irrigation grid, WASIM resolution, raster       ascii   file */
00184  
00185         keyZoneBinary,           /*     in WASIM FILENAMES */
00186         keyWasimControlTemp,
00187         keyWasimControlFin,     /* in   WASIM   FILENAMES       */
00188         
00189         keyIRR_InflowMat,                        /*     in Filename     for     temporary       file:   water   per     sector during   irrigation run */
00190         keyTimeHandler, 
00191         keyFilenamesInitialize, 
00192         keyIrrigationTableBackground,
00193         keyWasimIrrigationRasterBackground,     /* Default irrigation   grid,   WASIM   resolution,     raster ascii file       */
00194         keyWasimIrrigationRasterBinary, 
00195         keyWasimRasterLanduseBackground,                 /*     Default irrigation grid, WASIM resolution, raster       ascii   file */
00196         keyIrrigationTableForStandalone, 
00197         keyIrrigationGridForStandalone, 
00198         keyLanduseGridForStandalone, 
00199         keyCropKey,     
00200         keyActivityKey, 
00201    keyIrrigationFactors, 
00202    keyFilesMax           
00203 };
00204 
00205 enum enumIrrigationPosition     
00206 {       posIrrID,       posIrrTech,     posIrrClust, posIrrLUC
00207 };
00208 
00209 
00210 #ifndef LP_OLD
00211 
00212 
00216 enum SolverType
00217 {       symphony,
00218         cbc,
00219         osl
00220 };
00221 
00223 enum CapacityType
00224 {       labor,
00225         liquidity,
00226         firstWater,
00227         firstSoil,
00228         averageCapital,
00229         averageLabor,
00230         averageMachinery,
00231         //averageDraft, ##
00232         binaryDisinvestmentCap,
00233         firstFoodNutrientDemand,
00234         soilInvestments
00235 };
00236 
00238 enum ActivityType
00239 {       saving,
00240         extraConsumption,
00241         femaleLaborYes,
00242         femaleLaborNo,
00243         maleLaborYes,
00244         maleLaborNo,
00245         binaryDisinvestmentAct, 
00246         manureAccounting,
00247         fixedVariablesConsumption
00248 };      
00249 //-----------------------------------------
00250 #endif /*LP_OLD*/
00251 
00253 enum EarningType
00254 {       other,
00255         earningsInCash,
00256         earningsInKind,
00257         purchasedFood,
00258         consumedProducedFood
00259 };
00260 
00261 
00262 enum enumYieldInfo 
00263 {       typeYieldInfo_waterActivityID, 
00264         typeYieldInfo_areaPlanted, 
00265         typeYieldInfo_lpColumn,                 
00266         typeYieldInfo_priceColumn, 
00267         typeYieldInfo_yieldRow,
00268         typeYieldInfo_irrigationPriority,  
00269         typeYieldInfo_irrigationType, 
00270         typeYieldInfo_plantShare,
00271         typeYieldInfo_preHarvestCostsPerHa,
00272         typeYieldInfo_potentialYieldPerHa, 
00273         typeYieldInfo_expectedYieldPerHa, 
00274         typeYieldInfo_actualYieldPerHa, 
00275         typeYieldInfo_potentialTotalProduction, 
00276         typeYieldInfo_expectedTotalProduction, 
00277         typeYieldInfo_actualTotalProduction, 
00278         typeYieldInfo_reductionCoefficientKr, 
00279         typeYieldInfo_yieldReductionFactor, 
00280         typeYieldInfo_totalProductionLoss,//here: compared to expected    
00281         typeYieldInfo_MAX
00282 };
00283 
00284 enum enumActivityType
00285 {       type_sellingBuying,             //(0) Selling/buying activity
00286         type_irrigatedAnnual,   //(1) Growing an irrigated annual crop
00287         type_irrigatedPerennial,//(2) Growing an irrigated permanent crop 
00288         type_divisibleIrrigated,//(3) Divisible investment goods with irrigation 
00289         type_indivisible,                       //(4) Indivisible investment goods without irrigation 
00290         type_rainfedAnnual,             //(5) Rainfed annual crop
00291         type_rainfedPerennial,  //(6) Rainfed perennial crop
00292         type_activityTypeMAX            //(-1) All other activities
00293 };
00294 
00295 #define AGENTF_ENTRIES_BEFORE_LABOR 11 //changed from 8 to 11, quick fix  ## 080812
00296 #define AGENTF_ENTRIES_BEFORE_PER_HA 5 //quick fix ## 080812
00297 #define STATUS_ADDITIONAL 1
00298 
00299 enum columnsInPermamentCropsRegistry                    //<dkult_reg>
00300 {       typePermCrops_investmentObjectID,                       //formerly 17 //order may not be changed
00301         typePermCrops_status,                     //formerly 0  //order may not be changed
00302         
00303         typePermCrops_activityLP,       //quick fix ## 080812
00304         typePermCrops_yieldRowLP,       //quick fix ## 080812
00305         typePermCrops_sizeHa,           //quick fix ## 080812
00306 
00307         typePermCrops_currentCropYield,                         //formerly 15
00308         typePermCrops_currentVariableCosts,                     //formerly 16
00309         typePermCrops_currentPreHarvestCosts,           //formerly 3
00310 
00311         typePermCrops_futureCropYield,                          //formerly 1
00312         typePermCrops_futureVariableCosts,                      //formerly 2
00313         typePermCrops_futurePreHarvestCosts,            //formerly 9
00314 
00315         //typePermCrops_currentLaborDemand,                     //formerly 4    //##
00316         //typePermCrops_currentLaborPeak1Demand,                //formerly 7    //##
00317         //typePermCrops_currentLaborPeak2Demand,                //formerly 8    //##
00318         //                                                                                                                                                      
00319 
00320         //typePermCrops_averageLaborDemand,                     //formerly 10   //##
00321         //typePermCrops_averageLaborPeak1Demand,                //formerly 13   //##
00322         //typePermCrops_averageLaborPeak2Demand,                //formerly 14   //##
00323         //                                                                                                                                                      
00324         //typePermCrops_currentHeavyMachineryDemand,//formerly 5        //##
00325         //typePermCrops_currentLightMachineryDemand,//formerly 6        //##
00326 
00327         //typePermCrops_averageHeavyMachineryDemand,//formerly 11       //##
00328         //typePermCrops_averageLightMachineryDemand,//formerly 12       //##
00329 
00330         typePermCrops_MAX
00331 };
00332 
00333 enum enumTypeCanalModel                                          //
00334 {       typeModeInherited,                              //0
00335         typeModeRedistributed,                  //1
00336         typeModeRedistributedLambda,                            //2
00337         typeModeMixedInhRedistr,
00338    typeModeMixedInhRedistrLambda,
00339    max_typeModeMixed  
00340 };
00341 
00342 
00343 
00344 
00345 
00346 #define CULTIVO_ENTRIES_BEFORE_LABOR 3
00347 enum rowsInPerennialCropsHandler                                        //<anbaudaten>
00348 {       permCropsHandler_relativeYield,                         //0
00349         permCropsHandler_preHarvestCosts,                       //1
00350         permCropsHandler_harvestCosts,                          //2
00351         permCropsHandler_MAX
00352 };
00353 
00354 
00356 //Ghana
00357 #define GHANA_NONIRRIGABLE_PLOT 0
00358 
00359 //Chile
00360 #define CHILE_SOIL_TYPE_FRUITS 0
00361 #define PEAK_LABOR_FRUIT 0.75
00362 #define PEAK_LABOR_BERRY 1.5
00363 #define MIN_HECTARE_T2 5.0
00364 
00365 enum objectTypesInLottery
00366 {       objTypeLeverage = -5,   // -5
00367         objTypeLiquidity,                       //      -4      
00368         objTypeExpectations,            // -3 
00369         objTypeInnovativeness,  // -2 
00370         objTypeFemaleHead,              // -1 
00371         objTypeDefault,                 //  0   object with land demand 
00372         objTypeNoLandDemand,            //       1 object without land demand
00373         objTypeSymbolicObjects, //  2   
00374 //----------------------------------------------------------    
00375         objTypeFruitProduction, //  3 country-specific Chile
00376         objTypeBerryProduction, //  4
00377    objTypeHiringPeakLabor,      //       5 
00378         objTypeMachineryT0,             //  6  
00379    objTypeMachineryT1,          //  7 
00380         objTypeMachineryT2,             //  8 
00381         objTypeMachineryT3,             //  9 
00382         objTypeHiringT2,                        // 10  
00383         objTypeHiringT3,                        // 11
00384         objTypeMAX                                                      
00385 };
00386 
00387 
00388 #endif

Generated on Thu Aug 28 12:38:44 2008 for MPMAS by  doxygen 1.3.9.1