From 4b260850a2a4e406687f561dd8c57eff782f0a2f Mon Sep 17 00:00:00 2001 From: lgperez Date: Tue, 17 Jul 2018 15:33:12 -0700 Subject: [PATCH] included the r scripts included the r scripts in github to have a better versioning control. --- ArcGIS/##Arcpy on Python Console ArcMAP.py | 89 ++ ArcGIS/Batch_zonal_stats.py | 193 +++++ ...CalculateNDVIandNiblackFromHyperIterate.py | 104 +++ .../ChooseFieldValueToolbox.tbx | Bin 0 -> 182272 bytes .../Scratch.gdb/a00000001.TablesByName.atx | Bin 0 -> 4118 bytes .../Scratch/Scratch.gdb/a00000001.freelist | Bin 0 -> 4440 bytes .../Scratch/Scratch.gdb/a00000001.gdbindexes | Bin 0 -> 110 bytes .../Scratch/Scratch.gdb/a00000001.gdbtable | Bin 0 -> 326 bytes .../Scratch/Scratch.gdb/a00000001.gdbtablx | Bin 0 -> 5152 bytes .../Scratch/Scratch.gdb/a00000002.gdbtable | Bin 0 -> 1456 bytes .../Scratch/Scratch.gdb/a00000002.gdbtablx | Bin 0 -> 5152 bytes .../Scratch/Scratch.gdb/a00000003.gdbindexes | Bin 0 -> 42 bytes .../Scratch/Scratch.gdb/a00000003.gdbtable | Bin 0 -> 1057 bytes .../Scratch/Scratch.gdb/a00000003.gdbtablx | Bin 0 -> 5152 bytes .../a00000004.CatItemsByPhysicalName.atx | Bin 0 -> 4118 bytes .../Scratch.gdb/a00000004.CatItemsByType.atx | Bin 0 -> 4118 bytes .../Scratch.gdb/a00000004.FDO_UUID.atx | Bin 0 -> 4118 bytes .../Scratch/Scratch.gdb/a00000004.freelist | Bin 0 -> 37208 bytes .../Scratch/Scratch.gdb/a00000004.gdbindexes | Bin 0 -> 310 bytes .../Scratch/Scratch.gdb/a00000004.gdbtable | Bin 0 -> 325048 bytes .../Scratch/Scratch.gdb/a00000004.gdbtablx | Bin 0 -> 5152 bytes .../Scratch/Scratch.gdb/a00000004.spx | Bin 0 -> 4118 bytes .../a00000005.CatItemTypesByName.atx | Bin 0 -> 12310 bytes .../a00000005.CatItemTypesByParentTypeID.atx | Bin 0 -> 4118 bytes .../a00000005.CatItemTypesByUUID.atx | Bin 0 -> 4118 bytes .../Scratch/Scratch.gdb/a00000005.gdbindexes | Bin 0 -> 296 bytes .../Scratch/Scratch.gdb/a00000005.gdbtable | Bin 0 -> 1803 bytes .../Scratch/Scratch.gdb/a00000005.gdbtablx | Bin 0 -> 5152 bytes .../a00000006.CatRelsByDestinationID.atx | Bin 0 -> 4118 bytes .../a00000006.CatRelsByOriginID.atx | Bin 0 -> 4118 bytes .../Scratch.gdb/a00000006.CatRelsByType.atx | Bin 0 -> 4118 bytes .../Scratch.gdb/a00000006.FDO_UUID.atx | Bin 0 -> 4118 bytes .../Scratch/Scratch.gdb/a00000006.freelist | Bin 0 -> 4440 bytes .../Scratch/Scratch.gdb/a00000006.gdbindexes | Bin 0 -> 318 bytes .../Scratch/Scratch.gdb/a00000006.gdbtable | Bin 0 -> 263 bytes .../Scratch/Scratch.gdb/a00000006.gdbtablx | Bin 0 -> 5152 bytes .../a00000007.CatRelTypesByBackwardLabel.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByDestItemTypeID.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByForwardLabel.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByName.atx | Bin 0 -> 4118 bytes ...00000007.CatRelTypesByOriginItemTypeID.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByUUID.atx | Bin 0 -> 4118 bytes .../Scratch/Scratch.gdb/a00000007.gdbindexes | Bin 0 -> 602 bytes .../Scratch/Scratch.gdb/a00000007.gdbtable | Bin 0 -> 2504 bytes .../Scratch/Scratch.gdb/a00000007.gdbtablx | Bin 0 -> 5152 bytes .../ChooseFieldValue/Scratch/Scratch.gdb/gdb | Bin 0 -> 4 bytes .../Scratch/Scratch.gdb/timestamps | Bin 0 -> 400 bytes .../Script/DynamicValueList.py | 9 + .../ToolData.gdb/a00000001.TablesByName.atx | Bin 0 -> 4118 bytes .../ToolData.gdb/a00000001.gdbindexes | Bin 0 -> 110 bytes .../ToolData/ToolData.gdb/a00000001.gdbtable | Bin 0 -> 324 bytes .../ToolData/ToolData.gdb/a00000001.gdbtablx | Bin 0 -> 5152 bytes .../ToolData/ToolData.gdb/a00000002.gdbtable | Bin 0 -> 1456 bytes .../ToolData/ToolData.gdb/a00000002.gdbtablx | Bin 0 -> 5152 bytes .../ToolData.gdb/a00000003.gdbindexes | Bin 0 -> 42 bytes .../ToolData/ToolData.gdb/a00000003.gdbtable | Bin 0 -> 1057 bytes .../ToolData/ToolData.gdb/a00000003.gdbtablx | Bin 0 -> 5152 bytes .../a00000004.CatItemsByPhysicalName.atx | Bin 0 -> 4118 bytes .../ToolData.gdb/a00000004.CatItemsByType.atx | Bin 0 -> 4118 bytes .../ToolData.gdb/a00000004.FDO_UUID.atx | Bin 0 -> 4118 bytes .../ToolData.gdb/a00000004.gdbindexes | Bin 0 -> 310 bytes .../ToolData/ToolData.gdb/a00000004.gdbtable | Bin 0 -> 49826 bytes .../ToolData/ToolData.gdb/a00000004.gdbtablx | Bin 0 -> 5152 bytes .../ToolData/ToolData.gdb/a00000004.spx | Bin 0 -> 4118 bytes .../a00000005.CatItemTypesByName.atx | Bin 0 -> 12310 bytes .../a00000005.CatItemTypesByParentTypeID.atx | Bin 0 -> 4118 bytes .../a00000005.CatItemTypesByUUID.atx | Bin 0 -> 4118 bytes .../ToolData.gdb/a00000005.gdbindexes | Bin 0 -> 296 bytes .../ToolData/ToolData.gdb/a00000005.gdbtable | Bin 0 -> 1803 bytes .../ToolData/ToolData.gdb/a00000005.gdbtablx | Bin 0 -> 5152 bytes .../a00000006.CatRelsByDestinationID.atx | Bin 0 -> 4118 bytes .../a00000006.CatRelsByOriginID.atx | Bin 0 -> 4118 bytes .../ToolData.gdb/a00000006.CatRelsByType.atx | Bin 0 -> 4118 bytes .../ToolData.gdb/a00000006.FDO_UUID.atx | Bin 0 -> 4118 bytes .../ToolData.gdb/a00000006.gdbindexes | Bin 0 -> 318 bytes .../ToolData/ToolData.gdb/a00000006.gdbtable | Bin 0 -> 263 bytes .../ToolData/ToolData.gdb/a00000006.gdbtablx | Bin 0 -> 5152 bytes .../a00000007.CatRelTypesByBackwardLabel.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByDestItemTypeID.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByForwardLabel.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByName.atx | Bin 0 -> 4118 bytes ...00000007.CatRelTypesByOriginItemTypeID.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByUUID.atx | Bin 0 -> 4118 bytes .../ToolData.gdb/a00000007.gdbindexes | Bin 0 -> 602 bytes .../ToolData/ToolData.gdb/a00000007.gdbtable | Bin 0 -> 2504 bytes .../ToolData/ToolData.gdb/a00000007.gdbtablx | Bin 0 -> 5152 bytes .../ToolData.gdb/a00000009.gdbindexes | Bin 0 -> 124 bytes .../ToolData/ToolData.gdb/a00000009.gdbtable | Bin 0 -> 182011 bytes .../ToolData/ToolData.gdb/a00000009.gdbtablx | Bin 0 -> 25632 bytes .../ToolData/ToolData.gdb/a00000009.spx | Bin 0 -> 45078 bytes .../ToolData/ToolData.gdb/gdb | Bin 0 -> 4 bytes .../ToolData/ToolData.gdb/timestamps | Bin 0 -> 400 bytes ArcGIS/ENVI.tbx | Bin 0 -> 6144 bytes ...ssion_gsp_vs_GS_on the go_displacement.cal | Bin 0 -> 166 bytes ...ion_gsp_vs_GS_on the go_displacement_Y.cal | Bin 0 -> 166 bytes ArcGIS/FocalStatisticsWeighted.py | 20 + ArcGIS/Herramientas.tbx | Bin 0 -> 1350656 bytes ArcGIS/NDVI.cal | Bin 0 -> 68 bytes ArcGIS/NDVI_NIR_RED.cal | Bin 0 -> 60 bytes ArcGIS/NDVI_float.exp | 2 + ArcGIS/Replace.cal | Bin 0 -> 86 bytes ArcGIS/Split_delimited_field.cal | Bin 0 -> 44 bytes ArcGIS/ZonalStats_hyper - bandas auto.py | 327 ++++++++ ArcGIS/addFieldb1-b250.py | 29 + ArcGIS/addLayerToView.txt | 9 + ArcGIS/celsius.cal | Bin 0 -> 56 bytes ArcGIS/createFolderIfNotExists.py | 17 + ArcGIS/data_handler.py | 764 ++++++++++++++++++ ArcGIS/deleteExnameRellenoOrEmpty.exp | Bin 0 -> 70 bytes ...leteExnameRellenoVorobeyBorlaugOrEmpty.exp | Bin 0 -> 156 bytes ArcGIS/descriptiveStatistics_manyColumns.R | 137 ++++ ArcGIS/descriptiveStatistics_protein.R | 92 +++ ArcGIS/extract-hyper-masking.py | 325 ++++++++ ArcGIS/extractOneBandToGDBFeature.py | 122 +++ ArcGIS/extract_data_multi6bandas.py | 180 +++++ ArcGIS/extract_multiband_raster.py | 325 ++++++++ ArcGIS/field_check.py | 73 ++ ArcGIS/getLayerPath.py | 8 + ArcGIS/in not null.exp | Bin 0 -> 50 bytes ArcGIS/iterate_raster_band_list.py | 44 + ArcGIS/joinZonalStats_hyper_BW - fijo.py | 134 +++ ArcGIS/joinZonalStats_hyper_BW - fijo1.py | 167 ++++ ArcGIS/joinZonalStats_hyper_BW - fijo2.py | 167 ++++ ArcGIS/joinZonalStats_hyper_BW.py | 193 +++++ ArcGIS/joinZonalStats_hyper_BWspr.py | 193 +++++ ...nalStats_hyper_PA - bandas auto - copia.py | 262 ++++++ .../joinZonalStats_hyper_PA - bandas auto.py | 325 ++++++++ ...A - bandas auto_NameFieldwithbuffername.py | 333 ++++++++ ...yper_PA - bandas auto_createSaveFeature.py | 327 ++++++++ ArcGIS/joinZonalStats_hyper_PA.py | 215 +++++ ArcGIS/joinZonalStats_hyper_unaTirada_BW.py | 80 ++ ...oinZonalStats_thermal_createSaveFeature.py | 204 +++++ ArcGIS/kelvin x 100 a celsius.exp | 2 + ArcGIS/legacy.tbx | Bin 0 -> 11810304 bytes ArcGIS/ndvi_hyper_spr.cal | Bin 0 -> 54 bytes ArcGIS/paste_plot_and_exname_AF.cal | Bin 0 -> 46 bytes ArcGIS/plots.pdf | Bin 0 -> 3448 bytes ArcGIS/raster symbology min-max.py | 26 + ArcGIS/read_band_names_from_header.py | 72 ++ ArcGIS/read_band_names_from_header_1.py | 115 +++ ArcGIS/replace_py.cal | Bin 0 -> 62 bytes ArcGIS/script_pruebas.py | 82 ++ ArcGIS/select no relleno y calor.exp | Bin 0 -> 360 bytes ArcGIS/select relleno and demo name.exp | Bin 0 -> 302 bytes ArcGIS/select relleno id.exp | Bin 0 -> 42 bytes ArcGIS/select relleno name.exp | Bin 0 -> 254 bytes ArcGIS/select relleno y calor.exp | Bin 0 -> 348 bytes ArcGIS/select relleno.exp | Bin 0 -> 82 bytes ArcGIS/select_slashes_in_name_field.exp | Bin 0 -> 38 bytes ArcGIS/sobelHorizontalKernel-9x9.txt | 10 + ArcGIS/sobelHorizontalKernel-modif.txt | 4 + ArcGIS/sobelHorizontalKernel.txt | 4 + ArcGIS/split python text to float.exp | 12 + ArcGIS/split python.cal.exp | Bin 0 -> 42 bytes ArcGIS/split_field_python.cal | Bin 0 -> 42 bytes ArcGIS/sselect like.exp | Bin 0 -> 38 bytes ArcGIS/stackCVStoXLSX.R | 24 + ArcGIS/timeSeries_joinData.R | 79 ++ ArcGIS/truncateName.py | 15 + ...zonalStatsMultibandCSVInputsSelectFiles.py | 441 ++++++++++ ArcGIS/zonalStatsMultiband_inFolder.py | 443 ++++++++++ ArcGIS/zonalStatsTablesAutoInputsCSV.py | 402 +++++++++ .../zonalStatsTablesAutoInputsCSV_AguaFria.py | 410 ++++++++++ ArcGIS/zonalStatsTablesAutoInputsCSV_GS.py | 413 ++++++++++ .../zonalStatsTablesAutoInputsCSV_sam_ad.py | 413 ++++++++++ .../zonalStatsTablesAutoInputsCSV_stars_ad.py | 412 ++++++++++ ArcGIS/zonalStatsTables_MultibandImage .py | 351 ++++++++ ArcGIS/zonalStats_bsqMultibandImage.py | 475 +++++++++++ ENVI/ENVIProgramGenerator.sav | Bin 0 -> 455320 bytes ENVI/G.exp | 4 + ENVI/GM1.exp | 3 + ENVI/MCARI1.exp | 10 + ENVI/MCARI2.exp | 11 + ENVI/MSR.exp | 9 + ENVI/MTVI1.exp | 12 + ENVI/MTVI2.exp | 13 + ENVI/NDVI.exp | 6 + ENVI/OSAVI.exp | 8 + ENVI/PSSRa.exp | 5 + ENVI/RDVI.exp | 7 + ENVI/TVI.exp | 2 + ENVI/batch_subset.pro | 14 + ENVI/kelvin2celsius.pro | 35 + ENVI/ndvi_float.exp | 2 + ENVIMaskRasters.pro | 72 ++ Excel_VBAmodule_getAllSheetNames.txt | 15 + Pix4D/Pix4d_ComandLine.bat | 19 + TileLayerPugin_GoogleTiles_test.tsv | 1 + WindowsShell/Replace-0By-1.cmd | 3 + WindowsShell/StackMCAAutopanoOutput.cmd | 4 + WindowsShell/ToASCII.cmd | 3 + .../makeHardlinkOfFileInCompass710folder.bat | 11 + WindowsShell/makeJunctionInDropbox.bat | 6 + WindowsShell/remove_thisJunction.bat | 7 + batch_subset.pro | 14 + batch_subset.pro.crdownload | 0 excel insert rows macro.txt | 19 + excel table to one row formula.txt | 3 + kelvin2celsius.pro | 35 + python/autopanoFile_replace-0By-1frames.py | 32 + .../createFolderIfDoesntExists_hardcoded.py | 26 + python/csv2txt_space_delimited_HEADERSCMD.py | 33 + python/polygonbisector2wayfc.py | 264 ++++++ python/pycharm/.idea/misc.xml | 14 + python/pycharm/.idea/modules.xml | 8 + python/pycharm/.idea/pycharm.iml | 11 + python/pycharm/.idea/workspace.xml | 389 +++++++++ python/pycharm/calendario.html | 0 python/pycharm/dataManager.xml | 212 +++++ python/pycharm/dataManager.xsl | 34 + python/pycharm/loadCalendar.php | 24 + python/replaceCerosByOneMultispecPano.py | 33 + python/stackMCAPairImagesFolder.py | 47 ++ r/.Rhistory | 512 ++++++++++++ r/EM38cleaning.R | 118 +++ ...ct_pixel_values_from_raster_firstEdition.R | 80 ++ ...bands_separateBandsIntoIndividualRasters.R | 61 ++ r/NDVIFromMCA-6Images.R | 42 + r/Plant_height_code.R | 143 ++++ r/Plant_height_code_Obregon.R | 152 ++++ r/ScatterPlotsGS_Y16-17.R | 86 ++ r/VIs_Calculation.R | 313 +++++++ r/VIs_Calculation_Multispec4C.R | 134 +++ r/applyNiblackFilteronImage.R | 11 + r/arrangeAFextractedData2017DBF.R | 94 +++ r/arrangeBWtables.R | 94 +++ r/arrangeBWtables2017.R | 94 +++ r/arrangeSTARStables.R | 101 +++ r/arrangeVItables.R | 73 ++ r/commandine_test.R | 17 + r/cropTiffsInsideFolder.R | 53 ++ r/descriptiveStatistics_manyColumns.R | 137 ++++ r/descriptiveStatistics_protein.R | 92 +++ r/excel_to_row_column_CSV.R | 25 + r/exercises_data_frames.R | 230 ++++++ r/extract/AF_extract_with_mask2016.R | 155 ++++ .../AF_extract_with_mask2016_test_Dataframe.R | 230 ++++++ r/extract/extract_data2017.R | 153 ++++ r/formulas_maiz_sas.txt | 52 ++ r/functions_ImgProcessing.R | 26 + r/getCeptometerDataFromExcel.R | 104 +++ r/getDataFromDB.R | 25 + r/global.R | 2 + r/greenseeker/2_juntar_lecturas_v0.R | 32 + .../AF_230_mapa_norte_arriba.csv | 12 + .../orden_de_muestreo_GS_230.csv | 12 + r/greenseeker/methods_greenseeker.R | 86 ++ r/greenseeker/ordenar_lecturas_v0.R | 56 ++ r/greenseeker/ordenar_lecturas_v0.Rmd | 18 + r/histogramPlots.R | 86 ++ r/hyper_divedeBy10000.R | 64 ++ r/io_methods.R | 58 ++ r/kelvin100toCelsiusInsideFolder.R | 74 ++ r/kelvinx100toCelsius.R | 82 ++ r/learning R spatial analysis.R | 14 + r/list_files.R | 6 + ...lStatisticsOneBandOneExperimentManyDates.R | 74 ++ r/moisture/.Rhistory | 512 ++++++++++++ .../171020_getMoistureSamplingDataFromExcel.R | 101 +++ ...stureSamplingDataFromExcel_710comparison.R | 115 +++ ...ngDataFromExcel_trial521_graficasHumedad.R | 219 +++++ ...etMoistureSamplingDataFromExcel_trial200.R | 166 ++++ ...etMoistureSamplingDataFromExcel_trial521.R | 109 +++ ...DataFromExcel_trialAE521_graficasHumedad.R | 270 +++++++ r/moisture/methods_formating.R | 9 + r/moisture/methods_moisture.R | 198 +++++ r/ongoning.R | 24 + r/outliers_multiple_files_dbf_files.R | 19 + r/readExcel.R | 13 + r/server.R | 101 +++ r/shiny_exampleApp/data/counties.rds | Bin 0 -> 60810 bytes r/shiny_exampleApp/helpers.R | 42 + .../shinyapps.io/nutrs/shiny_exampleapp.dcf | 8 + r/shiny_exampleApp/server.R | 31 + r/shiny_exampleApp/ui.R | 53 ++ .../www/circles in a circle Kandinsky.jpg | Bin 0 -> 2887 bytes r/shiny_extractApp/data/AE_vuelos.csv | 211 +++++ r/shiny_extractApp/helpers.R | 35 + .../shinyapps.io/nutrs/shiny_exampleapp.dcf | 8 + r/shiny_extractApp/server.R | 75 ++ r/shiny_extractApp/ui.R | 31 + .../www/circles in a circle Kandinsky.jpg | Bin 0 -> 2887 bytes r/shiny_importData/global.R | 3 + r/shiny_importData/notas.txt | 1 + r/shiny_importData/server.R | 101 +++ r/shiny_importData/ui.R | 70 ++ r/shiny_listFiles/data/AE_vuelos.csv | 211 +++++ r/shiny_listFiles/helpers.R | 35 + .../shinyapps.io/nutrs/shiny_exampleapp.dcf | 8 + r/shiny_listFiles/server.R | 75 ++ r/shiny_listFiles/ui.R | 0 .../www/circles in a circle Kandinsky.jpg | Bin 0 -> 2887 bytes r/shiny_output_test.csv | 1 + r/stackBandsSequoia.R | 67 ++ r/stackCVStoXLSX.R | 24 + r/stackMCAbandsAsExportedFromAutopano.R | 39 + r/stackMCAbandsAsExportedFromAutopanoFolder.R | 47 ++ r/stackMCAbandsAsExportedFromAutopano_cmd.R | 53 ++ r/substract_raster.R | 58 ++ r/summarizeGreenseekrReadings.R | 51 ++ r/tests_generate_matix_agreggate.R | 9 + r/timeSeries_joinData.R | 79 ++ r/ui.R | 70 ++ regex_example.txt | 2 + share/Toolbox.tbx | Bin 0 -> 132608 bytes ...03\261o de la muestra representativa.xlsx" | Bin 0 -> 14969 bytes test.pro | 24 + 307 files changed, 18615 insertions(+) create mode 100644 ArcGIS/##Arcpy on Python Console ArcMAP.py create mode 100644 ArcGIS/Batch_zonal_stats.py create mode 100644 ArcGIS/CalculateNDVIandNiblackFromHyperIterate.py create mode 100644 ArcGIS/ChooseFieldValue/ChooseFieldValueToolbox.tbx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000001.TablesByName.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000001.freelist create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000001.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000001.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000001.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000002.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000002.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000003.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000003.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000003.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000004.CatItemsByPhysicalName.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000004.CatItemsByType.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000004.FDO_UUID.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000004.freelist create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000004.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000004.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000004.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000004.spx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.CatItemTypesByName.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.CatItemTypesByParentTypeID.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.CatItemTypesByUUID.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.CatRelsByDestinationID.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.CatRelsByOriginID.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.CatRelsByType.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.FDO_UUID.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.freelist create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByBackwardLabel.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByDestItemTypeID.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByForwardLabel.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByName.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByOriginItemTypeID.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByUUID.atx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/gdb create mode 100644 ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/timestamps create mode 100644 ArcGIS/ChooseFieldValue/Script/DynamicValueList.py create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000001.TablesByName.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000001.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000001.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000001.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000002.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000002.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000003.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000003.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000003.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.CatItemsByPhysicalName.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.CatItemsByType.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.FDO_UUID.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.spx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.CatItemTypesByName.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.CatItemTypesByParentTypeID.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.CatItemTypesByUUID.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.CatRelsByDestinationID.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.CatRelsByOriginID.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.CatRelsByType.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.FDO_UUID.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByBackwardLabel.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByDestItemTypeID.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByForwardLabel.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByName.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByOriginItemTypeID.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByUUID.atx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000009.gdbindexes create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000009.gdbtable create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000009.gdbtablx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000009.spx create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/gdb create mode 100644 ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/timestamps create mode 100644 ArcGIS/ENVI.tbx create mode 100644 ArcGIS/Expression_gsp_vs_GS_on the go_displacement.cal create mode 100644 ArcGIS/Expression_gsp_vs_GS_on the go_displacement_Y.cal create mode 100644 ArcGIS/FocalStatisticsWeighted.py create mode 100644 ArcGIS/Herramientas.tbx create mode 100644 ArcGIS/NDVI.cal create mode 100644 ArcGIS/NDVI_NIR_RED.cal create mode 100644 ArcGIS/NDVI_float.exp create mode 100644 ArcGIS/Replace.cal create mode 100644 ArcGIS/Split_delimited_field.cal create mode 100644 ArcGIS/ZonalStats_hyper - bandas auto.py create mode 100644 ArcGIS/addFieldb1-b250.py create mode 100644 ArcGIS/addLayerToView.txt create mode 100644 ArcGIS/celsius.cal create mode 100644 ArcGIS/createFolderIfNotExists.py create mode 100644 ArcGIS/data_handler.py create mode 100644 ArcGIS/deleteExnameRellenoOrEmpty.exp create mode 100644 ArcGIS/deleteExnameRellenoVorobeyBorlaugOrEmpty.exp create mode 100644 ArcGIS/descriptiveStatistics_manyColumns.R create mode 100644 ArcGIS/descriptiveStatistics_protein.R create mode 100644 ArcGIS/extract-hyper-masking.py create mode 100644 ArcGIS/extractOneBandToGDBFeature.py create mode 100644 ArcGIS/extract_data_multi6bandas.py create mode 100644 ArcGIS/extract_multiband_raster.py create mode 100644 ArcGIS/field_check.py create mode 100644 ArcGIS/getLayerPath.py create mode 100644 ArcGIS/in not null.exp create mode 100644 ArcGIS/iterate_raster_band_list.py create mode 100644 ArcGIS/joinZonalStats_hyper_BW - fijo.py create mode 100644 ArcGIS/joinZonalStats_hyper_BW - fijo1.py create mode 100644 ArcGIS/joinZonalStats_hyper_BW - fijo2.py create mode 100644 ArcGIS/joinZonalStats_hyper_BW.py create mode 100644 ArcGIS/joinZonalStats_hyper_BWspr.py create mode 100644 ArcGIS/joinZonalStats_hyper_PA - bandas auto - copia.py create mode 100644 ArcGIS/joinZonalStats_hyper_PA - bandas auto.py create mode 100644 ArcGIS/joinZonalStats_hyper_PA - bandas auto_NameFieldwithbuffername.py create mode 100644 ArcGIS/joinZonalStats_hyper_PA - bandas auto_createSaveFeature.py create mode 100644 ArcGIS/joinZonalStats_hyper_PA.py create mode 100644 ArcGIS/joinZonalStats_hyper_unaTirada_BW.py create mode 100644 ArcGIS/joinZonalStats_thermal_createSaveFeature.py create mode 100644 ArcGIS/kelvin x 100 a celsius.exp create mode 100644 ArcGIS/legacy.tbx create mode 100644 ArcGIS/ndvi_hyper_spr.cal create mode 100644 ArcGIS/paste_plot_and_exname_AF.cal create mode 100644 ArcGIS/plots.pdf create mode 100644 ArcGIS/raster symbology min-max.py create mode 100644 ArcGIS/read_band_names_from_header.py create mode 100644 ArcGIS/read_band_names_from_header_1.py create mode 100644 ArcGIS/replace_py.cal create mode 100644 ArcGIS/script_pruebas.py create mode 100644 ArcGIS/select no relleno y calor.exp create mode 100644 ArcGIS/select relleno and demo name.exp create mode 100644 ArcGIS/select relleno id.exp create mode 100644 ArcGIS/select relleno name.exp create mode 100644 ArcGIS/select relleno y calor.exp create mode 100644 ArcGIS/select relleno.exp create mode 100644 ArcGIS/select_slashes_in_name_field.exp create mode 100644 ArcGIS/sobelHorizontalKernel-9x9.txt create mode 100644 ArcGIS/sobelHorizontalKernel-modif.txt create mode 100644 ArcGIS/sobelHorizontalKernel.txt create mode 100644 ArcGIS/split python text to float.exp create mode 100644 ArcGIS/split python.cal.exp create mode 100644 ArcGIS/split_field_python.cal create mode 100644 ArcGIS/sselect like.exp create mode 100644 ArcGIS/stackCVStoXLSX.R create mode 100644 ArcGIS/timeSeries_joinData.R create mode 100644 ArcGIS/truncateName.py create mode 100644 ArcGIS/zonalStatsMultibandCSVInputsSelectFiles.py create mode 100644 ArcGIS/zonalStatsMultiband_inFolder.py create mode 100644 ArcGIS/zonalStatsTablesAutoInputsCSV.py create mode 100644 ArcGIS/zonalStatsTablesAutoInputsCSV_AguaFria.py create mode 100644 ArcGIS/zonalStatsTablesAutoInputsCSV_GS.py create mode 100644 ArcGIS/zonalStatsTablesAutoInputsCSV_sam_ad.py create mode 100644 ArcGIS/zonalStatsTablesAutoInputsCSV_stars_ad.py create mode 100644 ArcGIS/zonalStatsTables_MultibandImage .py create mode 100644 ArcGIS/zonalStats_bsqMultibandImage.py create mode 100644 ENVI/ENVIProgramGenerator.sav create mode 100644 ENVI/G.exp create mode 100644 ENVI/GM1.exp create mode 100644 ENVI/MCARI1.exp create mode 100644 ENVI/MCARI2.exp create mode 100644 ENVI/MSR.exp create mode 100644 ENVI/MTVI1.exp create mode 100644 ENVI/MTVI2.exp create mode 100644 ENVI/NDVI.exp create mode 100644 ENVI/OSAVI.exp create mode 100644 ENVI/PSSRa.exp create mode 100644 ENVI/RDVI.exp create mode 100644 ENVI/TVI.exp create mode 100644 ENVI/batch_subset.pro create mode 100644 ENVI/kelvin2celsius.pro create mode 100644 ENVI/ndvi_float.exp create mode 100644 ENVIMaskRasters.pro create mode 100644 Excel_VBAmodule_getAllSheetNames.txt create mode 100644 Pix4D/Pix4d_ComandLine.bat create mode 100644 TileLayerPugin_GoogleTiles_test.tsv create mode 100644 WindowsShell/Replace-0By-1.cmd create mode 100644 WindowsShell/StackMCAAutopanoOutput.cmd create mode 100644 WindowsShell/ToASCII.cmd create mode 100644 WindowsShell/makeHardlinkOfFileInCompass710folder.bat create mode 100644 WindowsShell/makeJunctionInDropbox.bat create mode 100644 WindowsShell/remove_thisJunction.bat create mode 100644 batch_subset.pro create mode 100644 batch_subset.pro.crdownload create mode 100644 excel insert rows macro.txt create mode 100644 excel table to one row formula.txt create mode 100644 kelvin2celsius.pro create mode 100644 python/autopanoFile_replace-0By-1frames.py create mode 100644 python/createFolderIfDoesntExists_hardcoded.py create mode 100644 python/csv2txt_space_delimited_HEADERSCMD.py create mode 100644 python/polygonbisector2wayfc.py create mode 100644 python/pycharm/.idea/misc.xml create mode 100644 python/pycharm/.idea/modules.xml create mode 100644 python/pycharm/.idea/pycharm.iml create mode 100644 python/pycharm/.idea/workspace.xml create mode 100644 python/pycharm/calendario.html create mode 100644 python/pycharm/dataManager.xml create mode 100644 python/pycharm/dataManager.xsl create mode 100644 python/pycharm/loadCalendar.php create mode 100644 python/replaceCerosByOneMultispecPano.py create mode 100644 python/stackMCAPairImagesFolder.py create mode 100644 r/.Rhistory create mode 100644 r/EM38cleaning.R create mode 100644 r/JM_Extract_pixel_values_from_raster_firstEdition.R create mode 100644 r/MCAbands_separateBandsIntoIndividualRasters.R create mode 100644 r/NDVIFromMCA-6Images.R create mode 100644 r/Plant_height_code.R create mode 100644 r/Plant_height_code_Obregon.R create mode 100644 r/ScatterPlotsGS_Y16-17.R create mode 100644 r/VIs_Calculation.R create mode 100644 r/VIs_Calculation_Multispec4C.R create mode 100644 r/applyNiblackFilteronImage.R create mode 100644 r/arrangeAFextractedData2017DBF.R create mode 100644 r/arrangeBWtables.R create mode 100644 r/arrangeBWtables2017.R create mode 100644 r/arrangeSTARStables.R create mode 100644 r/arrangeVItables.R create mode 100644 r/commandine_test.R create mode 100644 r/cropTiffsInsideFolder.R create mode 100644 r/descriptiveStatistics_manyColumns.R create mode 100644 r/descriptiveStatistics_protein.R create mode 100644 r/excel_to_row_column_CSV.R create mode 100644 r/exercises_data_frames.R create mode 100644 r/extract/AF_extract_with_mask2016.R create mode 100644 r/extract/AF_extract_with_mask2016_test_Dataframe.R create mode 100644 r/extract/extract_data2017.R create mode 100644 r/formulas_maiz_sas.txt create mode 100644 r/functions_ImgProcessing.R create mode 100644 r/getCeptometerDataFromExcel.R create mode 100644 r/getDataFromDB.R create mode 100644 r/global.R create mode 100644 r/greenseeker/2_juntar_lecturas_v0.R create mode 100644 r/greenseeker/ejemplos_archivos_entrada/AF_230_mapa_norte_arriba.csv create mode 100644 r/greenseeker/ejemplos_archivos_entrada/orden_de_muestreo_GS_230.csv create mode 100644 r/greenseeker/methods_greenseeker.R create mode 100644 r/greenseeker/ordenar_lecturas_v0.R create mode 100644 r/greenseeker/ordenar_lecturas_v0.Rmd create mode 100644 r/histogramPlots.R create mode 100644 r/hyper_divedeBy10000.R create mode 100644 r/io_methods.R create mode 100644 r/kelvin100toCelsiusInsideFolder.R create mode 100644 r/kelvinx100toCelsius.R create mode 100644 r/learning R spatial analysis.R create mode 100644 r/list_files.R create mode 100644 r/mergeZonalStatisticsOneBandOneExperimentManyDates.R create mode 100644 r/moisture/.Rhistory create mode 100644 r/moisture/171020_getMoistureSamplingDataFromExcel.R create mode 100644 r/moisture/171020_getMoistureSamplingDataFromExcel_710comparison.R create mode 100644 r/moisture/171020_getMoistureSamplingDataFromExcel_trial521_graficasHumedad.R create mode 100644 r/moisture/180528_getMoistureSamplingDataFromExcel_trial200.R create mode 100644 r/moisture/archive/171020_getMoistureSamplingDataFromExcel_trial521.R create mode 100644 r/moisture/archive/171031_getMoistureSamplingDataFromExcel_trialAE521_graficasHumedad.R create mode 100644 r/moisture/methods_formating.R create mode 100644 r/moisture/methods_moisture.R create mode 100644 r/ongoning.R create mode 100644 r/outliers_multiple_files_dbf_files.R create mode 100644 r/readExcel.R create mode 100644 r/server.R create mode 100644 r/shiny_exampleApp/data/counties.rds create mode 100644 r/shiny_exampleApp/helpers.R create mode 100644 r/shiny_exampleApp/rsconnect/shinyapps.io/nutrs/shiny_exampleapp.dcf create mode 100644 r/shiny_exampleApp/server.R create mode 100644 r/shiny_exampleApp/ui.R create mode 100644 r/shiny_exampleApp/www/circles in a circle Kandinsky.jpg create mode 100644 r/shiny_extractApp/data/AE_vuelos.csv create mode 100644 r/shiny_extractApp/helpers.R create mode 100644 r/shiny_extractApp/rsconnect/shinyapps.io/nutrs/shiny_exampleapp.dcf create mode 100644 r/shiny_extractApp/server.R create mode 100644 r/shiny_extractApp/ui.R create mode 100644 r/shiny_extractApp/www/circles in a circle Kandinsky.jpg create mode 100644 r/shiny_importData/global.R create mode 100644 r/shiny_importData/notas.txt create mode 100644 r/shiny_importData/server.R create mode 100644 r/shiny_importData/ui.R create mode 100644 r/shiny_listFiles/data/AE_vuelos.csv create mode 100644 r/shiny_listFiles/helpers.R create mode 100644 r/shiny_listFiles/rsconnect/shinyapps.io/nutrs/shiny_exampleapp.dcf create mode 100644 r/shiny_listFiles/server.R create mode 100644 r/shiny_listFiles/ui.R create mode 100644 r/shiny_listFiles/www/circles in a circle Kandinsky.jpg create mode 100644 r/shiny_output_test.csv create mode 100644 r/stackBandsSequoia.R create mode 100644 r/stackCVStoXLSX.R create mode 100644 r/stackMCAbandsAsExportedFromAutopano.R create mode 100644 r/stackMCAbandsAsExportedFromAutopanoFolder.R create mode 100644 r/stackMCAbandsAsExportedFromAutopano_cmd.R create mode 100644 r/substract_raster.R create mode 100644 r/summarizeGreenseekrReadings.R create mode 100644 r/tests_generate_matix_agreggate.R create mode 100644 r/timeSeries_joinData.R create mode 100644 r/ui.R create mode 100644 regex_example.txt create mode 100644 share/Toolbox.tbx create mode 100644 "tama\303\261o de la muestra representativa.xlsx" create mode 100644 test.pro diff --git a/ArcGIS/##Arcpy on Python Console ArcMAP.py b/ArcGIS/##Arcpy on Python Console ArcMAP.py new file mode 100644 index 0000000..79335cc --- /dev/null +++ b/ArcGIS/##Arcpy on Python Console ArcMAP.py @@ -0,0 +1,89 @@ +##Arcpy on Python Console ArcMAP +#################### CHANGE SYMBOLOGY############### +import arcpy, sys + +try: + symbologyLayer = arcpy.mapping.Layer(sys.argv[1]) +except: + arcpy.AddError("Input parameters could not be resolved") + sys.exit(-1) + +arcpy.AddMessage("Source Layer is %s" % symbologyLayer.symbologyType) + +# Exit if the source layer is broken +if symbologyLayer.isBroken: + arcpy.AddError("Source layer is broken") + sys.exit(-2) + +# Exit if the source layer is not a raster layer +if not symbologyLayer.isRasterLayer: + arcpy.AddError("Source layer is not a raster layer") + sys.exit(-3) +mxd = arcpy.mapping.MapDocument("Current") # This MXD + +#df = arcpy.mapping.ListDataFrames(mxd,"Georgia")[0] # the first data frame called Georgia +df = arcpy.mapping.ListDataFrames(mxd)[0] # Just the first data frame in the MXD +rasters = arcpy.mapping.ListLayers(mxd,"*",df) # all the layers + +for ThisLayer in rasters: + arcpy.AddMessage( "Working on " + ThisLayer.name) + if not ThisLayer.isBroken: # only try to work with layers that aren't broken + arcpy.AddMessage( "-not broken") + if not ThisLayer.name.upper() == symbologyLayer.name.upper(): + arcpy.AddMessage( "-not the source layer") + # not the source layer + if ThisLayer.isRasterLayer: + arcpy.AddMessage( "-is a raster layer") + # only applies to raster layers + arcpy.CalculateStatistics_management(ThisLayer.dataSource) + arcpy.AddMessage( "--Statistics calculated") + arcpy.AddMessage( "--Raster symbology is %s" % ThisLayer.symbologyType) + arcpy.ApplySymbologyFromLayer_management(ThisLayer,symbologyLayer) + arcpy.AddMessage( "--Symbology Applied") + +#mxd.save() # I'm not saving, uncomment this to save +del mxd + + +############################ TURN ON AND OFF########################## + +l1 = arcpy.mapping.Layer(r'h160303\h160303bgsort.bsq') # Get layer by its name (belongs to group) +#l1.longName # This will give the name including the group + +#A list of layer names that you want to be turned off. +names = [x,y,z,etc] + +mxd = arcpy.mapping.MapDocument("current") +df = arcpy.mapping.ListDataFrames(, mxd, "Layers")[0] #Get the 1st dataframe called "Layers" +layers = arcpy.mapping.ListLayers(mxd, "*", df) + +for layer in layers: + if layer.name in names: + layer.visible = False + +arcpy.RefreshTOC() +arcpy.RefreshActiveView() + +###################turn off layer in group layer h160303? +#lyr.isGroupLayer == 1 +mxd = arcpy.mapping.MapDocument("current") +df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] #Get the 1st dataframe called "Layers" +groupLayer = arcpy.mapping.Layer(r'h160303') # fixed the name of the group layer +for i in arcpy.mapping.ListLayers(groupLayer): print (i) ## Print layers in group layer, INCLUDES THE layer group itself +for i in arcpy.mapping.ListLayers(groupLayer): i.visible = True ## Turn Off layers in group layer +>>> arcpy.RefreshTOC() # Refresh Layers Panel + +## Calsulate statistics and apply symbology from layer on all layer of group layer + +layerRef = arcpy.mapping.Layer("h160303bgsort.bsq") #Layer to use as symbology, hardcoded +groupLayer = arcpy.mapping.Layer(r'h160303') # fixed the name of the group layer +for i in arcpy.mapping.ListLayers(groupLayer): + if not i.isGroupLayer: + if not i.name.upper() == layerRef.name.upper(): #If its not the reference layer + if i.isRasterLayer: #apply only to rasters + arcpy.CalculateStatistics_management(i.dataSource,"1","1","0") + arcpy.ApplySymbologyFromLayer_management(i,layerRef) + i.visible = False #Uncheck visibility +arcpy.RefreshTOC() #Apply the layer state update: visibility +arcpy.RefreshActiveView() + diff --git a/ArcGIS/Batch_zonal_stats.py b/ArcGIS/Batch_zonal_stats.py new file mode 100644 index 0000000..8e0d421 --- /dev/null +++ b/ArcGIS/Batch_zonal_stats.py @@ -0,0 +1,193 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy + +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + #workspace + + bwPath = "D:\\AB2013-2014\\Bread_wheat" + bwVectoresPath = bwPath + "\\" + "vectores" + bwDataPath = bwPath + "\\" + "data" + bwGdbPath = bwPath + "\\" + "AB_BreadWheat.gdb" + tempGdb = "C:\\vuelos\\temp.gdb" + arcpy.env.workspace = bwPath + + #List of band names + bandNames = ["392.03027","393.87228","395.71426","397.55627","399.39830","401.24026","403.08228","404.92430","406.76627","408.60828","410.45030","412.29227","414.13428","415.97630","417.81827","419.66028","421.50230","423.34427","425.18628","427.02830","428.87027","430.71228","432.55430","434.39627","436.23828","438.08030","439.92227","441.76428","443.60630","445.44827","447.29028","449.13230","450.97427","452.81628","454.65826","456.50027","458.34230","460.18427","462.02628","463.86830","465.71027","467.55228","469.39430","471.23627","473.07828","474.92030","476.76227","478.60428","480.44630","482.28827","484.13028","485.97230","487.81427","489.65628","491.49830","493.34027","495.18228","497.02430","498.86627","500.70828","502.55030","504.39227","506.23428","508.07626","509.91827","511.76028","513.60230","515.44430","517.28625","519.12830","520.97030","522.81226","524.65430","526.49630","528.33826","530.18030","532.02230","533.86426","535.70630","537.54830","539.39026","541.23230","543.07430","544.91626","546.75830","548.60030","550.44226","552.28430","554.12630","555.96826","557.81030","559.65230","561.49426","563.33630","565.17830","567.02026","568.86230","570.70430","572.54626","574.38830","576.23030","578.07227","579.91430","581.75630","583.59827","585.44030","587.28230","589.12427","590.96630","592.80830","594.65027","596.49225","598.33430","600.17630","602.01825","603.86030","605.70230","607.54425","609.38630","611.22830","613.07025","614.91230","616.75430","618.59625","620.43830","622.28030","624.12225","625.96430","627.80630","629.64825","631.49030","633.33230","635.17426","637.01630","638.85830","640.70026","642.54230","644.38430","646.22626","648.06830","649.91030","651.75226","653.59430","655.43630","657.27826","659.12030","660.96230","662.80426","664.64630","666.48830","668.33026","670.17230","672.01430","673.85626","675.69830","677.54030","679.38226","681.22430","683.06630","684.90826","686.75030","688.59230","690.43427","692.27630","694.11830","695.96027","697.80230","699.64430","701.48627","703.32830","705.17030","707.01227","708.85430","710.69630","712.53827","714.38025","716.22230","718.06430","719.90625","721.74830","723.59030","725.43225","727.27430","729.11630","730.95825","732.80030","734.64230","736.48425","738.32630","740.16830","742.01025","743.85230","745.69430","747.53625","749.37830","751.22030","753.06226","754.90430","756.74630","758.58826","760.43030","762.27230","764.11426","765.95630","767.79830","769.64026","771.48230","773.32430","775.16626","777.00830","778.85030","780.69226","782.53430","784.37630","786.21826","788.06030","789.90230","791.74426","793.58630","795.42830","797.27026","799.11230","800.95430","802.79626","804.63830","806.48030","808.32227","810.16430","812.00630","813.84827","815.69030","817.53230","819.37427","821.21630","823.05830","824.90027","826.74225","828.58430","830.42630","832.26825","834.11030","835.95230","837.79425","839.63630","841.47830","843.32025","845.16230","847.00430","848.84625","850.68830"] + #Short list of band names for test + #bandNames = ["392.03027","393.87228"] #Testing purpose + + + # Load required toolboxes + print "Start!" + #Type: Feature layer + bf_Lx_1 = arcpy.GetParameterAsText(0) + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + + #Type: Feature layer + # Script arguments + bf_Lx_2 = arcpy.GetParameterAsText(1) + #bf_Lx_2 = bwVectoresPath + "\\" + "EYTBWMEL\\H\\H140117_EYTBWMEL_bf_L3.shp" # provide a default value if unspecified + arcpy.AddMessage("read b2 " + bf_Lx_2) + print bf_Lx_2 + + #Type: Feature layer + # Script arguments + bf_Lx_3 = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read b3 " + bf_Lx_2) + print bf_Lx_3 + + #type: Feature layer + Grid = arcpy.GetParameterAsText(3) + #gridName = "H140117_BW" + #Grid = bwGdbPath + "\\" + gridName + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + "\\" + Grid + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + + print Grid + + #type: Raster layer + Raster = arcpy.GetParameterAsText(4) + #Raster = "E:\\140117\\140117H\\ortho\\140117_3_810.bsq" # provide a default value if unspecified + #Raster = "c:\\vuelos\\140117_3_810.bsq" + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #Folder to store the tables with the bands + #type: Geodatabase + #tablesPath = arcpy.GetParameterAsText(5) + tablesPath = tempGdb + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = "Name" + gridLayer = "gridLayer" + #Line + line = bf_Lx_1[-2:] + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + #Where to store the merge feature + print "Where to store the merge feature" + L_merge = tempGdb + "\\l_merge" + arcpy.AddMessage("merge path: " + L_merge) + if arcpy.Exists(L_merge): + arcpy.Delete_management(L_merge) + + #List of features to merge + mergeList = "" + + # Process: Merge + arcpy.AddMessage("Merging") + print "merging..." + if bf_Lx_1 != '#': + mergeList += bf_Lx_1 + if bf_Lx_2 != '#': + mergeList += ";"+bf_Lx_2 + if bf_Lx_3 != '#': + mergeList += ";"+bf_Lx_3 + arcpy.AddMessage("merge List: " + str(mergeList)) + m = arcpy.Merge_management(mergeList, L_merge) + arcpy.AddMessage(m) + + i=1 + for b in bandNames: + band = Raster + "\\" + b + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + line + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + +## # Process: Join Field +## print "Joining Field..." +## arcpy.AddMessage("Joining Field...") +## arcpy.JoinField_management(gridLayer, Zone_field_and_join_Field, L_Stats_table, Zone_field_and_join_Field, "MEAN") + + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + #arcpy.Delete_management(zs) + i+=1 + + #Erase merge file + arcpy.AddMessage("delete merge temp") + arcpy.Delete_management(L_merge) + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + print "Line %i" % tb.tb_lineno + arcpy.AddMessage("Error " + e.message) + print e.message + print "OMG!" + + diff --git a/ArcGIS/CalculateNDVIandNiblackFromHyperIterate.py b/ArcGIS/CalculateNDVIandNiblackFromHyperIterate.py new file mode 100644 index 0000000..786568a --- /dev/null +++ b/ArcGIS/CalculateNDVIandNiblackFromHyperIterate.py @@ -0,0 +1,104 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# CalculateNDVIandNiblackFromHyperIterate.py +# Created on: 2015-08-31 23:45:21.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: CalculateNDVIandNiblackFromHyperIterate +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import arcpy, os + +# Check out any necessary licenses +arcpy.CheckOutExtension("spatial") + +#Method to truncate string +def getBasename(inputName, fromChar, toChar): + subsetName = inputName[fromChar:int(toChar)] + arcpy.AddMessage("Truncated name: "+subsetName) + return subsetName + +def upLevel(locationpath): + #Up one level the path + folderUp = "\\".join(locationpath.split("\\")[0:-1]) + folderUp.replace("\\", "\\\\") + return folderUp + +def checkFolder(folderPath): +#Create folder if it doesnt exists + folderPath.replace("\\", "\\\\") + if not os.path.exists(folderPath): + os.makedirs(folderPath) + +# Script arguments +raster = arcpy.GetParameterAsText(0) + +truncate_charsEnd = arcpy.GetParameterAsText(1) +if truncate_charsEnd == '#' or not truncate_charsEnd: + truncate_charsEnd = "-3" # provide a default value if unspecified + +# Process: Parse Path +desc = arcpy.Describe(raster) +name = desc.name +arcpy.AddMessage("name: "+name) +path = desc.path +arcpy.AddMessage("path: "+path) +folderUp = upLevel(path) +saveFolder = folderUp+"\\mask" +checkFolder(saveFolder) #Check if exists + +# Process: truncateString to get basename +basename = getBasename(name,0,truncate_charsEnd) + +ndvi = arcpy.GetParameterAsText(7) +if ndvi == '#' or not ndvi: + ndvi = saveFolder+"\\"+basename+"nvi.tif" # provide the automatic value unless other is indicated + +NIR_wl = arcpy.GetParameterAsText(2) +if NIR_wl == '#' or not NIR_wl: + NIR_wl = "802.79626" # provide a default value if unspecified + +RED_wl = arcpy.GetParameterAsText(3) +if RED_wl == '#' or not RED_wl: + RED_wl = "670.17230" # provide a default value if unspecified + +niblack = arcpy.GetParameterAsText(4) +if niblack == '#' or not niblack: + niblack = saveFolder+"\\"+basename+"msk.tif" # provide the automatic value unless other is indicated + +Dark_background = arcpy.GetParameterAsText(5) +if Dark_background == '#' or not Dark_background: + Dark_background = "true" # provide a default value if unspecified + +Neighborhood = arcpy.GetParameterAsText(6) +if Neighborhood == '#' or not Neighborhood: + Neighborhood = "Rectangle 3 3 CELL" # provide a default value if unspecified + + + +# Local variables: +focalSTD = "C:\Users\usuario\Documents\ArcGIS\Default.gdb\std" +focalMEAN = "C:\Users\usuario\Documents\ArcGIS\Default.gdb\mean" + +#Assign names + +NIR_path = raster+"\\"+NIR_wl +RED_path = raster+"\\"+RED_wl + + +# Process: Raster Calculator +arcpy.gp.RasterCalculator_sa("Float((Float(\""+NIR_path+"\") - Float(\""+RED_path+"\"))/(Float(\""+NIR_path+"\") + Float(\""+RED_path+"\")))", ndvi) + +# Process: Focal MEAN 3x3 +arcpy.gp.FocalStatistics_sa(ndvi, focalMEAN, Neighborhood, "MEAN", "DATA") + +# Process: Focal STD 3x3 +arcpy.gp.FocalStatistics_sa(ndvi, focalSTD, Neighborhood, "STD", "DATA") + +# Process: calculate Nib +#######REEEROOR +arcpy.gp.RasterCalculator_sa("Con("+Dark_background+" == true,Con(\"Float("+ndvi+")\">(\"Float("+focalMEAN+")\" +(0.2 * \"Float("+focalSTD+")\")),1,0),Con(\"Float("+ndvi+")\">(\"Float("+focalMEAN+")\" +(Float(-0.2) * \"Float("+focalSTD+")\")),1,0))", niblack) +#Delete temporals +arcpy.Delete_management(FocalSTD) +arcpy.Delete_management(FocalMEAN) diff --git a/ArcGIS/ChooseFieldValue/ChooseFieldValueToolbox.tbx b/ArcGIS/ChooseFieldValue/ChooseFieldValueToolbox.tbx new file mode 100644 index 0000000000000000000000000000000000000000..a1b1b21550c0abbcd459882428416e842ed3145a GIT binary patch literal 182272 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%0Dr8FpJ^Xm9B?pi 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 SGFGsb;rN=`%lDg?z<&XVUH=IH literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000001.TablesByName.atx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000001.TablesByName.atx new file mode 100644 index 0000000000000000000000000000000000000000..903bb00c289e1808b6fd438c74ee1a1105080d78 GIT binary patch literal 4118 zcmeH~TMC0P6hz0qm*LJzAJztJD>eOaH(hGyHb_w@Ed-1ob7f+JD2L;XAOLI_s~NLm z*35!gGInjwWK3+8IAV|Od-QnViURqBj*id4lk9>!#|k^H9B!m-aOSM$ISuu{d>$<+ zi_tlUe5pKrdpkqERGxnES>M&{Jck3juVU|&i8`)N+WBip7j}iw8SQEGUh9*E)rYSo qPuRm|&`-o-?Dtdm%YY2XfDFih49I{C$Uv-tXP)s97W>P$viS=sZgj-} literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000001.freelist b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000001.freelist new file mode 100644 index 0000000000000000000000000000000000000000..5083bc7588f10fe96386a490c834d3e1a460dc28 GIT binary patch literal 4440 zcmeI#u?@f=3+A6V#Sp8X literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000001.gdbindexes b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000001.gdbindexes new file mode 100644 index 0000000000000000000000000000000000000000..b02aa7510589a8e036faa03406cf6d841029f368 GIT binary patch literal 110 zcmZQ#U|?VaVmAgC27iWl22UW(z#ss`|Nk=rNhTnMi17efAqfSRn@5A`pL&I6(p8pHiTcAcrPMP~uD_VRF7aIrCCxI)iF2T&S)pE?DKxejmT}J%IJJ2f6GHabZwfZx2~gq{wM=r|9^Km#gJLeEZt2$FZn{OYP#?p#$tP@MGzE;)?x*%RO(UvmgF|qU@j@i23o&_*lcRxl1Oe3TmLHm zLUDGz45-@G?(cbFbR=n*Ums}HOEel9l$%K$&$;QzM}>Y>d~kZ^;(qZ}0| zf)hm?@0_6!0wGG_n87NLz1)?Mfetwticx~DkO!aw{xbLn_AOq*2$+6tjj^Hn7V$QH zGa&e!?2)fjiD(=yW=x4f7RJepDwlZ{Cs&IiWJ#VK@)}l|L;X~BRh?irFdTQPk`132 zC;Jj+cY>WMCho-&vaRRow}Q^+GTF=3>voLe(T1q(i7w;PL;vrIevD<`1up7 d#t@@L5hmHZnn&^&deh3Zrex9C4e5?Le*@b_qKyCm literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000002.gdbtablx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000002.gdbtablx new file mode 100644 index 0000000000000000000000000000000000000000..3b29c4cc17857b8867cb64ae21f928a8032b80f4 GIT binary patch literal 5152 zcmeI$u?d4v6h`4|R7ji7IukfR$Pji~WfZ{)1P4g#5SbuNAm9Y{St0i=jL3z;Rg+OcX+@EFW8|yB|WUL!L>{Vc)}MhRdRy`K5*u>4kqwezycPq efCVgI0Sj2b0v51<1uS3z3s}Gc#}wdek8%EWBMbxp literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000003.gdbindexes b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000003.gdbindexes new file mode 100644 index 0000000000000000000000000000000000000000..58df68d525b47a895d5876a8bf5f437a90afc3f0 GIT binary patch literal 42 mcmZQ%U|?VaVmAgC27iWl22UW(z#ss`|Nk=rNhTnMhyegseFSR& literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000003.gdbtable b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000003.gdbtable new file mode 100644 index 0000000000000000000000000000000000000000..ba207ab6753ad0c64d2f30d282ca35481231a332 GIT binary patch literal 1057 zcmbtSzi-n}5WXaBsDOdL0Ess-7|TE6Bwh+u>>5`%Hnsz8qR4WS*VM?k$T4E=z`(-5 z#>mRV#Kw@S5(6Xu10w?x5|zln*>RL8q;$ZN@80|Fd-vXbcNG9A<9`FqCi?kzYh$*$ zT>$6kbEpJx9m)o%0M(6h)ddGU&|nWO61Fl^-GKli7z0HZDqEY&$o>quvIqOnffzza zk-5t17D)FW9JAnE6yiq|oFL|uYh`@ZH_hT0+J=XD=?L*0;u|$d6l6i-Ww|Ee(Y!Y&hm)Cql>3vHtdj4aoX_xA zXZKe3ufKnM_v`ayd;0#zSM$KWJNMZT!1PnacC6j3(6*vxMT))>9nfS4uUx6Es3!;a``yItkFf_IsU(NK}oG$t>qb3yGM$*qt1$>n3|_KJ+c!- zW9nXd#5vTFR>}UGYB2na*Vy&QPqqY_nc>zgcZs{8c zK7v7iCuEwK#?HNb19Ruh?%d1nx7FF5*}G6xzf<;?s-7IBqYxlKfB*pk1PBlyK!5-N z0&^#@kTdH1|3TW#YjbycPKW>j0t5&UAV7cs0RjXF5QxB))Xx9cawA~*Fr5xw-A=HT z;NeR4ZzouJdO4dE0t5&UAV7cs0RjXF5FkKck^-I9cmDr2iT=)ddiOF3U}N)A)sFrhfjb20RjXF5FkK+009C7 zE)>Xv{?q*b*UhRoz5f3s!R*e3V{IfrfB*pk1PBlyK!5-N0tBWh&?$dE|9||x>S#5c zN1yZYJ$3fA>cywb2>6*`ZznejcE44$eBQ79QwR_sK!5-N z0t5&UAV7csfw>bH`G2ng=#v}mV&dL6>exQop8VhY`i?=zWBX|Pe+9aB>2X(6d+hbI X{up<@?ez#_O+v!Ie)s(N|F!=I$0^KN literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000004.gdbindexes b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000004.gdbindexes new file mode 100644 index 0000000000000000000000000000000000000000..a4f334d7ba2a29501d0c354bfa511e177f638ce0 GIT binary patch literal 310 zcmZ{g!3x4K5CuoEpdjMO4^k1lsGvPd6+y*9!Cw0Hbz&`1q=&bVx0$z_B*0j$ShD4) zPTaY0rev)LQ&rbJ>rnmoN4hP&=SoH)4+8~(OVoEK6eWDtb^RSWo63ES7toeSo8PJF)92>_q`Xu-zKjB literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000004.gdbtable b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000004.gdbtable new file mode 100644 index 0000000000000000000000000000000000000000..204a31992a1744de015984b2c1d980da4fc523c8 GIT binary patch literal 325048 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 D7A^ox literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.CatItemTypesByName.atx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.CatItemTypesByName.atx new file mode 100644 index 0000000000000000000000000000000000000000..f29a48dd9f09c3ae5e4cb9dbcaa1883e96186fff GIT binary patch literal 12310 zcmeI2S#Q%&5QV4g`@U~A{1cQC;GqaL5j;0(1QBUc*(sEN!%yWqwj-;S`x2?S^Dwqf zeDBTT<1;gNnHw{+EpP!`1m}4SY-~SmVu!YGOPf;5Y^N;mTS5Dhddl-WpFMs%6bJ=E zflwe62n9lcP#_ct1ww&PAQVWcfY$uaY64g5@&m4q!Cj#DuY)__AyBU1GPn(HfDAkW zFTfS>1}K+s6FddCz)NrqytfhS{H5ir`Nv#`Tt_xz<)3oZ-`u-b=OSjdupe;pl$#LC z9=r}v>wxk%xX$dj)NY4%-_AOvi67e z+~X9UKgDkqsqNX;CY9>G*J*ylIRf-yw%KlOqs zZP|72*k5Lmy~d$+ypDU|9e4}2!6ontyarFeb8sK5dkjj?`HkoNEk`JMw~w9w%9{r8 zn!Ec~LgVQTzjja7d?sbdTRx|)#SqWSIn!rK+RUo@kdZTO2B(|Xs&z=;uNCZw*AsWW ze?~rW!TduEmA_LTrRuulPJAyE2n9lcP#_ct1ww&P Rpi$sownard_F3Ji`hNi{(BJ?7 literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.CatItemTypesByParentTypeID.atx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.CatItemTypesByParentTypeID.atx new file mode 100644 index 0000000000000000000000000000000000000000..b6902fbf1f8f3d4f0e76195590d4a4468ef38664 GIT binary patch literal 4118 zcmeI#$8Ll$5C-5)@4fd;4!MowhCMzS+w)S0ch66>x#YB$M2XfTeSpNsz%Rh^Y&M&{ z!Bj`E2J5f^Td)JWZ~(_}0;g~W*Kh-O@CZ-v3e$L-un&iD3AZqZ3wVHYxQA`ngJ*bw zD_G?k)S_tGf7^VW8wbNB#mbRHSdlBf5J%(5)oOa}wGW}Ru9n1Kcqc+IxD90~S|#K{ zS145{)N>3D$Km(8M2d>pFi8#ge^t{_ wR3TFmuAI7>JF(*`&jan*TLLYCmOx9OCD0OR3H($7@1HCFY1KbpTw*%@01^{0$p8QV literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.CatItemTypesByUUID.atx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.CatItemTypesByUUID.atx new file mode 100644 index 0000000000000000000000000000000000000000..faff695cd69a761ec7fea34f42813fb4fc2eb7db GIT binary patch literal 4118 zcmeHK+pZfo3_MNSB)uo;{gO8AL*58TB1KYdn}SO!!`W$ z^z`%(a9uwF&w;Oizkxr2FMv;gZ-LK%pMXz+cfc>eH^6tm8{li;2jCg-8}KXe7w`gj z30!r42Hpan1FwNs!1utHz#qWxz{h;unrDpdgU<0nlA7eBDaqb#R;_B5_Z#=Ar5+>c zYm>w|6giE|N=tSgv$p$9c1m>Lq^%y3B21%i9N5d5A^ohm?zcXNYFDE(9S3G^8tjv% zOg3rUd7vV`r)q%{Rtyq}Mqb*W9DSa~R%DL*&5E&k87R>f`YPb>)~Kz$cA(Nc0Tx^J zP^CB%XH9pC-YczhqQtIETLDWho}k2t+Nrc3W*1lkh#g6 zm#yZruX(Yob|^#F6eQd_xf%Gaq+l-D#lW%#sjr^7Krib_vE|V8VdY3WJmg|oJJ0}fbgH&TRIXsT%^i%!!%=Zu$4qhRr9kg0eRjX!TuP5jbd$%?O~Z^Q7V%k; z=!w}CEM+_OGHzjh@k=>4Ky^)T?vs}?Sc}!+J4J2C#4`A(?6k&G**f;{bH4=_T%J^5 z2)fsxkq37g$J+?bgXCbe0zn5MBMsdv(~MoH@;+ykk!h%i3~Jb}bYLx19gAG>qI;|+ zUSSKgUu_`L@E8rEua4ASu2A*e>)w!QLe-_lXG3;tSMCe+^3F(3vEDNsRiVVnqI2kdF{!^kq=hmsiTo zM{8{Z=>yBPmv#mX>u{(q#aWF>Gi#JuYzmT-!==?dDZ4{2L)jq?ub7Ku@mdbL&snDq z3*tGEiFRr4SR{oCAxmQ?R8815bqjKTrI2T06;G$r8hg)mO21}YV;?*Ws0Nl&dO+1! zNnAL3!&9Inc6%$AhV3S)3Wo$z&CTHN+6Uf>S}^0m&hpkn+82`0tB`Z;v^Eb^jO2N- z9BN`0sli)h0@dhbTnfm;XF>qb^dg{nc|bd0W}}-3 X@&j&lgxu%{v>_L00|Nu98xi6F*S08% literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.gdbtable b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.gdbtable new file mode 100644 index 0000000000000000000000000000000000000000..9462a37fda04666295f2996d5ca8d6999092e1c2 GIT binary patch literal 1803 zcmZWp3rtg27`~L!f&%4bT->r1(Z_Cq=izZ8B=px4zMEJbHUpEmL8h(}**Uaz+2JOq_x7CcJOB58 z|9_4@K@ib!d<;hb9KL6<*z*i zQekjDK@luO&=8>|stF7Ho=3t(p$aaV;RGQ(KEH1g{4H&%;D-8}KI|*_(Y@%Qlx*(4 zA73|T&TE#cemP4SYQq(PF$118>PZ#gs~EOC8L}Rp6b%-;yJQVrbXV-2!Wx_vp#dg} zH!?K0(`X@OCW_-wFn?)6m84^v;*9#j5lQCEVVo8&xAB1HAdk$Vc!~o&G9uNQQdyGR zpW__1t=|=Y?i#*}SPNK|GSVo*uY)BniR)|Gz~9p`cGsUp3nJtgIi7*pP$n{uV#@*h zE@VCP8%((&pUXXczDh8<_gI8(dHe0iwY0+FT>0eEx5l(k4aM<*C1p^Qi7~8(6dZyF z3dzuMJWJ_$Eu}L7B&|u{9P1X8D%$ppZ=xbPDsV=4p?)VYL)Y}ayK`j#k@!;f_Q(pz znffcWQP@_RUE?RNDpJ1K9up7?=AaMOiTBDcVE!C5FhAYXMbIwldV@3pP&*}b{*{U1hD#)*Tt z$_N=#0!qk_D3cYC9)&0wW}|K9Du|NrU2-GMet+~V?wlx_F_i!owTCgeuJ_6gz4GGE zkxyoW9&mUyLh>nA4@_h>rGrh6YK?1;@47i>c^RiVw5$I>%l7YQ#9mhuAa+z!QCT__ zC)>wohGZL5Vw@YOWh@Ll5Y?z`e=KjfS3ef1INTsh%nJ;Aii0KICh{4JI4P4gw#Hnw z@={Lz;?Ahzt+;%N_r&=)D&m(z@;LtO$=2^r{%|Ky=e7$CZt3&*ZJ2 zy!P9hkA?^E5(H}~+Tb%E<&67*n;)nF9Aky1#zOF&+6OPu4SLijOID;NpV|t7$#ytu7+`BLH`|9vP84V$8RWht(`_#Y6Dw{};;U BwyyvH literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.gdbtablx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000005.gdbtablx new file mode 100644 index 0000000000000000000000000000000000000000..eb28629f3405f9fbb8824b46c1e3de5bcc080328 GIT binary patch literal 5152 zcmeI$p$)=797gej7G?lsMH4n)0aQ~-!USwU=meM!zyK)102qSm0M%G*MH3d_|5iZ1 zOTM2uamkaHrIaSIA~uViW9bQBSaY|77G5wyISuyE!UINFW2CFS?^+dlJsr& E1w8}=9{>OV literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.CatRelsByOriginID.atx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.CatRelsByOriginID.atx new file mode 100644 index 0000000000000000000000000000000000000000..66203347e88904751e50149a7b583b991d9e4090 GIT binary patch literal 4118 zcmeIu!3_W)5CX7s8TTL0AIci0BqV(4j1V9|fB*pk1PBlyK!5-N0>2CFS?^+dlJsr& E1w8}=9{>OV literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.CatRelsByType.atx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.CatRelsByType.atx new file mode 100644 index 0000000000000000000000000000000000000000..66203347e88904751e50149a7b583b991d9e4090 GIT binary patch literal 4118 zcmeIu!3_W)5CX7s8TTL0AIci0BqV(4j1V9|fB*pk1PBlyK!5-N0>2CFS?^+dlJsr& E1w8}=9{>OV literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.FDO_UUID.atx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.FDO_UUID.atx new file mode 100644 index 0000000000000000000000000000000000000000..66203347e88904751e50149a7b583b991d9e4090 GIT binary patch literal 4118 zcmeIu!3_W)5CX7s8TTL0AIci0BqV(4j1V9|fB*pk1PBlyK!5-N0>2CFS?^+dlJsr& E1w8}=9{>OV literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.freelist b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.freelist new file mode 100644 index 0000000000000000000000000000000000000000..1193bd58cb5cbca6cc1935e686aa1dde8d85473c GIT binary patch literal 4440 zcmeI#u?+wq3DTE@|QIeK3T&E8~009ILKmY**5I_I{1Q0*~ Yf%gQ;E9L*6WV^2B?#$liy7#~JH~&biUjP6A literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.gdbindexes b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.gdbindexes new file mode 100644 index 0000000000000000000000000000000000000000..c608a88be082bd48fb5821f6bacf48df11c2495d GIT binary patch literal 318 zcmZvXu?oUK6a+_6v526JAEZG@C5Wj-MI<6B#>TIYbHordSM0&E0hSPkN`?ZUAOn!YiA_c6dB_o3D6JnrX#RVZTlOA2O`w@TRQ(SaIix$r|Tf?lOL>FFZdE@+knjN<0Jr literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.gdbtablx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000006.gdbtablx new file mode 100644 index 0000000000000000000000000000000000000000..44a726c89bcb9dcc730c2582b0877981bb6f1802 GIT binary patch literal 5152 zcmeI$!3h8$5Cg#z5$wNWlQv`m+rT`tXJ)0FPBH=n2oNAZfB*pk1PBlyK!5-N0tEgR I=pWd+2WjH~6aWAK literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByBackwardLabel.atx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByBackwardLabel.atx new file mode 100644 index 0000000000000000000000000000000000000000..ad3415103c5c89c35ea4f9fc91125386769d40e1 GIT binary patch literal 4118 zcmeI0Yfghe6opTHzh5h0FKuf4qek68i>Sm}8j3OQ#-;k*8Brlt5|aWZFgY+Yh4S@W z?r>8{IzhJWphL8Qw$LuJ&(_c;>Y;VCk5QTUM7q zmr$jSD}-(K;ntkU`c>u>{zOmgGtM(V1D(6k3-hTS885R{@s(NXj`4rz^ZX$Zoe;+% z@gIN2d6{v|zq`u6w(}KNn*3MQcdYX7Yo%_6w2JSBCoiS>`ldeL@;g=YC9H~8$t1ex zt(RX{*U?8U#U-oktP=F^vSRfYs1Ko4f3|Yh*%sB+-F)Xj=RoJcUmSP~dR%78{{^uA EJGC1lO8@`> literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByDestItemTypeID.atx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByDestItemTypeID.atx new file mode 100644 index 0000000000000000000000000000000000000000..79412a823369f9cb3ab6303bcbc68a25af37cdf8 GIT binary patch literal 4118 zcmeI0v2I-<3_xGfG;NZ$N&6AqEP-u|84ZS?y1M^fze?GoEXjbSBOzo2K4yW-<#PEG zT;neI7JLt$gX{cFa2xyxeg-eWeee`~3BCrug5SYI@EGiPzkvhQtxavPmL^~q2W=?8 zb7IeurB**bZB|W{s-^~7Z~$8(XcG}|%rUL>)|Z{fXU$Sh#oP<1F9k-dpvwl(8s;-f zBbD<|p}O*nzKq1cDgwrAkVjWk?KFhW!ze|lLyE$Iml!l(F%nyf&Bzy?$M7V5P=~6` zfk(+;7FotpTgI+U%3HHsr6gPpS}k$_}5qd>o34{{145$p`QQ% literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByForwardLabel.atx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByForwardLabel.atx new file mode 100644 index 0000000000000000000000000000000000000000..d94c8dd88b0ef628ac6600e3902b06b06e7e2bf1 GIT binary patch literal 4118 zcmeI0TS~(~7==&0*1L8EvzLnCgH)^=u(nDdCZ(+p?#8A1omQzBDkKkPgvszVlc7To z=RflkDoH)?)rB)Sf<4%VT{wk(ID{QI0PpF*797I~oWlidy80?rXrTvX+~*3qWbWs= zCfq~I<3H*v_44Uw+wKKb{kx{B6BM?u%?hs2;=H|T#>{&2W%iuJJ65L4b!Tyv(gitn zV*g704QdK_Mu9cmGasSRT4NZo>l;wN4ENk!f(Cku!nJkfZmFk}=X5!ZCAA&%Jc~r_ z>I~%g_lQ!T+%d}H>Cs8wI!jGvLpq%6n(>)4-l*=+GyPkSZ1S6R_9T6E+^T*z`B(L% m&dQJzQPBHh>UrPwZ+fpz>&b!SKysjo1Mi{3HuLo_faf2Wa}VbL literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByName.atx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByName.atx new file mode 100644 index 0000000000000000000000000000000000000000..8c06fbd3e9ab31b98b15697dcd3454616b7c3eed GIT binary patch literal 4118 zcmeI0+fKqj5QYcO=hGAPT_hN9)M#G-u`01pvtSHwe`E`*HGUYK<0Mce#gn9VYO z|C!lo5D~codYyvU`Wb-&*w`UpNlG}G#{eAn%W>$BZ@P2FiPPdwKf zDpA>MXFFeyci#TS>*OPfo>lxTo6RU&#qR+v9i5V)Y7hH)u42p#SMf_>=D0(3#$>gO zRn4#9B-GQopnqpk>TSs^SUn#v1>7w2Sb|lJSFuc))jchs zUz739ykkZ+XREeauT-C!$`U1y)FAyKa8rWOSAj}v?^#-e(c}KKRJcmP-JqE`uuO#( zNT3n5ms)Iao<5p0)-@o+v!m5?&z>_96^`PyY<=8!z8_k;L1p%=RT-SBz+BW^q6dwf t@gJt1|COJe$G|ag3>*W;z%g(P90SL|G4MYO{Q7glzi#<|{{mdkzX7l%pg{lt literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByUUID.atx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.CatRelTypesByUUID.atx new file mode 100644 index 0000000000000000000000000000000000000000..bacfea13c86eb23e3e82b0de1ff33cfb8ef94bfd GIT binary patch literal 4118 zcmeI0ORnW03`Af5|KCOQ%o4^1%+SWLsjIv9uKT3kz?<|WNF@gOonrXH z<*Fl2Ws!Bi@z}*YgK7wq=1Q`YNqJhG+w7Ri{nlF6gPXL12kDkdZVR)~CU49*H(Vy( z!kwfwyo-I4xf?NC8$6GgO}H}4Vn2A7BK4Eb}SFJ+pAm7>d#U8Q@Vq9q9U zVMHH`v_CRB7m~G9qpUs|715Pz9|fTp8Etj4+9$Cnu*un-$NlEq1uRgkhm)!r*(jaT zJa&y5rGi&T4QpMf#Oz>?inA`IVqL5Fp0n5cZLMlzkCv1{A~AC-NXw{FgvZ(Ce#=s8 zZV_yBfNIr6W^t$mM~~S?B=#{278#*fs4RJ;39AlxCmSX{s)0S&tLA3ulIj{0Uq-eEl9l)@8wnelmHhfSvslCKT4%fW-MP=X_q|P^Ejie@ ztR;^lJA7iMszFamlA7Kv>GywM)d?H<7g`sv6;HpM-C2SERT9zjtKJvR}JS&t08k_L_S#SGPiCL9r)!ePG0*D9U1?~$V}3j97Y|{!pQLtkhIaFoW`FiA{#qz_b#$mCU)k{d*|MB@AsW^ zzH@c}01U_H4n6_+cz@@EJYO+nLEYD=-+lmr5NLrcSP2|hK>-E~00TAtnhePB7=tHk zhFU-Z9_+ZFpkFSeLq6o;m)l!)FrXp3kN54MF$0U|IK22tNzc0K}3-^bS^*86lYyb2&xg zt!7SHD@v=Pmgcbv&pI6WIuk3fc23rj13LGK39qw~!drRt!YxM7^<1DMHvm+sybfm0 zU6wlQXhKEpuwv&YbISR+4SUb5urduD;eR{{YLjVRV|;lbjFod3*({{iAE$9NC(mJ> z=QKd6%IA(@*S)x|;ft$kUNJYeH7=m>Hv{bL3|?ue?l#sH?wtQHGL6fVIGGa^%!epg zY`ytK`s76C>pHr}8G0l z!~QJaeIsVW(_B;eWb^G~tbM)Kz$&cFDHa>v?BJ~|v4;~=K^(F)j=XiEO=YDz_u2&% zn<^P&Mb)rjXHyFKa7)|5yV~_noNG7jZLt(ivQ}$z; z@!hM%H(HKeITBFRwfTj_t%nz0Xde_;63i%EE+ZI4M>Z#g=tZmsFQD#lHJn%&Jj&4H z;fEcCD2I+@N@+94G6%M2JbKAK@nbrnv^|o9B&Tr>HDBpDlDOKQ6J(KiJ1^)gwxI@2 zR(Qd!1T+DAQH6QnYW;cUVSPh#r1?oOhG)yRg@x~L@6A#&lcoq`El0`pQqk=sc zQ@^?3R;=-0SbXE+U_N5Y{vXXzS^C$u-!BerNP2RL7LnFhD~v$wK18FXYe!s3HV@Q? zg=9~=n{?vvv@`1-hR4%k()LhKEqbEF+p&vCg)n=e`W)VYo#C!2+J2Cu26(fgLpx*2 zCDYcnTWPz?y7YAR?mw7aqN%i{>{}H1Wz42{Yp6lYMKLe}$y4aFY`Qo4OeVla6)Wsm zS@V$5FD9P;tNh=#h|8TVY0fpa`;+vgN@9r7ZXQGrhmpOTpApiURu@HND>$m>qreqb#}+X&T^zIA!H{>l=yX znv;?_cK>u*4c?iED)aoG5fwbwQ)8d?lsYDSoc-Wk6}$EE4;k8~Saa>UV>@WY%by>RS9C-S>U{1`%C_{m%)<2=KG^hmy%N2&`fq>k+OiMNCRIo0UfvV7E_u|_e8EbBW(3tBT^p=^dxu9P ztw8r?Pk*~Be%^U8|N4o9gsO-yW-o|d`4x>sr#^z9T5P>2^fgw9AGWxzHz$Dq06bl) A7ytkO literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.gdbtablx b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/a00000007.gdbtablx new file mode 100644 index 0000000000000000000000000000000000000000..fc19a86ddc83ef39eb268d17828de80e6196d715 GIT binary patch literal 5152 zcmeI$y%9h_07T*QPh>_5ijW%((104Wp%GO`q;hm3wcCZ@-ORq33oiM>OF{^d)@Yel z`?5J*tQ=0CD7(|9%Idt%;unuIpGlsoc(3DI5e4KmY**5I_I{1Q0*~0R#|0 P009IL_=A9d|2&@$vq=fe literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/gdb b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/gdb new file mode 100644 index 0000000000000000000000000000000000000000..a786e127004dd9e94e88fda7742d248237ad8885 GIT binary patch literal 4 LcmZQ&U|;|M02lxU literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/timestamps b/ArcGIS/ChooseFieldValue/Scratch/Scratch.gdb/timestamps new file mode 100644 index 0000000000000000000000000000000000000000..473cfe0aff91d36a870cbcd3b96160e1b40f8983 GIT binary patch literal 400 kcmezW|NnnZ1_lNo^&dzvv;eUI5QD_nffyt{3g{OC0J_h2WdHyG literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/Script/DynamicValueList.py b/ArcGIS/ChooseFieldValue/Script/DynamicValueList.py new file mode 100644 index 0000000..0fdae32 --- /dev/null +++ b/ArcGIS/ChooseFieldValue/Script/DynamicValueList.py @@ -0,0 +1,9 @@ +# Import system modules +import arcpy + +# Set the parameters +InputFeatureClass = arcpy.GetParameterAsText(0) +InputField = arcpy.GetParameterAsText(1) +InputValue = arcpy.GetParameterAsText(2) + +arcpy.SetParameter(3, InputValue) \ No newline at end of file diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000001.TablesByName.atx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000001.TablesByName.atx new file mode 100644 index 0000000000000000000000000000000000000000..180b625b0e10b6da3c29e622f7804a7780a454dd GIT binary patch literal 4118 zcmeH~-3o$05QUHZ_ZGfcXl=GoDQOqJjgQ(Hm!((;0>Ry2Mvm)V2p^v_3j)BNk&<=6 zY?v*xV%E%#SuzeE!PUp(mx8oipT1rSHCd-&meJPq=!2(svCz&yG_p(_AGnC!Vh*otuh+ zltO!+z1Ko_vVZgS9U6hy~13Kmp+f-YS96)tK~1aVQjm!MGt(G*)3{*9mNBwAMn1}^8^I|%_a znK@Hus+ZJ0)9eeJ7j7mG5v-8_4H1YfB(6}DFTW8jp~j{_gwSXuFM6c>$BjLFDhcrhOrJbw literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000001.gdbtablx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000001.gdbtablx new file mode 100644 index 0000000000000000000000000000000000000000..3d6f920bbf82725a7a359819071aa1ea475639f6 GIT binary patch literal 5152 zcmeI$F%5uF5JbTvgaQS)Ko~mkfDAOC0wwg^7Kk93pX{rCHRX*}HT34*)Z2QsCr5H7 pS8^v$vgH4ocmxO#AV7cs0RjXF5FkK+009C72>ebUr@imI_W~9`1swnY literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000002.gdbtable b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000002.gdbtable new file mode 100644 index 0000000000000000000000000000000000000000..0a30d6db6b24478514a1cda60bd918ceff2e8a27 GIT binary patch literal 1456 zcma)6?`zaR5M8;Rt>tP@MGzE;)?x*%RO(UvmgF|qU@j@i23o&_*lcRxl1Oe3TmLHm zLUDGz45-@G?(cbFbR=n*Ums}HOEel9l$%K$&$;QzM}>Y>d~kZ^;(qZ}0| zf)hm?@0_6!0wGG_n87NLz1)?Mfetwticx~DkO!aw{xbLn_AOq*2$+6tjj^Hn7V$QH zGa&e!?2)fjiD(=yW=x4f7RJepDwlZ{Cs&IiWJ#VK@)}l|L;X~BRh?irFdTQPk`132 zC;Jj+cY>WMCho-&vaRRow}Q^+GTF=3>voLe(T1q(i7w;PL;vrIevD<`1up7 d#t@@L5hmHZnn&^&deh3Zrex9C4e5?Le*@b_qKyCm literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000002.gdbtablx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000002.gdbtablx new file mode 100644 index 0000000000000000000000000000000000000000..3b29c4cc17857b8867cb64ae21f928a8032b80f4 GIT binary patch literal 5152 zcmeI$u?d4v6h`4|R7ji7IukfR$Pji~WfZ{)1P4g#5SbuNAm9Y{St0i=jL3z;Rg+OcX+@EFW8|yB|WUL!L>{Vc)}MhRdRy`K5*u>4kqwezycPq efCVgI0Sj2b0v51<1uS3z3s}Gc#}wdek8%EWBMbxp literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000003.gdbindexes b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000003.gdbindexes new file mode 100644 index 0000000000000000000000000000000000000000..58df68d525b47a895d5876a8bf5f437a90afc3f0 GIT binary patch literal 42 mcmZQ%U|?VaVmAgC27iWl22UW(z#ss`|Nk=rNhTnMhyegseFSR& literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000003.gdbtable b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000003.gdbtable new file mode 100644 index 0000000000000000000000000000000000000000..ba207ab6753ad0c64d2f30d282ca35481231a332 GIT binary patch literal 1057 zcmbtSzi-n}5WXaBsDOdL0Ess-7|TE6Bwh+u>>5`%Hnsz8qR4WS*VM?k$T4E=z`(-5 z#>mRV#Kw@S5(6Xu10w?x5|zln*>RL8q;$ZN@80|Fd-vXbcNG9A<9`FqCi?kzYh$*$ zT>$6kbEpJx9m)o%0M(6h)ddGU&|nWO61Fl^-GKli7z0HZDqEY&$o>quvIqOnffzza zk-5t17D)FW9JAnE6yiq|oFL|uYh`@ZH_hT0+J=XD=?L*0;u|$d6l6i-Ww|Ee(Y!Y&hm)Cql>3vHtdj4aoX_xA zXZKe3ufKnM_v`ayd;0#zSM$KWJNMZT!1PnacC6j3(6*vxMT))>9nfS4uUx6Es3!;a``yItkFf_IsU(NK}oG$t>qb3yGM$*qt1$>n3|_KJ+c!- zW9ns2`=8qfNqAzryBtVYp>4Q_q`t~RG{rO zv67kDNkm3&J0}jVMsh!vCbL;`d* zz?nHqE?lW-Fp7Ii{?4I535ddzm6ma@#jlX56bk>gzRvZgqz_FkrOy3V<7l947Q zwMJ2Wq#|C)hSZ|HbvgWX%Qx{T1Rwwb2tWV=5P$##AOHaf{8`}r-S&Ss{#}0n^mQ7^ literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.FDO_UUID.atx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.FDO_UUID.atx new file mode 100644 index 0000000000000000000000000000000000000000..c50449ebf51063f3015ada5a7a303fdc61db2597 GIT binary patch literal 4118 zcmeI#K@P+q2nA4QdY9ReR6vELV!c$;yN^!ND|9ye1cPo2Z$}6rY_nEgv);4r`+D;{ zD{#iDJt0>x+66eNf@n!#J2K+ISgBtpN*g2?0W%wLFCD7p4otZfp#w+b>nu?sn-#D; z4^CA<)9jKAYL&{c!Pm3%`EM@Z0xsYJF5m(#-~uk-0xsYJ{}K57w*IyG-&y?^+G!fd literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.gdbindexes b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.gdbindexes new file mode 100644 index 0000000000000000000000000000000000000000..a4f334d7ba2a29501d0c354bfa511e177f638ce0 GIT binary patch literal 310 zcmZ{g!3x4K5CuoEpdjMO4^k1lsGvPd6+y*9!Cw0Hbz&`1q=&bVx0$z_B*0j$ShD4) zPTaY0rev)LQ&rbJ>rnmoN4hP&=SoH)4+8~(OVoEK6eWDtb^RSWo63ES7toeSo8PJF)92>_q`Xu-zKjB literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.gdbtable b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.gdbtable new file mode 100644 index 0000000000000000000000000000000000000000..aa2b8e792e4b2762eb8a8c71e98e905361102565 GIT binary patch literal 49826 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 M_BT)d?HAAgFUN@0J^%m! literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.gdbtablx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.gdbtablx new file mode 100644 index 0000000000000000000000000000000000000000..ef7e5da02feecf63c294886548ececdb78b499f7 GIT binary patch literal 5152 zcmeI$u?+wr328t5$9N_}N!RgLcKuI|n8WzOyq0t5&UAV7cs0RjXF S5FkK+009C79uvqvFin2h=mEa~ literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.spx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000004.spx new file mode 100644 index 0000000000000000000000000000000000000000..502c7895ce87df2d309b9b3de2f63964cc382de7 GIT binary patch literal 4118 zcmeI$%T0n&6ot`ioR~PU1xv97pI|8pz7;LQ0_{QfI-U|>#3g~1f5OgpAp{sBw*wDj z9M1bZgZUoV+xLLafO*^A3EUlz@AIGEllyknuG@$9v3+Wv+n4sWeQV#_k9O03wqI@b zPcQ!W%j}ogFSB1}zs!D_{WAMy_RH*-*)OwSX1~mSnf+3K@0a>r>!*I|r+(_Ee(I-w z>Zg9{r+(_E{>zy2FZH|DPyN(S{nStW)KC4?PyN(S{nStW^!igj^;19fQ$O`nKlM{T z^;19fQ$O`n|5ema{nStW)KC4?PyN(S{nStW)KC4?PyN(S{nStW)KC4?PyN(S{nStW z)KC4?PyN?XKlM{T^;19fQ$O`nKlM{T^;19fQ$O`nKlM{T^;19fQ$O`nKlM{T^;19f zQ$O|JME%rH{nStW)KC4?PyN(S{nStW)KC4?PyN(S{nStW)KC4?PyN(S{nStW)KC4? zzli#&pZckv`l+A#sh|3(pZckv`l+A#sh|3(pZckv`l+A#sh|3(pZckv`l+A#sec*u zQ$O`nKlM{T^;19fQ$O`nKlM{T^;19fQ$O`nKlM{T^;19fQ$O`nKlM{T^;7?C)KC4? sPyN(S{nStW)KC4?PyN(S{nXFxeUq5aG*4hRCvbG;$AA3+(EkG94|X0s`v3p{ literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.CatItemTypesByName.atx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.CatItemTypesByName.atx new file mode 100644 index 0000000000000000000000000000000000000000..586805116655c97a85902c83b8c1194da2e3d6ab GIT binary patch literal 12310 zcmeI2TTk0S5QQhb-=OqaU;Ot!fcdo7)dKrBs^` z%Pzc*QR|rdZ*ZO3Sp%smW_;f3S11VvH9Hd^r!^Oi9xo z+*G+cBZHN*T_RAGyCQ1TE!E4c$uA}C#IlD^ry+y$L=>yF)7?kBs-8rZ*u1LGehJne z+H?CAne`_)Y5WiuRgcvJW_G|;+{S!fe4lk&pF{SZL}qdMTOXiYfm-QR-b>ESSW7K` zzlKN~5owCM9@emm#LG2b=T8n{G-KwXzB$FQPW+U=Wu`V~TkBM+{aF|Jr51ge9frs& z_s%psDA-M#*eTvlVbT>-=L)z2u7E4x3b+EU TfGbcd@Gt9NXtzJB8fE_nZ{^V7 literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.CatItemTypesByParentTypeID.atx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.CatItemTypesByParentTypeID.atx new file mode 100644 index 0000000000000000000000000000000000000000..440d7638560d024310d054c17c58799b09ec3c08 GIT binary patch literal 4118 zcmeI#$8Ll$5C-5)@4fd;4!MowhCMzS+w)S0ch66>x#YB$M2XfTeSpNsz%Rh^Y&M&{ z!Bpq42Ai-2yKn%9a0JJ21{ZJ%*Kh-m@B(vqg=xGU*n?BJf_r#^4cLcUxPxstfd_bo zby(#Z)S_tGf7^VW8wbNB#mbRHSdlBf5J%(5)oOa}wGW}Ru9n1Kcqc+IxD90~S|#K{ zS145{)N>3D$Km(8M2d>pFi8#ge^t{_ wR3TFmuAI7>JF(*`&jan*TLLYCmOx9OCD0OR3H($7@1HCFY1KbpTw*%@03V+)$p8QV literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.CatItemTypesByUUID.atx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.CatItemTypesByUUID.atx new file mode 100644 index 0000000000000000000000000000000000000000..7c6a7f2aece220788552003f4f5de226eb676950 GIT binary patch literal 4118 zcmeHK+pZfo3_MNSB)uo;{gO8AL*58TB1KYdn}SO!!`W$ z^z`%(a9z)U?|@H$zk%O@=fFGQ2jB(p7w|do3U~{=0e%L40lol!1HK1-1-=3P1il4c z16Q4&fX{%hfIonjz^A~Ez}LW+z{h;unrDpdgU<0nlA7eBDaqb#R;_B5_Z#=Ar5+>c zYm>w|6giE|N=tSgv$p$9c1m>Lq^%y3B21%i9N5d5A^ohm?zcXNYFDE(9S3G^8tjv% zOg3rUd7vV`r)q%{Rtyq}Mqb*W9DSa~R%DL*&5E&k87R>f`YPb>)~Kz$cA(Nc0Tx^J zP^CB%XH9pC-YczhqQtIETLDWho}k2t+Nrc3W*1lkh#g6 zm#yZruX(Yob|^#F6eQd_xf%Gaq+l-D#lW%#sjr^7Krib_vE|V8VdY3WJmg|oJJ0}fbgH&TRIXsT%^i%!!%=Zu$4qhRr9kg0eRjX!TuP5jbd$%?O~Z^Q7V%k; z=!w}CEM+_OGHzjh@k=>4Ky^)T?vs}?Sc}!+J4J2C#4`A(?6k&G**f;{bH4=_T%J^5 z2)fsxkq37g$J+?bgXCbe0zn5MBMsdv(~MoH@;+ykk!h%i3~Jb}bYLx19gAG>qI;|+ zUSSKgUu_`L@E8rEua4ASu2A*e>)w!QLe-_lXG3;tSMCe+^3F(3vEDNsRiVVnqI2kdF{!^kq=hmsiTo zM{8{Z=>yBPmv#mX>u{(q#aWF>Gi#JuYzmT-!==?dDZ4{2L)jq?ub7Ku@mdbL&snDq z3*tGEiFRr4SR{oCAxmQ?R8815bqjKTrI2T06;G$r8hg)mO21}YV;?*Ws0Nl&dO+1! zNnAL3!&9Inc6%$AhV3S)3Wo$z&CTHN+6Uf>S}^0m&hpkn+82`0tB`Z;v^Eb^jO2N- z9BN`0sli)h0@dhbTnfm;XF>qb^dg{nc|bd0W}}-3 X@&j&lgxu%{v>_L00|Nu98xi6F*S08% literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.gdbtable b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.gdbtable new file mode 100644 index 0000000000000000000000000000000000000000..bc15b36522a87ddcf42bc5c5341b3094b443855c GIT binary patch literal 1803 zcmZQ(U|>)J;wT_y1!5TBW{0pepaLLy77&{eM05BvBr#+$q%tHklrVTQxG*rVu`scO zGK4}nTxu*l0St)@ML-pKKoubjl?(+yHdrN4lEn`wnF|zPU|9e*7i3G{(kp)QNzM*a z-?sAaa{aTXbKWhDhX1*~ooarMHYTRmvInIW}@-Xn=PBrF z1zjsjQuB&4^Yav-j?n|^;;bkx&}n7%nx~}m=2i6UUrCA+uLzsuxzAmq^?vukOiNz3 z)Wnj~qErRvoW$Z{kekd)P0Lb@*Ly74S7B45vGp{%z3d^WMMa63dHO)LscHt#vK@c9 z>@)TgotV9l5#3FE!KFoIsg*DXnF6)+GB7ND#gpYf_m|uHrdhV1(2W-XhI&zIacW*k zVhPAEV0UQ(HKGSOda!Z?r55Lx7A2>G0_(}Plso))_BwC*`boL<&WBKRhY5OQ7MJ7~ z0b@5u!8freJGDp!sOwto-QTKS+Z|>}y*YeQT*Vz-7jsBvo)%CY|G(m64MqMAtwsu^ zu{Zv(p{wHz&o9a@E=WvH1w{dRkfW>SbxbNQDN0N(2}w-KNd*P#cgAg|=Uo4Lt=(SE zbh&x95V{F`L5amBsYMFTz(kjmpKbuuQv0W{ynFFw|0dPsx#BMu8lnd)zh7!eInY(G zr~n002h)S>$K5)Bs%@ zKP<&UQ#mNWPTM;E@K7@K-2c)r-m)%G0NwX|zWK$82ycL_d9B!Tv+1g^`;-=E178k- zZy44OlsVRzlT^mnOVqQ8-11NE2 z8aFIH6rb$5>w)n5Kb&`q(S6PvkO<5YISOuxNx;+&3aiEG*Wy;rS>)27c{BQxIm=F5 zi3=LMCO|Fa-{##}EVbOV>#TuQ5YvS_=>8Ulr*{Q-Ap{Cz(^u6MZC?JKyFCK9r-?*I zpgWEqnt)+ptOnF$y@&1W+=@V-Rlk;`Pt@*AMRy)6IG2D5gv&vNWod6!o!d*Cc-_+d z*wJ0Z5t3h!56m8wptPRWRam@peTVnb!1KSj9;zvzD;9K5&Cg9O0fvzRG^c=~BRzFm zbo=jnzLUGRY%Wm_o{O%FC%7^%Spk|-KpK8BrQV2`e#~{Qa_+?i0@WBL2t)%kXaS1@ BwyyvH literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.gdbtablx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000005.gdbtablx new file mode 100644 index 0000000000000000000000000000000000000000..da2b13b07022ff81c736f0151489d5f35ab948b3 GIT binary patch literal 5152 zcmeI$p$)=797gej77|t_h+o1Q0*~0R#|0009IL__M%zU;W?9fAkk*p$RSk literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.CatRelsByOriginID.atx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.CatRelsByOriginID.atx new file mode 100644 index 0000000000000000000000000000000000000000..ba529b4ddfced0c0cc42011c11a02bf6e99ddb17 GIT binary patch literal 4118 zcmeI#Q3`-C2nJxgOmD(+O7l^+P8Hp~Rs`K(1pmOPPs;Zu5z%x-e{X&|{38VRCA^tv zaLuW(nmZR?jcXDW*;FF8W5i~d2>}Q|00Izz00bZa0SG_<0)G~m@2mfN`SqbxrC&7TT(-h5u0Hq1Rwwb2tWV=5P$##AOHaf{8?bWum11l-|G|cPzhTA literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.FDO_UUID.atx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.FDO_UUID.atx new file mode 100644 index 0000000000000000000000000000000000000000..903e1f1376510dd7c694399a63a1ee69f6475888 GIT binary patch literal 4118 zcmeI#K?;B%5QX9CGVO#!iCk*VTq?SIS_Iudf`7nKS2KLOCn7Sn)9byTAAN+tVQH~7 zTXLFpcd_K^lD4*4sImCsErfH#X3RtY0R#|0009ILKmY**5cspee5d|z^6&2pn?MPQ literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.gdbindexes b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.gdbindexes new file mode 100644 index 0000000000000000000000000000000000000000..c608a88be082bd48fb5821f6bacf48df11c2495d GIT binary patch literal 318 zcmZvXu?oUK6a+_6v526JAEZG@C5Wj-MI<6B#>TIYbHordSM0&Zv3dAtL4iW?c4G0C6X92N+;_M6@{tQVBSq!NR$qXe7o(wJw3~Ve+ zETIgc5DvE*6HrAFLncEy5a&Szxzt$LT!31NVOoF!EFlb)3bd^TFzhfWny&2}TxH23Mei{{GD3|M}+CTJL#l`)$3Y<&C|9=1OrK zp6S|IdO$_#iI(kgpT@%D$5y&dJs$CSm-(MBt3OuUd1A80d6&D4-|7p`kAr*)0ACw8 A-T(jq literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.gdbtablx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000006.gdbtablx new file mode 100644 index 0000000000000000000000000000000000000000..431307d13c60381f56be9a7c0c765046b36cb27f GIT binary patch literal 5152 zcmeI$!3h8$3-MA9039Z2oNAZfB*pk1PBlyK!5-N L0{;rUe_$^>!R-Lc literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByBackwardLabel.atx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByBackwardLabel.atx new file mode 100644 index 0000000000000000000000000000000000000000..c6593e249ae5e304dedbfd53078466b2f1f54684 GIT binary patch literal 4118 zcmeI0Yfghe6opTHzh5h0FKuf4qek68i>Sm}8j3OQ#-;k*8Brlt5|aWZFgY+Yh4S@W z?r>8{IzhH=qCK>acF_^C&w6ML9iVlzjaJYO+Cs-@10AAOv}o(=L9r&fRiL2~*Nc=g zy3if_rduDTsWOeAoGNmhXY`CVVm8w=w2=m`Khm6jRwMOqeBa${%EzDh%*miJ$BIt0 zov-{{`K-9sD;|a|aIwsnxU9V*3ufeU45Q_U&zthO#Yik?G~nKI2<(|NlGx>QTUM7q zmr$jSD}-(K;ntkU`c>u>{zOmgGtM(V1D(6k3-hTS885R{@s(NXj`4rz^ZX$Zoe;+% z@gIN2d6{v|zq`u6w(}KNn*3MQcdYX7Yo%_6w2JSBCoiS>`ldeL@;g=YC9H~8$t1ex zt(RX{*U?8U#U-oktP=F^vSRfYs1Ko4f3|Yh*%sB+-F)Xj=RoJcUmSP~dR%78{{^uA EJGP@EO8@`> literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByDestItemTypeID.atx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByDestItemTypeID.atx new file mode 100644 index 0000000000000000000000000000000000000000..466ea1708c1cbda182891f50bb6ae71cb64b0576 GIT binary patch literal 4118 zcmeI0OKx2u3_xGnw9TjAEFv>YU>jqG2E(SV?%wN{QHD__$pA}7LdXbw%mgl%%jGG! z#!YY=JO)35>-?ACdvG884*mqcg1^Dn;9Kwz{0r`aAHk0I8#qwi+SCSXX##d}(1rp$ zC-y8^YW4HeX4O=wYHFYb2e2iAHW2~G9Mei~ec5?@)-2^z%)Nm6Qeeaix@-WgVLqcY zQaKM5sw>av%Sa5YB4Er0d2~h9PDAKCj8cR;q$nJCi9z!fBeA8}jC|pF3{TPrb*S1L zc$5rgk!38kW$fCdyfw>JO2XBk)e@&KLt;lH5cg~;r`oxmhc{)+vx65!;F_aDtWgJ1 zVo#dWiW*mRk)|w=GUCi7GbrT(V^Y)N=G61~{#(9RZUfuEHn0tB1KYqhunlYj+rUQ{ Pcz${HUtj*Oe*yjj&99-K literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByForwardLabel.atx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByForwardLabel.atx new file mode 100644 index 0000000000000000000000000000000000000000..916878645c2a582b32ff182f8868f62685be0423 GIT binary patch literal 4118 zcmeI0TS~(~7==&0*1L8EvzLnCgH)^=u(nDdCZ(+p?#8A1omQzBDkKkPgvszVlc7To z=RflkDoH)?bp*$74kxe;yKo3Qun!&Rg7<8}9vr|aoWTWby80?rXrTvX+~*3qWbWs= zCfq~I<3H*v_44Uw+wKKb{kx{B6BM?u%?hs2;=H|T#>{&2W%iuJJ65L4b!Tyv(gitn zV*g704QdK_Mu9cmGasSRT4NZo>l;wN4ENk!f(Cku!nJkfZmFk}=X5!ZCAA&%Jc~r_ z>I~%g_lQ!T+%d}H>Cs8wI!jGvLpq%6n(>)4-l*=+GyPkSZ1S6R_9T6E+^T*z`B(L% m&dQJzQPBHh>UrPwZ+fpz>&b!SKysjo1Mi{3HuLo_faf2XR}bd^ literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByName.atx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByName.atx new file mode 100644 index 0000000000000000000000000000000000000000..b8e7c33c36d600debf72f4fa6aa2a6dc67efa841 GIT binary patch literal 4118 zcmeI0+fKqj5QYcO=hGAPT_hN9)M#G-u`01pvtSHwe`E`*HGUYK<0Mce#gn9VYO z|C!lo5D~codYyn{&;jb(0TU`Wb-&*w`UpNlG}G#{eAn%W>$BZ@P2FiPPdwKf zDpA>MXFFeyci#TS>*OPfo>lxTo6RU&#qR+v9i5V)Y7hH)u42p#SMf_>=D0(3#$>gO zRn4#9B-GQopnqpk>TSs^SUn#k`Kwtv1>7w2Sb|lJSFuc))jchs zUz739ykkZ+XREeauT-C!$`U1y)FAyKa8rWOSAj}v?^#-e(c}KKRJcmP-JqE`uuO#( zNT3n5ms)Iao<5p0)-@o+v!m5?&z>_96^`PyY<=8!z8_k;L1p%=RT-SBz+BW^q6dwf t@gJt1|COJe$G|ag3>*W;z%g(P90SL|G4MYO{Q7fyzi#k<{{mdkzX7mSpg{lt literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByUUID.atx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.CatRelTypesByUUID.atx new file mode 100644 index 0000000000000000000000000000000000000000..87b30a936755529c70fd76f2876b60875cc41718 GIT binary patch literal 4118 zcmeI0ORnW03`Af5|KCOQ%o4^1%+SWLsjIv9uKT3kz?<|WNF@gOonrXH z<*Fl2Ws!Bi@z}*YgK7wq=1Q`YNqJhG+w7Ri{nlF6gPXL12kDkdZVR)~CU49*H(Vy( z!kwfwyo-I4xf?NC8$6GgO}H}4Vn2A7BK4Eb}SFJ+pAm7>d#U8Q@Vq9q9U zVMHH`v_CRB7m~G9qpUs|715Pz9|fTp8Etj4+9$Cnu*un-$NlEq1uRgkhm)!r*(jaT zJa&y5rGi&T4QpMf#Oz>?inA`IVqL5Fp0n5cZLMlzkCv1{A~AC-NXw{FgvZ(Ce#=s8 zZV_yBfNIr6W^t$mM~~S?B=#{278#*fs4RJ;39AlxCmSX{s)0S&tLG5ulRp|0Uq-eEl9l)@8wnelmHhfSvslCKT4%fW-MP=X_q|P^Ejie@ ztR;^lJA7iMszFamlA7Kv>GywM)d?H<7g`sv6;HpM-C2SERT9zjtKJvR}JS&t08k_L_S#SGPiCL9r)!ePGkrBkMx)VELDLj9*k$3VyBi3T4%66U_wDj@d2jcUP(H1s8O$F!eLS(#k+b@t@- zyEb?HI<4q>;gyKgokiL?hG6v{<@;{LZGD<&D4$`xeT=bf(dZbNkyzPe&0rmN&dgwY zEH-7F@#lx2Gi<$LXZ}#5)NqUx%H;Am(&PWo?zsiVa)~;uAM9v(&%E8DSW4Gs128L&B ztVCfj2!*z2p7I=~Jf{Il6@TvN_TEeA8@r;q_9bI$SL;%ee+NKaZ|FKx zO~1aWaL}0mBu64V#d75^ub+O zk6y6Fd_<;#w8!IkOBt*kJ<*bxD+(KIxgjQzvvE9SvX0iVlFadLN0A9gJBY@iuc#g~ z=4@Ia7h&pJc2~3IiF4ETx(-v}baRd7m)g0DPYu6R<4Rw7sK4I!?#yy_TqcuaXKCKZ z%9{jnJthtFhTOdyO@QhswK#bOxWpVLsTb4ztX@n{wjt>@%AmMkESLU5_rXkty58 zefx6pjgDiaJz6i=Ev!iMo>7f%N7<)577A;)HkY%bjJi?C4uFlyTOUkn-cfKXUVliP z*t#N=i+tz6560*m?JK+P7l*f`JUK-co(7i;jxWt)dyqnV=7AU*0M!b!xp-#t?osiE z_gaH3u}445ArnkS*{fPyV*Ys^D%eA3UQ&GODXv~y<;v6^O`Lar(VGX0$g(Fz7lB3R zDOpd&`b%!8>gE*M#s{v>pXMFbwxmWG8{6-lBXdiZRJbqtIN4eO6*|XDULi-~1ysVQ z#4tJlTngEmMdsQTeVVRx__fB{pMLTp?Udx>ov$UAt4@l>_ycoDGH+`|%JTF$e4Uyk zo%|mu>SF%j0Q5hBxSPIde|f7;La@FBw7rI9zl!VeU zo9C5un2%6djqqo4%Q^sdDlCpYQm1q8&q*bfQ2AIGf7M#ylukC4tvHbWUH`}*XHcZF zrux@!Dl6o%GV0t|VnbFi72#~9|akHXFGk4}CLsi$UjD2N&S~B7H zA1o+QRa(>Pmq&dOw>{Aut`qW*xM&_HKHQfF&&Hr)15bM?SQvLPT329b2u!MdWA0l$ zHgEGRk_qTu6EXS^@`74mUw)%s!DK)Wqm-nkTr%qUv&zpVfRt(%ULY28!$x-AB y-J8Dl;x6U$&WriiPb4K(M}EFwY3#Z$Nhb2uk(kwF9pJ)XT@B+<3#A771n@695vmvf literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.gdbtablx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000007.gdbtablx new file mode 100644 index 0000000000000000000000000000000000000000..b610cc630a1d0eb89572ff144a2f283846788901 GIT binary patch literal 5152 zcmeI$y$OIY07T(v{H;V6a3LGl&;^{pN^lPsashDwd%?RcEMDLqq)79Xi6MkU>$F^J zeA%5oRSu_(%I370vN(^k`o-%^g>pMXsa(!nDW@~m3I_oM5I_I{1Q0*~0R#|0009IL PKmY**{vhDrKhNg_Psj;~ literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000009.gdbindexes b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000009.gdbindexes new file mode 100644 index 0000000000000000000000000000000000000000..5359101eff915ed5c30a16063b8ad9e29a8a63e2 GIT binary patch literal 124 zcmZQ#U|`?_VmAgC27iWlAa-K#VsK?}W(Z;M1d7Eo7y@MlfcXD^Mj*)r#Msqv0%c&P a1T$nXBr+5*qyoiQfS7>+q?Z+lk!1jm!VWh8 literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000009.gdbtable b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000009.gdbtable new file mode 100644 index 0000000000000000000000000000000000000000..215d4fb81cc0c8112486926a0cc130900f3752f7 GIT binary patch literal 182011 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 JJwp#M{}0a+!5#nr literal 0 HcmV?d00001 diff --git a/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000009.gdbtablx b/ArcGIS/ChooseFieldValue/ToolData/ToolData.gdb/a00000009.gdbtablx new file mode 100644 index 0000000000000000000000000000000000000000..130f0b8f9f868764e3403f59572b3924dfcfb00b GIT binary patch literal 25632 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 literal 0 HcmV?d00001 diff --git a/ArcGIS/FocalStatisticsWeighted.py b/ArcGIS/FocalStatisticsWeighted.py new file mode 100644 index 0000000..08d22f0 --- /dev/null +++ b/ArcGIS/FocalStatisticsWeighted.py @@ -0,0 +1,20 @@ +import arcpy +from arcpy import env +from arcpy.sa import * + +env.workspace = "C:" + +# Local variables: +inRaster = arcpy.GetParameterAsText(0) +inkarnelfile = arcpy.GetParameterAsText(1) +neighborhood = NbrWeight(inkarnelfile) + +# Check out any necessary licenses +arcpy.CheckOutExtension("spatial") + +# Execute FocalStatistics +outFocalStatistics = FocalStatistics(inRaster, neighborhood, "MEAN") + +# Save the output +saveLocation = arcpy.GetParameterAsText(2) +outFocalStatistics.save(saveLocation) \ No newline at end of file diff --git a/ArcGIS/Herramientas.tbx b/ArcGIS/Herramientas.tbx new file mode 100644 index 0000000000000000000000000000000000000000..815763054cf75c7f67e280e411e4deb8effcd3b2 GIT binary patch literal 1350656 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%0AWLfjSx0Q*aTrL!lnqDA$$yB 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 literal 0 HcmV?d00001 diff --git a/ArcGIS/Split_delimited_field.cal b/ArcGIS/Split_delimited_field.cal new file mode 100644 index 0000000000000000000000000000000000000000..994d1f664afd9dc05b66839ab0d4e933a05220d9 GIT binary patch literal 44 tcmWG$C}7B8$YdyC&|pwth-UC(NMy)mNM(ox@^l!K81#Wy6DVf@Bmtkw1@`~| literal 0 HcmV?d00001 diff --git a/ArcGIS/ZonalStats_hyper - bandas auto.py b/ArcGIS/ZonalStats_hyper - bandas auto.py new file mode 100644 index 0000000..33b769f --- /dev/null +++ b/ArcGIS/ZonalStats_hyper - bandas auto.py @@ -0,0 +1,327 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +#This script takes 3 inputs: +#Buffer: zone feature to use as input for zonal statistic tool +#Grid: feature whose table will be used to save the mean values of the zonal statistic tool. +# This should contain the same features ID field than the "Buffer" input. +# A field named B1, B2... will be created to store the mean values for each zone for each band. +#Raster: Raster to use as input for zonal statistic tool, along with the "Buffer". +###The temporal stats tables are created in the default ArcGIS GDB +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys + +def print_kwinfo(): + if deb==1: + print "kwinfo se guarda:" + print kwinfo + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception, e: + # If an error occurred, print line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path)else False + return exists + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension + +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window + +def letsgo(header_file): + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("Finished reading header lines") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la línea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print str(i)+"-l- "+str(l) + kwinfo+=l + if deb==1: print str(i)+"-kwinfo- "+str(kwinfo) + if ongoing==1: + if "}" in l: + if deb==1: print "ongoing==se cierra por fin el parentesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print "ongoing==1 else" + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print keyw+" attribute found" + if "{" in l: + if "}" in l: + if deb==1: print "ongoing==parentesis cerrando en linea" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print "if bracket in l: --- else" + else: + if deb==1: print "ongoing==sin paretesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print "fin de ronda de for" + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print regexpresion.findall(cl) + for key in dictio: dictio[key]=dictio[key].strip() + print "Header attributes:" + arcpy.AddMessage("Header attributes read") + print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + arcpy.AddMessage(wl) + arcpy.AddMessage("saved wl") + #Band names + if "band names" in dictio: + arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + arcpy.AddMessage("split competed") + bn=replace_in_list(expr_replace,bn) + arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + arcpy.AddMessage("Format composed band name") + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + arcpy.AddMessage("wl found") + full_bn= wl + arcpy.AddMessage(full_bn) + if deb==1: + print full_bn + print "Bands: "+len(full_bn) + arcpy.AddMessage("Bands: "+len(full_bn)) + #Output parameter + arcpy.SetParameterAsText(4, str(len(full_bn))) # Say how may bands are in the raster + arcpy.AddMessage("Finished reading header") + return full_bn + +##def save_bn_wl(): +## full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') +## +##def save_wl(): +## full_bn= '\n'.join(join_str.format(waveln=w) for w in itertools.izip(wl)).split('\n') + +## Starts the script +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + # Create the Geoprocessor object + gp = arcgisscripting.create() + + # Load required toolboxes + print "Start!" + #Type: Feature layer -buffer for the zonalStats + bf_Lx_1 = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #Type: Field -ID field + f = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #type: Feature layer - Feature in whose table the stats will be stored + Grid = arcpy.GetParameterAsText(1) + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + "\\" + Grid + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + + print Grid + #type: Raster layer + Raster = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #type: Field - Field for join and statistics + id_field = arcpy.GetParameterAsText(3) + arcpy.AddMessage("read " + id_field) + + #List of band names + hdr_file = os.path.join(str(rPath) + "\\" + desc.baseName+".hdr") + bandNames = letsgo(hdr_file) + #Next I was try ing to print the band number. Not yet + if type(bandNames).__name__ != 'int': + print r"# of bands in raster: "+str(len(bandNames)) + + #Folder to store the tables with the stats + tempGdb_path = r"C:\Users\usuario\Documents\ArcGIS" + tempGdb = r"Default.gdb" + #This is the path + tablesPath = os.path.join(tempGdb_path, tempGdb) + #Keep the individual stats tables? + #Either way the MEAN is stored to the table of the grid feature selected + keep_tables=False + # Execute CreateFileGDB + create_if_not_exists(tempGdb_path) + if not exists(tablesPath): + arcpy.CreateFileGDB_management(tempGdb_path, tempGdb) + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = id_field + gridLayer = "gridLayer" + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + i=1 + for b in bandNames: + arcpy.AddMessage("b: " + b) + band = Raster + "\\" + b + arcpy.AddMessage("band: " + band) + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + #Perform the zonalstatistics getting only the "MEAN" value of the cells + #"MEAN" can be changed to get different statistics: + #ALL,MEAN,MAJORITY,MAXIMUM,MEDIAN,MINIMUM,MINORITY,RANGE,STD,SUM,VARIETY,MIN_MAX,MEAN_STD,MIN_MAX_MEAN  + #arcpy.AddMessage("zs exists? : " + str(exists(path))) + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + fields = gp.ListFields(gridLayer, bandField) + field_found = fields.Next() + if (not field_found): + arcpy.AddField_management(gridLayer, bandField, "FLOAT", 10, 3, "", "", "NULLABLE", "NON_REQUIRED", "") + arcpy.AddMessage("Added. Before field not found " + str(bandField)) + else: + arcpy.AddMessage("field_found " + str(field_found.name)) + arcpy.AddMessage("field found " + str(bandField)) + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + if not keep_tables: arcpy.Delete_management(zs) + i+=1 + + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + + diff --git a/ArcGIS/addFieldb1-b250.py b/ArcGIS/addFieldb1-b250.py new file mode 100644 index 0000000..a6185e0 --- /dev/null +++ b/ArcGIS/addFieldb1-b250.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# addFieldb1-b250.py +# Created on: 2014-06-07 12:40:25.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: addFieldb1-b250 +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import arcpy + +# Load required toolboxes +arcpy.ImportToolbox("Model Functions") + +# Script arguments +Feature_to_add_250_Fields = arcpy.GetParameterAsText(0) +if Feature_to_add_250_Fields == '#' or not Feature_to_add_250_Fields: + Feature_to_add_250_Fields = "H140117_BW" # provide a default value if unspecified + +# Local variables: +Feature_with_250_fields = Feature_to_add_250_Fields + +# Process: For +arcpy.IterateCount_mb("1", "250", "1") + +# Process: Add Field +arcpy.AddField_management(Feature_to_add_250_Fields, "B%band_value%", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED", "") + diff --git a/ArcGIS/addLayerToView.txt b/ArcGIS/addLayerToView.txt new file mode 100644 index 0000000..36064ed --- /dev/null +++ b/ArcGIS/addLayerToView.txt @@ -0,0 +1,9 @@ +import arcpy +import os +import os.path +from arcpy import env + +lyr = arcpy.GetParameterAsText(0) +mxd = arcpy.mapping.MapDocument("CURRENT") +dataframe = arcpy.mapping.ListDataFrames(mxd)[0] +arcpy.mapping.AddLayer(dataframe,lyr,"AUTO_ARRANGE") \ No newline at end of file diff --git a/ArcGIS/celsius.cal b/ArcGIS/celsius.cal new file mode 100644 index 0000000000000000000000000000000000000000..2bf7cea9b27d4a7b8ea5c53e5f1757b7a374fd35 GIT binary patch literal 56 zcmXS7$Y&^J$YV%h&;Y_{244nO21f=zhFAuD215n|Ak<{gWiVneXE0{a1B#e3=m2?| F3;^%g2Oj_c literal 0 HcmV?d00001 diff --git a/ArcGIS/createFolderIfNotExists.py b/ArcGIS/createFolderIfNotExists.py new file mode 100644 index 0000000..31571ff --- /dev/null +++ b/ArcGIS/createFolderIfNotExists.py @@ -0,0 +1,17 @@ +from os.path import exists +from os import makedirs + +#Folder which will be checked if exists +folder = arcpy.GetParameter(0) +folder = str(folder) +arcpy.AddMessage("path to check: " + str(folder)) +folder.replace("\\", "\\\\") + +#Create folder if it doesn't exist +try: + os.makedirs(folder) + os.path.exists(folder) +except: + os.makedirs(folder) +ready = folder +arcpy.SetParameterAsText(1,ready) \ No newline at end of file diff --git a/ArcGIS/data_handler.py b/ArcGIS/data_handler.py new file mode 100644 index 0000000..ff83e97 --- /dev/null +++ b/ArcGIS/data_handler.py @@ -0,0 +1,764 @@ +############################################################################## +# Python library to deal with BIL (Band Interleaved by Line) and BSQ (Band Sequential) files +# +# Author: Ben Taylor +# +# History: +# 12th Feb. 2009: (benj) Created +# 9th Jun. 2009: (benj) Added writeData function +# 20th Aug. 2009: (benj) Added append option to writeDataFile +# 3rd Dec. 2009: (benj) Added findHdrFile function +# +# Available functions: +# readxy: Wrapper function for readBil/readBsq that allows you to omit the number of bands in the file (works it out from the file size) +# readxb: Wrapper function for readBil/readBsq that allows you to omit the number of lines in the file (works it out from the file size) +# readyb: Wrapper function for readBil/readBsq that allows you to omit the number of pixels per line (works it out from the file size) +# readBil: Reads a BIL file and returns a list containing the data from the file +# readBilLine: Reads a line from an open BIL file and returns a list containing the data that was read +# readBsq: Reads a BSQ file and returns a list containing the data from the file +# readBsqBand: Reads a band from an open BSQ file and returns a list containing the data that was read +# writeData: Writes data to an output file straight from an input list +# writeDataFile: Writes a BIL or BSQ file from a 1D list containing data already in the right file order +# write3DData: Writes a BIL or BSQ file from a 3D list with 1st dimension band number, 2nd dimension line number and 3rd dimension pixel number (unfolds to a 1D array then calls writeDataFile) +# writeHdrFile: Writes an ENVI .hdr file to be associated with a BIL or BSQ file +# readHdrFile: Reads data from a given ENVI-style header file +# getEnviType: Gets the ENVI type code equivalent to a particular Python struct format string +# getStructType: Gets the Python struct format string equivalent to a particular ENVI type code +# findHdrFile: Tries to find an associated hdr file for the given filename +# +# You may use or alter this script as you wish, but no warranty of any kind is offered, nor is it guaranteed +# not to cause security holes in an unsafe environment. +############################################################################## + +import os +import os.path +import stat +import struct +import re +import sys + +defformat = "h" # Default data format (2-byte signed short int) + +# Function readxy +# Wrapper function for readBil/readBsq that allows you to omit the number of bands in the file (works it out from the file size) +# See readBil/readBsq description for arguments and return value +# filetype: "bil" or "bsq" appropriately +def readxy(filename, numlines, pixperline, dataformat=defformat, filetype="bil"): + fileinfo = os.stat(filename) + filesize = fileinfo[stat.ST_SIZE] + + # Check given format string is valid + try: + bytesperpix = struct.calcsize(dataformat) + except: + raise ValueError, "Supplied data format " + str(dataformat) + " is invalid" + # end try + + numbands = ((filesize / float(numlines)) / float(pixperline)) / float(bytesperpix) + + # Should be an integer, if it's not then one of the given attributes is wrong or the file is corrupt + if (numbands == int(numbands)): + if (filetype == "bil"): + return readBil(filename, int(numlines), int(pixperline), int(numbands), dataformat) + else: + if (filetype == "bsq"): + return readBsq(filename, int(numlines), int(pixperline), int(numbands), dataformat) + else: + raise ValueError, "File type argument must be either 'bil' or 'bsq', got: " + filetype + # end if + # end if + else: + raise ValueError, "File size and supplied attributes do not match" + # end if +# end function + +# Function readxb +# Wrapper function for readBil/readBsq that allows you to omit the number of lines in the file (works it out from the file size) +# See readBil/readBsq description for arguments and return value +# filetype: "bil" or "bsq" appropriately +def readxb(filename, pixperline, numbands, dataformat=defformat, filetype="bil"): + fileinfo = os.stat(filename) + filesize = fileinfo[stat.ST_SIZE] + + # Check given format string is valid + try: + bytesperpix = struct.calcsize(dataformat) + except: + raise ValueError, "Supplied data format " + str(dataformat) + " is invalid" + # end try + + numlines = ((filesize / float(numbands)) / float(pixperline)) / float(bytesperpix) + + # Should be an integer, if it's not then one of the given attributes is wrong or the file is corrupt + if (numlines == int(numlines)): + if (filetype == "bil"): + return readBil(filename, int(numlines), int(pixperline), int(numbands), dataformat) + else: + if (filetype == "bsq"): + return readBsq(filename, int(numlines), int(pixperline), int(numbands), dataformat) + else: + raise ValueError, "File type argument must be either 'bil' or 'bsq', got: " + filetype + # end if + # end if + else: + raise ValueError, "File size and supplied attributes do not match" + # end if +# end function + +# Function readyb +# Wrapper function for readBil/readBsq that allows you to omit the number of pixels per line (works it out from the file size) +# See readBil/readBsq description for arguments and return value +# filetype: "bil" or "bsq" appropriately +def readyb(filename, numlines, numbands, dataformat=defformat, filetype="bil"): + fileinfo = os.stat(filename) + filesize = fileinfo[stat.ST_SIZE] + + # Check given format string is valid + try: + bytesperpix = struct.calcsize(dataformat) + except: + raise ValueError, "Supplied data format " + str(dataformat) + " is invalid" + # end try + + pixperline = ((filesize / float(numbands)) / float(numlines)) / float(bytesperpix) + + # Should be an integer, if it's not then one of the given attributes is wrong or the file is corrupt + if (numlines == int(numlines)): + if (filetype == "bil"): + return readBil(filename, int(numlines), int(pixperline), int(numbands), dataformat) + else: + if (filetype == "bsq"): + return readBsq(filename, int(numlines), int(pixperline), int(numbands), dataformat) + else: + raise ValueError, "File type argument must be either 'bil' or 'bsq', got: " + filetype + # end if + # end if + else: + raise ValueError, "File size and supplied attributes do not match" + # end if +# end function + +# Function readBil +# Reads a BIL file and returns a list containing the data from the file +# +# Arguments: +# filename: Name of file to read +# numlines: Number of lines of data in the file +# pixperline: Number of pixels on a line +# numbands: Number of bands in the file +# dataformat: Format string for data, as Python struct definition +# +# Returns: A list containing the data from filename formatted as a list of bands +# containing a list of lines, each containing a list of pixel values +def readBil(filename, numlines, pixperline, numbands, dataformat=defformat): + + # Check file exists and is a file + if (not os.path.isfile(filename)): + raise ValueError, "Supplied filename " + str(filename) + " does not exist" + # end if + + # Check given format string is valid + try: + bytesperpix = struct.calcsize(dataformat) + except: + raise ValueError, "Supplied data format " + str(dataformat) + " is invalid" + # end try + + # Check file size matches with size attributes + fileinfo = os.stat(filename) + filesize = fileinfo[stat.ST_SIZE] + checknum = (((filesize / float(numbands)) / float(numlines)) / float(bytesperpix)) / pixperline + if (checknum != 1): + raise ValueError, "File size and supplied attributes do not match" + # end if + + # Open the file for reading in binary mode + try: + bilfile = open(filename, "rb") + except: + print "Failed to open BIL file " + filename + raise + # end try + + # Create a list of bands containing an empty list for each band + bands = [[] for i in range(0, numbands)] + + # BIL format so have to cycle through lines at top level rather than bands + for linenum in range(0, numlines): + for bandnum in range(0, numbands): + + if (linenum == 0): + # For each band create an empty list of lines in the band, but only the first time + bands[bandnum] = [[] for i in range(0, numlines)] + # end if + + for pixnum in range(0, pixperline): + + # Read one data item (pixel) from the data file. No error checking because we want this to fall over + # if it fails. + dataitem = bilfile.read(bytesperpix) + + # If we get a blank string then we hit EOF early, raise an error + if (dataitem == ""): + raise EOFError, "Ran out of data to read before we should have" + # end if + + # If everything worked, unpack the binary value and store it in the appropriate pixel value + bands[bandnum][linenum].append(struct.unpack(dataformat, dataitem)[0]) + # end for + # end for + # end for + bilfile.close() + + return bands +# end function + +# Function readBilLine +# Reads a line of data from an open BIL file +# +# Arguments: +# bilfile: Open BIL file object +# pixperline: Number of pixels on a line +# numbands: Number of bands in the file +# dataformat: Format string for data, as Python struct definition +# +# Returns: A 2D list with the band number in the first dimension and the pixel number in the second, containing the data values +# for the line that was read +def readBilLine(bilfile, pixperline, numbands, dataformat=defformat): + line = [] + + # Get the size in bytes for the given data format + itemsize = struct.calcsize(dataformat) + + # For each pixel in each band, read a data item, unpack it and store it in the output list + for bandnum in range(0, numbands): + line.append([]) + for pixnum in range(0, pixperline): + dataitem = bilfile.read(itemsize) + + if ((dataitem == "") or (len(dataitem) < itemsize)): + raise EOFError, "Ran out of data to read before we should have" + # end if + + line[bandnum].append(struct.unpack(dataformat, dataitem)[0]) + # end for + # end for + + return line +# end function + +# Function readBsq +# Reads a BSQ file and returns a list containing the data from the file +# +# Arguments: +# filename: Name of file to read +# numlines: Number of lines of data in the file +# pixperline: Number of pixels on a line +# numbands: Number of bands in the file +# dataformat: Format string for data, as Python struct definition +# +# Returns: A list containing the data from filename formatted as a list of bands +# containing a list of lines, each containing a list of pixel values +def readBsq(filename, numlines, pixperline, numbands, dataformat=defformat): + + # Check file exists and is a file + if (not os.path.isfile(filename)): + raise ValueError, "Supplied filename " + str(filename) + " does not exist" + # end if + + # Check given format string is valid + try: + bytesperpix = struct.calcsize(dataformat) + except: + raise ValueError, "Supplied data format " + str(dataformat) + " is invalid" + # end try + + # Check file size matches with size attributes + fileinfo = os.stat(filename) + filesize = fileinfo[stat.ST_SIZE] + checknum = (((filesize / float(numbands)) / float(numlines)) / float(bytesperpix)) / pixperline + if (checknum != 1): + raise ValueError, "File size and supplied attributes do not match" + # end if + + # Open the file for reading in binary mode + try: + bsqfile = open(filename, "rb") + except: + print "Failed to open BSQ file " + filename + raise + # end try + + # Create a list of bands containing an empty list for each band + bands = [] + + # Read data for each band at a time + for bandnum in range(0, numbands): + bands.append([]) + + for linenum in range(0, numlines): + + bands[bandnum].append([]) + + for pixnum in range(0, pixperline): + + # Read one data item (pixel) from the data file. No error checking because we want this to fall over + # if it fails. + dataitem = bsqfile.read(bytesperpix) + + # If we get a blank string then we hit EOF early, raise an error + if (dataitem == ""): + raise EOFError, "Ran out of data to read before we should have" + # end if + + # If everything worked, unpack the binary value and store it in the appropriate pixel value + bands[bandnum][linenum].append(struct.unpack(dataformat, dataitem)[0]) + # end for + # end for + # end for + + bsqfile.close() + + return bands +# end function + +# Function readBsqBand +# Reads a band of data from an open BSQ file +# +# Arguments: +# bsqfile: Open BSQ file object +# pixperline: Number of pixels on a line +# numlines: Number of lines in the file +# dataformat: Format string for data, as Python struct definition +# +# Returns: A 2D list with the band number in the first dimension and the pixel number in the second, containing the data values +# for the line that was read +def readBsqBand(bsqfile, pixperline, numlines, dataformat=defformat): + band = [] + + # Get the size in bytes for the given data format + itemsize = struct.calcsize(dataformat) + + # For each pixel in each band, read a data item, unpack it and store it in the output list + for linenum in range(0, numlines): + band.append([]) + for pixnum in range(0, pixperline): + dataitem = bsqfile.read(itemsize) + + if ((dataitem == "") or (len(dataitem) < itemsize)): + raise EOFError, "Ran out of data to read before we should have" + # end if + + band[linenum].append(struct.unpack(dataformat, dataitem)[0]) + # end for + # end for + + return band +# end function + +# Function writeData +# Writes data to an output file straight from an input list +# +# Arguments: +# data: List containing data to be written +# datafile: Open (binary) data file to write to +# dataformat: Format string for data, as Python struct definition +def writeData(data, datafile, dataformat=defformat): + + # Check given format string is valid + try: + bytesperpix = struct.calcsize(dataformat) + except: + raise ValueError, "Supplied data format " + str(dataformat) + " is invalid" + # end try + + # Get the size in bytes for the given data format + itemsize = struct.calcsize(dataformat) + + writestr = "" + + for i in range(0, len(data)): + try: + packeditem = struct.pack(dataformat, data[i]) + except: + datafile.close() + raise IOError, "Could not pack " + str(dataitem) + " into " + str(bytesperpix) + " bytes. Reason: " + str(sys.exc_info()[1]) + # end try + + if ((i % 1000 != 999) and (i != len(data) - 1)): + writestr = writestr + packeditem + else: + writestr = writestr + packeditem + try: + datafile.write(writestr) + except: + datafile.close() + raise IOError, "Failed to write to data file. Reason: " + str(sys.exc_info()[1]) + # end try + writestr = "" + # end if + + # end if + + # Write data to file in order + #for dataitem in data: + # try: + # packeditem = struct.pack(dataformat, dataitem) + # except: + # datafile.close() + # raise IOError, "Could not pack " + str(dataitem) + " into " + str(bytesperpix) + " bytes. Reason: " + str(sys.exc_info()[1]) + # # end try + # + # if (len(writestr) < 1000): + # writestr = writestr + packeditem + # else: + # writestr = packeditem + # # end try + # + # try: + # datafile.write(packeditem) + # except: + # datafile.close() + # raise IOError, "Failed to write to data file. Reason: " + str(sys.exc_info()[1]) + # # end try + ## end for +# end function + +# Function writeDataFile +# Writes a data file (BIL or BSQ) from a 1D list containing data already in the right file order +# (ie data are written to the file in the order that they're in the list) +# +# Arguments: +# data: List containing data to write to the file +# filename: Name of file to be written to +# dataformat: Format string for data, as Python struct definition +# append: If True then appends the data to the end of the file rather than writing a new blank file. Default False +def writeDataFile(data, filename, dataformat=defformat, append=False): + + # Get correct format string to open the file with + if (append): + writeformat = "ab" + else: + writeformat = "wb" + # end if + + # Open the data file for writing in binary mode + try: + datafile = open(filename, writeformat) + except: + print "Could not open data file " + str(filename) + " for writing" + raise + # end try + + # Check given format string is valid + try: + bytesperpix = struct.calcsize(dataformat) + except: + raise ValueError, "Supplied data format " + str(dataformat) + " is invalid" + # end try + + # Pack each data item into binary data and write it to the output file + for dataitem in data: + try: + packeditem = struct.pack(dataformat, dataitem) + except: + datafile.close() + print "Could not pack " + str(dataitem) + " into " + str(bytesperpix) + " bytes" + raise + # end try + + try: + datafile.write(packeditem) + except: + print "Failed to write to data file. Reason: " + str(sys.exc_info()[1]) + datafile.close() + raise + # end try + # end for + + datafile.close() +# end function + +# Function write3DData +# Writes a BIL or BSQ file from a 3D list with 1st dimension band number, 2nd dimension line number +# and 3rd dimension pixel number (unfolds to a 1D array then calls writeDataFile) +# +# Arguments: +# data: List containing data to write to the file +# filename: Name of file to be written to +# writehdr: Flag denoting whether to write an ENVI header file (default true) +# dataformat: Format string for data, as Python struct definition +# interleave: "bil" or "bsq" appropriately +def write3DData(data, filename, writehdr=True, dataformat=defformat, interleave="bil"): + + # Store numbers of bands, lines and pixels per line for convenience + numbands = len(data) + numlines = len(data[0]) + pixperline = len(data[0][0]) + + # Check given format string is valid + try: + bytesperpix = struct.calcsize(dataformat) + except: + raise ValueError, "Supplied data format " + str(dataformat) + " is invalid" + # end try + + # Create list for unfolding to + outdata = [0.0 for i in range(0, numbands * numlines * pixperline)] + + # Run through the data array and put all the data in the right place in the unfolded list + for bandnum in range(0, numbands): + for linenum in range(0, numlines): + for pixnum in range(0, pixperline): + # Work out appropriate index within BIL file format for next pixel and store in 1D data array + if (interleave == "bil"): + pixindex = (pixperline * numbands * linenum) + (pixperline * bandnum) + pixnum + else: + if (interleave == "bsq"): + pixindex = (pixperline * numbands * linenum) + (pixperline * linenum) + pixnum + else: + raise ValueError, "Interleave argument to write3DData must be either 'bil' or 'bsq', got: " + interleave + # end if + # end if + outdata[pixindex] = data[bandnum][linenum][pixnum] + # end for + # end for + # end for + + # Write output file (or throw an error if there's no data to write) + if (len(outdata) > 0): + writeDataFile(outdata, filename, dataformat) + else: + raise ValueError, "One or more dimensions of the data array were 0" + # end if + + # Write header file if requested + if (writehdr): + try: + # Check ENVI data type + datatype = getEnviType(dataformat) + except: + datafile.close() + print "Unable to generate header for type " + dataformat + ", data type is not valid for ENVI" + # end try + + writeHdrFile(filename + ".hdr", pixperline, numlines, numbands, datatype, interleave) + # end if +# end function + +# Function writeHdrFile +# Writes an ENVI .hdr file to be associated with a data file +# +# Arguments: +# filename: Name of .hdr file to be written +# samples: Number of pixels per line (samples) +# lines: Number of lines +# bands: Number of bands +# datatype: Numeric code for relevant data type +def writeHdrFile(filename, samples, lines, bands, datatype, interleave="bil"): + try: + hdrfile = open(filename, "w") + except: + print "Could not open header file " + str(filename) + " for writing" + raise + # end try + + hdrfile.write("ENVI\n") + hdrfile.write("description = { Created by bil_handler.py }\n") + hdrfile.write("samples = " + str(samples) + "\n") + hdrfile.write("lines = " + str(lines) + "\n") + hdrfile.write("bands = " + str(bands) + "\n") + hdrfile.write("header offset = 0\n") + hdrfile.write("file type = ENVI Standard\n") + hdrfile.write("data type = " + str(datatype) + "\n") + hdrfile.write("interleave = " + interleave + "\n") + hdrfile.write("byte order = 0\n") + + hdrfile.flush() + hdrfile.close() +# end function + +# Function readHdrFile +# Reads data from a given ENVI-style header file +# +# Arguments +# hdrfilename: Name of header file to be read +# +# Returns: Dictionary containing keys/values from header file +def readHdrFile(hdrfilename): + output = {} + inblock = False + + try: + hdrfile = open(hdrfilename, "r") + except: + print "Could not open hdr file '" + str(hdrfilename) + "'" + raise + # end try + + # Read line, split it on equals, strip whitespace from resulting strings and add key/value pair to output + currentline = hdrfile.readline() + while (currentline != ""): + # ENVI headers accept blocks bracketed by curly braces - check for these + if (not inblock): + # Split line on first equals sign + if (re.search("=", currentline) != None): + linesplit = re.split("=", currentline, 1) + key = linesplit[0].strip() + value = linesplit[1].strip() + + # If value starts with an open brace, it's the start of a block - strip the brace off and read the rest of the block + if (re.match("{", value) != None): + inblock = True + value = re.sub("^{", "", value, 1) + + # If value ends with a close brace it's the end of the block as well - strip the brace off + if (re.search("}$", value)): + inblock = False + value = re.sub("}$", "", value, 1) + # end if + # end if + value = value.strip() + output[key] = value + # end if + else: + # If we're in a block, just read the line, strip whitespace (and any closing brace ending the block) and add the whole thing + value = currentline.strip() + if (re.search("}$", value)): + inblock = False + value = re.sub("}$", "", value, 1) + value = value.strip() + # end if + output[key] = output[key] + value + # end if + + currentline = hdrfile.readline() + # end while + + hdrfile.close() + + return output +# end function + +# Function getEnviType +# Gets the ENVI type code equivalent to a particular Python struct format string +# +# Arguments +# formatstr: Struct format string to get ENVI type code for +# +# Returns: ENVI numeric type code for supplied format string +def getEnviType(formatstr): + + dtype = -1 + + # Check the given format string is valid + try: + struct.calcsize(formatstr) + except: + raise ValueError, formatstr + " is not a valid format string" + # end try + + # Do the conversion + if (formatstr == "b"): + dtype = 1 # Signed (?) byte + elif (formatstr == "h"): + dtype = 2 # 2-byte signed short int (ENVI calls it an int) + elif (formatstr == "H"): + dtype = 12 # 2-byte unsigned int (ENVI calls it an int) + elif (formatstr == "i"): + dtype = 3 # 4-byte signed int (ENVI calls it a Long) + elif (formatstr == "I"): + dtype = 13 # 4-byte unsigned int (ENVI calls it a Long) + elif (formatstr == "f"): + dtype = 4 # 4-byte float + elif (formatstr == "d"): + dtype = 5 # 8-byte double precision + elif (formatstr == "l"): + dtype = 14 # 8-byte long int (ENVI 64-bit int) + elif (formatstr == "L"): + dtype = 15 # 8-byte unsigned long int (ENVI 64-bit int) + else: + # If we get here then the format string is valid for Python but not for ENVI, raise an error + raise ValueError, formatstr + " is a valid Python format string but does not have an ENVI equivalent" + # end if + + return dtype +# end function + +# Function getStructType +# Gets the Python struct format string equivalent to a particular ENVI type code +# +# Arguments +# typecode: ENVI type code to get Python format string for +# +# Returns: Single-character Python struct format string +def getStructType(typecode): + + try: + inttype = int(typecode) + except: + raise ValueError, str(typecode) + " is not a valid ENVI type for conversion" + # end try + + # Do the conversion + if (inttype == 1): + formatstr = "b" # Signed (?) byte + elif (inttype == 2): + formatstr = "h" # 2-byte signed short int (ENVI calls it an int) + elif (inttype == 12): + formatstr = "H" # 2-byte unsigned int (ENVI calls it an int) + elif (inttype == 3): + formatstr = "i" # 4-byte signed int (ENVI calls it a Long) + elif (inttype == 13): + formatstr = "I" # 4-byte unsigned int (ENVI calls it a Long) + elif (inttype == 4): + formatstr = "f" # 4-byte float + elif (inttype == 5): + formatstr = "d" # 8-byte double precision + elif (inttype == 14): + formatstr = "l" # 8-byte long int (ENVI 64-bit int) + elif (inttype == 15): + formatstr = "L" # 8-byte unsigned long int (ENVI 64-bit int) + else: + # If we get here then the type code doesn't have a Python equivalent, raise an error + raise ValueError, str(typecode) + " does not have an equivalent Python format string" + # end if + + return formatstr +# end function + +# Function findHdrFile +# Tries to find an associated hdr file for the given filename +# +# Arguments +# rawfilename: File name to try and match to a header file +# +# Returns: The name of the header file found, or None if no header was found +# +# Known issues: Only works by filename matching and file extension, will break if the files in the directory +# are named such that this doesn't work - will either not find a header that exists (ie if the header file isn't +# just the raw file name with ".hdr" either on the end or replacing the existing suffix) or potentially may return the +# wrong header file if for some reason the header for a different file is named to match the file given. +def findHdrFile(rawfilename): + # Check the file exists + if (not os.path.isfile(rawfilename)): + raise IOError, "Could not find file " + rawfilename + # end if + + # Get the filename without path or extension + filename = os.path.basename(rawfilename) + filesplit = os.path.splitext(filename) + filebase = filesplit[0] + dirname = os.path.dirname(rawfilename) + + # See if we can find the header file to use + if (os.path.isfile(os.path.join(dirname, filebase + ".hdr"))): + hdrfile = os.path.join(dirname, filebase + ".hdr") + elif (os.path.isfile(os.path.join(dirname, filename + ".hdr"))): + hdrfile = os.path.join(dirname, filename + ".hdr") + else: + hdrfile = None + # end if + + return hdrfile +# end function diff --git a/ArcGIS/deleteExnameRellenoOrEmpty.exp b/ArcGIS/deleteExnameRellenoOrEmpty.exp new file mode 100644 index 0000000000000000000000000000000000000000..cc0c413f65b30786b0c1774d797b41814c3c863e GIT binary patch literal 70 vcmYdgs9?xrNMy)mNM%r9umxguDE4Ov0 +# Description: +#This script takes 3 inputs: +#Buffer: zone feature to use as input for zonal statistic tool +#Grid: feature whose table will be used to save the mean values of the zonal statistic tool. +# This should contain the same features ID field than the "Buffer" input. +# A field named B1, B2... will be created to store the mean values for each zone for each band. +#Raster: Raster to use as input for zonal statistic tool, along with the "Buffer". +# The band information is read from the envi HDR file +###The temporal stats tables are created in the default ArcGIS GDB +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys + +def print_kwinfo(): + if deb==1: + print "kwinfo se guarda:" + print kwinfo + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception, e: + # If an error occurred, print line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path)else False + return exists + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension + +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window + +def letsgo(header_file): + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("Finished reading header lines") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la línea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print str(i)+"-l- "+str(l) + kwinfo+=l + if deb==1: print str(i)+"-kwinfo- "+str(kwinfo) + if ongoing==1: + if "}" in l: + if deb==1: print "ongoing==se cierra por fin el parentesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print "ongoing==1 else" + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print keyw+" attribute found" + if "{" in l: + if "}" in l: + if deb==1: print "ongoing==parentesis cerrando en linea" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print "if bracket in l: --- else" + else: + if deb==1: print "ongoing==sin paretesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print "fin de ronda de for" + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print regexpresion.findall(cl) + for key in dictio: dictio[key]=dictio[key].strip() + print "Header attributes:" + arcpy.AddMessage("Header attributes read") + print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + arcpy.AddMessage(wl) + arcpy.AddMessage("saved wl") + #Band names + if "band names" in dictio: + arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + arcpy.AddMessage("split competed") + bn=replace_in_list(expr_replace,bn) + arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + arcpy.AddMessage("Format composed band name") + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + arcpy.AddMessage("wl found") + full_bn= wl + arcpy.AddMessage(full_bn) + if deb==1: + print full_bn + print "Bands: "+len(full_bn) + arcpy.AddMessage("Finished reading header") + return full_bn + +##def save_bn_wl(): +## full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') +## +##def save_wl(): +## full_bn= '\n'.join(join_str.format(waveln=w) for w in itertools.izip(wl)).split('\n') + +## Starts the script +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + # Create the Geoprocessor object + gp = arcgisscripting.create() + + # Load required toolboxes + print "Start!" + #Type: Feature layer -buffer for the zonalStats + bf_Lx_1 = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #Type: Field -ID field + f = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #type: Feature layer - Feature in whose table the stats will be stored + Grid = arcpy.GetParameterAsText(1) + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + "\\" + Grid + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + + print Grid + #type: Raster layer + Raster = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #type: Field - Field for join and statistics + id_field = arcpy.GetParameterAsText(3) + arcpy.AddMessage("read " + id_field) + + #List of band names + hdr_file = os.path.join(str(rPath) + "\\" + desc.baseName+".hdr") + bandNames = letsgo(hdr_file) + #Next I was try ing to print the band number. Not yet + if type(bandNames).__name__ != 'int': + print r"# of bands in raster: "+str(len(bandNames)) + + #Folder to store the tables with the stats + tempGdb_path = r"C:\Users\usuario\Documents\ArcGIS" + tempGdb = r"Default.gdb" + #This is the path + tablesPath = os.path.join(tempGdb_path, tempGdb) + #Keep the individual stats tables? + #Either way the MEAN is stored to the table of the grid feature selected + keep_tables=False + # Execute CreateFileGDB + create_if_not_exists(tempGdb_path) + if not exists(tablesPath): + arcpy.CreateFileGDB_management(tempGdb_path, tempGdb) + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = id_field + gridLayer = "gridLayer" + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + i=1 + for b in bandNames: + arcpy.AddMessage("b: " + b) + band = Raster + "\\" + b + arcpy.AddMessage("band: " + band) + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + #Perform the zonalstatistics getting only the "MEAN" value of the cells + #"MEAN" can be changed to get different statistics: + #ALL,MEAN,MAJORITY,MAXIMUM,MEDIAN,MINIMUM,MINORITY,RANGE,STD,SUM,VARIETY,MIN_MAX,MEAN_STD,MIN_MAX_MEAN  + #arcpy.AddMessage("zs exists? : " + str(exists(path))) + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + fields = gp.ListFields(gridLayer, bandField) + field_found = fields.Next() + if (not field_found): + arcpy.AddField_management(gridLayer, bandField, "FLOAT", 10, 3, "", "", "NULLABLE", "NON_REQUIRED", "") + arcpy.AddMessage("Added. Before field not found " + str(bandField)) + else: + arcpy.AddMessage("field_found " + str(field_found.name)) + arcpy.AddMessage("field found " + str(bandField)) + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + if not keep_tables: arcpy.Delete_management(zs) + i+=1 + + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + + diff --git a/ArcGIS/extractOneBandToGDBFeature.py b/ArcGIS/extractOneBandToGDBFeature.py new file mode 100644 index 0000000..c2e6cc7 --- /dev/null +++ b/ArcGIS/extractOneBandToGDBFeature.py @@ -0,0 +1,122 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# extractOneBandToGDBFeature.py +# Created on: 2016-06-30 11:31:06.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: extractOneBandToGDBFeature +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import arcpy + +# Check out any necessary licenses +arcpy.CheckOutExtension("spatial") + +# Load required toolboxes +arcpy.ImportToolbox("Model Functions") +arcpy.ImportToolbox("C:/Dropbox/Software/Scripts/ArcGIS/Herramientas.tbx") + +# Set Geoprocessing environments +arcpy.env.snapRaster = "C:\\Dropbox\\data\\AD\\AD_nut\\ndvi_geo\\c160216jlonvi.tif" +arcpy.env.extent = "606004.483 3029183.7528 607206.2229 3030188.6423" + +# Script arguments +Buffer = arcpy.GetParameterAsText(0) +if Buffer == '#' or not Buffer: + Buffer = "C:\\Dropbox\\data\\AD\\AD_nut\\shp\\ad_GS.gdb\\areas\\areas_jlo" # provide a default value if unspecified + +Raster = arcpy.GetParameterAsText(1) +if Raster == '#' or not Raster: + Raster = "C:\\Dropbox\\data\\AD\\AD_nut\\ndvi_geo\\c160216jlonvi.tif" # provide a default value if unspecified + +Grid = arcpy.GetParameterAsText(2) +if Grid == '#' or not Grid: + Grid = "C:\\Dropbox\\data\\AD\\AD_nut\\shp\\ad_GS.gdb\\areas\\areas_jlo" # provide a default value if unspecified + +Folder_to_save_stats = arcpy.GetParameterAsText(3) +if Folder_to_save_stats == '#' or not Folder_to_save_stats: + Folder_to_save_stats = "C:\\Users\\usuario\\Documents\\ArcGIS\\Default.gdb" # provide a default value if unspecified + +Stats_table = arcpy.GetParameterAsText(4) +if Stats_table == '#' or not Stats_table: + Stats_table = "%Folder to save stats%\\%cam_date%_%trial%" # provide a default value if unspecified + +Zone_field_and_join_Field = arcpy.GetParameterAsText(5) +if Zone_field_and_join_Field == '#' or not Zone_field_and_join_Field: + Zone_field_and_join_Field = "Id" # provide a default value if unspecified + +Create_field_to_save_data = arcpy.GetParameterAsText(6) +if Create_field_to_save_data == '#' or not Create_field_to_save_data: + Create_field_to_save_data = "%cam_date%" # provide a default value if unspecified + +# Local variables: +areas_jlo_Layer__2_ = Stats_table +acbwypt_bf = areas_jlo_Layer__2_ +mean_value = acbwypt_bf +EYTBW__3_ = mean_value +stat_table = Stats_table +raster_name = Raster +date = raster_name +acsamtplotsbf__2_ = date +areas_jlo_Layer = acsamtplotsbf__2_ +trial = raster_name +cam = raster_name +cam_date = cam +grid_name = Grid +Expression = "%stat_table%.Mean IS NOT NULL" + +# Process: Parse Path (4) +arcpy.ParsePath_mb(Raster, "NAME") + +# Process: truncateString +arcpy.gp.toolbox = "C:/Dropbox/Software/Scripts/ArcGIS/Herramientas.tbx"; +# Warning: the toolbox C:/Dropbox/Software/Scripts/ArcGIS/Herramientas.tbx DOES NOT have an alias. +# Please assign this toolbox an alias to avoid tool name collisions +# And replace arcpy.gp.truncateString(...) with arcpy.truncateString_ALIAS(...) +arcpy.gp.truncateString("1", "7", raster_name) + +# Process: truncateString (3) +arcpy.gp.toolbox = "C:/Dropbox/Software/Scripts/ArcGIS/Herramientas.tbx"; +# Warning: the toolbox C:/Dropbox/Software/Scripts/ArcGIS/Herramientas.tbx DOES NOT have an alias. +# Please assign this toolbox an alias to avoid tool name collisions +# And replace arcpy.gp.truncateString(...) with arcpy.truncateString_ALIAS(...) +arcpy.gp.truncateString("0", "1", raster_name) + +# Process: Calculate Value +arcpy.CalculateValue_management("paste(\"%cam%\",\"%date%\")", "def paste(a,y):\\n return str(a)+str(y)", "String") + +# Process: Add Field +arcpy.AddField_management(Grid, Create_field_to_save_data, "FLOAT", "8", "3", "", "", "NULLABLE", "NON_REQUIRED", "") + +# Process: Make Feature Layer +arcpy.MakeFeatureLayer_management(acsamtplotsbf__2_, areas_jlo_Layer, "", "", "OBJECTID OBJECTID VISIBLE NONE;Shape Shape VISIBLE NONE;Id Id VISIBLE NONE;Shape_Length Shape_Length VISIBLE NONE;Shape_Area Shape_Area VISIBLE NONE;area area VISIBLE NONE;%cam_date% %cam_date% VISIBLE NONE") + +# Process: truncateString (2) +arcpy.gp.toolbox = "C:/Dropbox/Software/Scripts/ArcGIS/Herramientas.tbx"; +# Warning: the toolbox C:/Dropbox/Software/Scripts/ArcGIS/Herramientas.tbx DOES NOT have an alias. +# Please assign this toolbox an alias to avoid tool name collisions +# And replace arcpy.gp.truncateString(...) with arcpy.truncateString_ALIAS(...) +arcpy.gp.truncateString("7", "10", raster_name) + +# Process: Zonal Statistics as Table +arcpy.gp.ZonalStatisticsAsTable_sa(Buffer, Zone_field_and_join_Field, Raster, Stats_table, "DATA", "MEAN") + +# Process: Add Join +arcpy.AddJoin_management(areas_jlo_Layer, Zone_field_and_join_Field, Stats_table, Zone_field_and_join_Field, "KEEP_ALL") + +# Process: Parse Path (3) +arcpy.ParsePath_mb(Stats_table, "NAME") + +# Process: Select Layer By Attribute +arcpy.SelectLayerByAttribute_management(areas_jlo_Layer__2_, "NEW_SELECTION", Expression) + +# Process: Calculate Field +arcpy.CalculateField_management(acbwypt_bf, "%grid_name%.%Create field to save data%", "round(!%stat_table%.Mean!,3)", "PYTHON", "") + +# Process: Remove Join +arcpy.RemoveJoin_management(mean_value, "") + +# Process: Parse Path (2) +arcpy.ParsePath_mb(Grid, "NAME") + diff --git a/ArcGIS/extract_data_multi6bandas.py b/ArcGIS/extract_data_multi6bandas.py new file mode 100644 index 0000000..ca84756 --- /dev/null +++ b/ArcGIS/extract_data_multi6bandas.py @@ -0,0 +1,180 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# extract_data_multi6bandas.py +# Created on: 2015-07-10 11:06:16.00000 +# Description: +#This script takes 3 inputs: +#Buffer: zone feature to use as input for zonal statistic tool +#Grid: feature whose table will be used to save the mean values of the zonal statistic tool. +# This should contain the same features ID field than the "Buffer" input. +# A field named B1, B2... will be created to store the mean values for each zone for each band. +#Raster: Raster to use as input for zonal statistic tool (stats table stored in the feature location), along with the "Buffer". +# The script will iterate 6 bands +###The temporal stats tables are created in the default ArcGIS GDB +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy, arcgisscripting +import itertools +import traceback, sys + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception, e: + # If an error occurred, print line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path)else False + return exists + +## starts the script +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + # Create the Geoprocessor object + gp = arcgisscripting.create() + + # Load required toolboxes + print "Start!" + #Type: Feature layer of plots areas to extract data from the raster + bf_Lx_1 = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read buffer1 " + bf_Lx_1) + print bf_Lx_1 + + #type: Feature layer - Feature in whose table the stats will be stored. + #Needs to have a field matching the ID field, because a Join is made ith it + Grid = arcpy.GetParameterAsText(1) + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + "\\" + Grid + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + + print Grid + #type: Raster layer from which data will be extracted + Raster = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #type: Field - Field for join and statistics + id_field = arcpy.GetParameterAsText(3) + arcpy.AddMessage("read " + id_field) + + #Number of bands + bandNumber = desc.bandCount + arcpy.AddMessage("Number of bands: "+str(bandNumber)) + + #Folder to store the tables with the stats + tempGdb_path = r"C:\Users\usuario\Documents\ArcGIS" + tempGdb = r"Default.gdb" + #This is the path + tablesPath = os.path.join(tempGdb_path, tempGdb) + + #Keep the individual stats tables? + #Either way the MEAN is stored to the table of the grid feature selected + keep_tables=False + # Execute CreateFileGDB + create_if_not_exists(tempGdb_path) + if not exists(tablesPath): + arcpy.CreateFileGDB_management(tempGdb_path, tempGdb) + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = id_field + gridLayer = "gridLayer" + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + #It is assumed that the Band names are something like "Band_1" + for b in range(1, bandNumber+1): + arcpy.AddMessage("band: " + str(b)) + band = Raster + "\\Band_" + str(b) + arcpy.AddMessage("band: " + band) + bandField = "B" + str(b) + print bandField + #Set table name + tableName = gridName + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + + #Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + #print Expression_Select_layer + + #Round values + Expression_Calculate_field = "round(!"+tableName+".Mean!,2)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + #Perform the zonalstatistics getting only the "MEAN" value of the cells + #"MEAN" can be changed to get different statistics: + #ALL,MEAN,MAJORITY,MAXIMUM,MEDIAN,MINIMUM,MINORITY,RANGE,STD,SUM,VARIETY,MIN_MAX,MEAN_STD,MIN_MAX_MEAN  + #arcpy.AddMessage("zs exists? : " + str(exists(path))) + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + + ##Chech if the field where the value will be store exists + ##Otherwise, create it + fields = gp.ListFields(gridLayer, bandField) + field_found = fields.Next() + if (not field_found): + arcpy.AddField_management(gridLayer, bandField, "FLOAT", 10, 3, "", "", "NULLABLE", "NON_REQUIRED", "") + arcpy.AddMessage("Field not found, added: " + str(bandField)) + else: + arcpy.AddMessage("field_found " + str(field_found.name)) + arcpy.AddMessage("field found " + str(bandField)) + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayer, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + if not keep_tables: arcpy.Delete_management(zs) + + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + + diff --git a/ArcGIS/extract_multiband_raster.py b/ArcGIS/extract_multiband_raster.py new file mode 100644 index 0000000..3538d5c --- /dev/null +++ b/ArcGIS/extract_multiband_raster.py @@ -0,0 +1,325 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description:Gets zonal statistics from multiple bands of a Raster stores them in a feature (can extract from one feature and store statistics in another if they have the same ID or "Name" field). Gets band names from *.hdr file (needed). Can save the resulting table of the statistics +#This script takes 3 inputs: +#Buffer: zone feature to use as input for zonal statistic tool +#Grid: feature whose table will be used to save the mean values of the zonal statistic tool. +# This should contain the same features ID field than the "Buffer" input. +# A field named B1, B2... will be created to store the mean values for each zone for each band. +#Raster: Raster to use as input for zonal statistic tool, along with the "Buffer". +# The band information is read from the envi HDR file +###The temporal stats tables are created in the default ArcGIS GDB +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys + +def print_kwinfo(): + if deb==1: + print "kwinfo se guarda:" + print kwinfo + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception, e: + # If an error occurred, print line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path)else False + return exists + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension + +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window + +def letsgo(header_file): + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("Finished reading header lines") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la línea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print str(i)+"-l- "+str(l) + kwinfo+=l + if deb==1: print str(i)+"-kwinfo- "+str(kwinfo) + if ongoing==1: + if "}" in l: + if deb==1: print "ongoing==se cierra por fin el parentesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print "ongoing==1 else" + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print keyw+" attribute found" + if "{" in l: + if "}" in l: + if deb==1: print "ongoing==parentesis cerrando en linea" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print "if bracket in l: --- else" + else: + if deb==1: print "ongoing==sin paretesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print "fin de ronda de for" + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print regexpresion.findall(cl) + for key in dictio: dictio[key]=dictio[key].strip() + print "Header attributes:" + arcpy.AddMessage("Header attributes read") + print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + arcpy.AddMessage(wl) + arcpy.AddMessage("saved wl") + #Band names + if "band names" in dictio: + arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + arcpy.AddMessage("split competed") + bn=replace_in_list(expr_replace,bn) + arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + arcpy.AddMessage("Format composed band name") + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + arcpy.AddMessage("wl found") + full_bn= wl + arcpy.AddMessage(full_bn) + if deb==1: + print full_bn + print "Bands: "+len(full_bn) + arcpy.AddMessage("Finished reading header") + return full_bn + +##def save_bn_wl(): +## full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') +## +##def save_wl(): +## full_bn= '\n'.join(join_str.format(waveln=w) for w in itertools.izip(wl)).split('\n') + +## Starts the script +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + # Create the Geoprocessor object + gp = arcgisscripting.create() + + # Load required toolboxes + print "Start!" + #Type: Feature layer -buffer for the zonalStats + bf_Lx_1 = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #Type: Field -ID field + f = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #type: Feature layer - Feature in whose table the stats will be stored + Grid = arcpy.GetParameterAsText(1) + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + "\\" + Grid + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + + print Grid + #type: Raster layer + Raster = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #type: Field - Field for join and statistics + id_field = arcpy.GetParameterAsText(3) + arcpy.AddMessage("read " + id_field) + + #List of band names + hdr_file = os.path.join(str(rPath) + "\\" + desc.baseName+".hdr") + bandNames = letsgo(hdr_file) + #Next I was try ing to print the band number. Not yet + if type(bandNames).__name__ != 'int': + print r"# of bands in raster: "+str(len(bandNames)) + + #Folder to store the tables with the stats + tempGdb_path = r"C:\Users\usuario\Documents\ArcGIS" + tempGdb = r"Default.gdb" + #This is the path + tablesPath = os.path.join(tempGdb_path, tempGdb) + #Keep the individual stats tables? + #Either way the MEAN is stored to the table of the grid feature selected + keep_tables=False + # Execute CreateFileGDB + create_if_not_exists(tempGdb_path) + if not exists(tablesPath): + arcpy.CreateFileGDB_management(tempGdb_path, tempGdb) + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = id_field + gridLayer = "gridLayer" + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + i=1 + for b in bandNames: + arcpy.AddMessage("b: " + b) + band = Raster + "\\" + b + arcpy.AddMessage("band: " + band) + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + #Perform the zonalstatistics getting only the "MEAN" value of the cells + #"MEAN" can be changed to get different statistics: + #ALL,MEAN,MAJORITY,MAXIMUM,MEDIAN,MINIMUM,MINORITY,RANGE,STD,SUM,VARIETY,MIN_MAX,MEAN_STD,MIN_MAX_MEAN  + #arcpy.AddMessage("zs exists? : " + str(exists(path))) + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + fields = gp.ListFields(gridLayer, bandField) + field_found = fields.Next() + if (not field_found): + arcpy.AddField_management(gridLayer, bandField, "FLOAT", 10, 3, "", "", "NULLABLE", "NON_REQUIRED", "") + arcpy.AddMessage("Added. Before field not found " + str(bandField)) + else: + arcpy.AddMessage("field_found " + str(field_found.name)) + arcpy.AddMessage("field found " + str(bandField)) + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + if not keep_tables: arcpy.Delete_management(zs) + i+=1 + + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + + diff --git a/ArcGIS/field_check.py b/ArcGIS/field_check.py new file mode 100644 index 0000000..cc13e0b --- /dev/null +++ b/ArcGIS/field_check.py @@ -0,0 +1,73 @@ +#********************************************************************** +# Description: +# Tests if a field exists and outputs two booleans: +# Exists - true if the field exists, false if it doesn't exist +# Not_Exists - true if the field doesn't exist, false if it does exist +# (the logical NOT of the first output). +# +# Arguments: +# 0 - Table name +# 1 - Field name +# 2 - Exists (boolean - see above) +# 3 - Not_Exists (boolean - see above) +# +# Created by: ESRI +#********************************************************************** + +# Standard error handling - put everything in a try/except block +# +try: + + # Import system modules + import sys, string, os, arcgisscripting + + # Create the Geoprocessor object + gp = arcgisscripting.create() + + # Get input arguments - table name, field name + # + in_Table = gp.GetParameterAsText(0) + in_Field = gp.GetParameterAsText(1) + + # First check that the table exists + # + if not gp.Exists(in_Table): + raise Exception, "Input table does not exist" + + # Use the ListFields function to return a list of fields that matches + # the name of in_Field. This is a wildcard match. Since in_Field is an + # exact string (no wildcards like "*"), only one field should be returned, + # exactly matching the input field name. + # + fields = gp.ListFields(in_Table, in_Field) + + # If ListFields returned anything, the Next operator will fetch the + # field. We can use this as a Boolean condition. + # + field_found = fields.Next() + + # Branch depending on whether field found or not. Issue a + # message, and then set our two output variables accordingly + # + if field_found: + gp.AddMessage("Field %s found in %s" % (in_Field, in_Table)) + gp.SetParameterAsText(2, "True") + gp.SetParameterAsText(3, "False") + else: + gp.AddMessage("Field %s not found in %s" % (in_Field, in_Table)) + gp.SetParameterAsText(2, "False") + gp.SetParameterAsText(3, "True") + + +# Handle script errors +# +except Exception, errMsg: + + # If we have messages of severity error (2), we assume a GP tool raised it, + # so we'll output that. Otherwise, we assume we raised the error and the + # information is in errMsg. + # + if gp.GetMessages(2): + gp.AddError(GP.GetMessages(2)) + else: + gp.AddError(str(errMsg)) \ No newline at end of file diff --git a/ArcGIS/getLayerPath.py b/ArcGIS/getLayerPath.py new file mode 100644 index 0000000..b0384cd --- /dev/null +++ b/ArcGIS/getLayerPath.py @@ -0,0 +1,8 @@ +from os.path import exists + +#Get layer to obtain absolute path +layer = arcpy.GetParameterAsText(0) +arcpy.AddMessage("Layer is: " + layer) +desc = arcpy.Describe(layer) +path = desc.path +arcpy.SetParameterAsText(1, str(path)) diff --git a/ArcGIS/in not null.exp b/ArcGIS/in not null.exp new file mode 100644 index 0000000000000000000000000000000000000000..0d8a485aec9b44222f325dd9e84d5a43335c673e GIT binary patch literal 50 wcmY#lC}A*UFkvtNl7#%B?bisPas=?!H>b8Ap}f^GWY-?0HKHmbN~PV literal 0 HcmV?d00001 diff --git a/ArcGIS/iterate_raster_band_list.py b/ArcGIS/iterate_raster_band_list.py new file mode 100644 index 0000000..4e3ddbf --- /dev/null +++ b/ArcGIS/iterate_raster_band_list.py @@ -0,0 +1,44 @@ +import os +import arcpy +##No he podido obtener los nombres de las bandas en model builder... +workspace = "E:\\140117\\140117H\\ortho\\910\\140117_10_910.bsq" + +#List of band names hardcoded +#bands = ["392.03027","393.87228","395.71426","397.55627","399.39830","401.24026","403.08228","404.92430","406.76627","408.60828","410.45030","412.29227","414.13428","415.97630","417.81827","419.66028","421.50230","423.34427","425.18628","427.02830","428.87027","430.71228","432.55430","434.39627","436.23828","438.08030","439.92227","441.76428","443.60630","445.44827","447.29028","449.13230","450.97427","452.81628","454.65826","456.50027","458.34230","460.18427","462.02628","463.86830","465.71027","467.55228","469.39430","471.23627","473.07828","474.92030","476.76227","478.60428","480.44630","482.28827","484.13028","485.97230","487.81427","489.65628","491.49830","493.34027","495.18228","497.02430","498.86627","500.70828","502.55030","504.39227","506.23428","508.07626","509.91827","511.76028","513.60230","515.44430","517.28625","519.12830","520.97030","522.81226","524.65430","526.49630","528.33826","530.18030","532.02230","533.86426","535.70630","537.54830","539.39026","541.23230","543.07430","544.91626","546.75830","548.60030","550.44226","552.28430","554.12630","555.96826","557.81030","559.65230","561.49426","563.33630","565.17830","567.02026","568.86230","570.70430","572.54626","574.38830","576.23030","578.07227","579.91430","581.75630","583.59827","585.44030","587.28230","589.12427","590.96630","592.80830","594.65027","596.49225","598.33430","600.17630","602.01825","603.86030","605.70230","607.54425","609.38630","611.22830","613.07025","614.91230","616.75430","618.59625","620.43830","622.28030","624.12225","625.96430","627.80630","629.64825","631.49030","633.33230","635.17426","637.01630","638.85830","640.70026","642.54230","644.38430","646.22626","648.06830","649.91030","651.75226","653.59430","655.43630","657.27826","659.12030","660.96230","662.80426","664.64630","666.48830","668.33026","670.17230","672.01430","673.85626","675.69830","677.54030","679.38226","681.22430","683.06630","684.90826","686.75030","688.59230","690.43427","692.27630","694.11830","695.96027","697.80230","699.64430","701.48627","703.32830","705.17030","707.01227","708.85430","710.69630","712.53827","714.38025","716.22230","718.06430","719.90625","721.74830","723.59030","725.43225","727.27430","729.11630","730.95825","732.80030","734.64230","736.48425","738.32630","740.16830","742.01025","743.85230","745.69430","747.53625","749.37830","751.22030","753.06226","754.90430","756.74630","758.58826","760.43030","762.27230","764.11426","765.95630","767.79830","769.64026","771.48230","773.32430","775.16626","777.00830","778.85030","780.69226","782.53430","784.37630","786.21826","788.06030","789.90230","791.74426","793.58630","795.42830","797.27026","799.11230","800.95430","802.79626","804.63830","806.48030","808.32227","810.16430","812.00630","813.84827","815.69030","817.53230","819.37427","821.21630","823.05830","824.90027","826.74225","828.58430","830.42630","832.26825","834.11030","835.95230","837.79425","839.63630","841.47830","843.32025","845.16230","847.00430","848.84625","850.68830"] + +#rasterList = arcpy.ListRasters("140117_1", "BSQ") + +##for r in rasterList: +## rasterPath = filePath + "\\" + r +## desc = arcpy.Describe(rasterPath) +## desc.bandCount +## if desc.bandCount == 250: +## print r +## for band in bands: +## bandPath = rasterPath + "\\" + band +## desc = arcpy.Describe(bandPath) +## print band + " es tipo : " +desc.pixelType + +##path = "E:\\140117\\140117H\\ortho" +##raster = "" +##workspace = os.path.join(path, raster) +##print workspace +##bands = [] +##for dirpath, dirnames, filenames in arcpy.da.Walk(workspace): +## for filename in filenames: +## print "filename : "+filename +## for dirname in dirnames: +## print "dirname : "+dirname +## for dirp in dirpath: +## print "dirpath : "+dirp + +for root, dirs, files in os.walk(workspace): + for name in files: + bands = os.path.join(root,name) + print bands + print root + print dirs + + + + diff --git a/ArcGIS/joinZonalStats_hyper_BW - fijo.py b/ArcGIS/joinZonalStats_hyper_BW - fijo.py new file mode 100644 index 0000000..84c44b6 --- /dev/null +++ b/ArcGIS/joinZonalStats_hyper_BW - fijo.py @@ -0,0 +1,134 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy + +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + #workspace + + bwPath = "D:\\AB2013-2014\\Bread_wheat" + bwVectoresPath = bwPath + "\\" + "vectores" + bwDataPath = bwPath + "\\" + "data" + bwGdbPath = bwPath + "\\" + "AB_BreadWheat.gdb" + arcpy.env.workspace = bwPath + + #List of band names + #bandNames = ["392.03027","393.87228","395.71426","397.55627","399.39830","401.24026","403.08228","404.92430","406.76627","408.60828","410.45030","412.29227","414.13428","415.97630","417.81827","419.66028","421.50230","423.34427","425.18628","427.02830","428.87027","430.71228","432.55430","434.39627","436.23828","438.08030","439.92227","441.76428","443.60630","445.44827","447.29028","449.13230","450.97427","452.81628","454.65826","456.50027","458.34230","460.18427","462.02628","463.86830","465.71027","467.55228","469.39430","471.23627","473.07828","474.92030","476.76227","478.60428","480.44630","482.28827","484.13028","485.97230","487.81427","489.65628","491.49830","493.34027","495.18228","497.02430","498.86627","500.70828","502.55030","504.39227","506.23428","508.07626","509.91827","511.76028","513.60230","515.44430","517.28625","519.12830","520.97030","522.81226","524.65430","526.49630","528.33826","530.18030","532.02230","533.86426","535.70630","537.54830","539.39026","541.23230","543.07430","544.91626","546.75830","548.60030","550.44226","552.28430","554.12630","555.96826","557.81030","559.65230","561.49426","563.33630","565.17830","567.02026","568.86230","570.70430","572.54626","574.38830","576.23030","578.07227","579.91430","581.75630","583.59827","585.44030","587.28230","589.12427","590.96630","592.80830","594.65027","596.49225","598.33430","600.17630","602.01825","603.86030","605.70230","607.54425","609.38630","611.22830","613.07025","614.91230","616.75430","618.59625","620.43830","622.28030","624.12225","625.96430","627.80630","629.64825","631.49030","633.33230","635.17426","637.01630","638.85830","640.70026","642.54230","644.38430","646.22626","648.06830","649.91030","651.75226","653.59430","655.43630","657.27826","659.12030","660.96230","662.80426","664.64630","666.48830","668.33026","670.17230","672.01430","673.85626","675.69830","677.54030","679.38226","681.22430","683.06630","684.90826","686.75030","688.59230","690.43427","692.27630","694.11830","695.96027","697.80230","699.64430","701.48627","703.32830","705.17030","707.01227","708.85430","710.69630","712.53827","714.38025","716.22230","718.06430","719.90625","721.74830","723.59030","725.43225","727.27430","729.11630","730.95825","732.80030","734.64230","736.48425","738.32630","740.16830","742.01025","743.85230","745.69430","747.53625","749.37830","751.22030","753.06226","754.90430","756.74630","758.58826","760.43030","762.27230","764.11426","765.95630","767.79830","769.64026","771.48230","773.32430","775.16626","777.00830","778.85030","780.69226","782.53430","784.37630","786.21826","788.06030","789.90230","791.74426","793.58630","795.42830","797.27026","799.11230","800.95430","802.79626","804.63830","806.48030","808.32227","810.16430","812.00630","813.84827","815.69030","817.53230","819.37427","821.21630","823.05830","824.90027","826.74225","828.58430","830.42630","832.26825","834.11030","835.95230","837.79425","839.63630","841.47830","843.32025","845.16230","847.00430","848.84625","850.68830"] + #Short list of band names for test + bandNames = ["392.03027","393.87228"] + + + # Load required toolboxes + #arcpy.ImportToolbox("Model Functions") + + # Script arguments + #bf_Lx_2 = arcpy.GetParameterAsText(0) + #if bf_Lx_2 == '#' or not bf_Lx_2: + bf_Lx_2 = bwVectoresPath + "\\" + "EYTBWMEL\\H\\H140117_EYTBWMEL_bf_L3.shp" # provide a default value if unspecified + + #bf_Lx_1 = arcpy.GetParameterAsText(1) + #if bf_Lx_1 == '#' or not bf_Lx_1: + bf_Lx_1 = bwVectoresPath + "\\" + "EYTBWH_early\\H\\H140117_EYTBWEH_bf_L3.shp" # provide a default value if unspecified + + #Grid = arcpy.GetParameterAsText(2) + #if Grid == '#' or not Grid: + gridName = "H140117_BW" + Grid = bwGdbPath + "\\" + gridName # provide a default value if unspecified + + #L_Stats_table = arcpy.GetParameterAsText(3) + #if L_Stats_table == '#' or not L_Stats_table: + # L_Stats_table = "D:\\AB2013-2014\\Bread_wheat\\data\\140117\\L3\\b1" # provide a default value if unspecified + + #Raster = arcpy.GetParameterAsText(4) + #if Raster == '#' or not Raster: + Raster = "E:\\140117\\140117H\\ortho\\140117_3_810.bsq" # provide a default value if unspecified + + #Folder to store the tables with the bands + #tablesPath = arcpy.GetParameterAsText(5) + #if tablesPath == '#' or not tablesPath: + # tablesPath = bwDataPath # provide a default value if unspecified + tablesPath = bwDataPath + "\\" + "140117\\L3" + + # Local variables: + Zone_field_and_join_Field = "Name" + gridLayer = "gridLayer" + #Field_Name_Calculate_field = "%grid_name%.%B%" + #Expression_Calculate_field = "[%B%:Mean]" + #Expression_Select_layer = "\"%B%:Mean\" IS NOT NULL" + + #Check fields + #fields = arcpy.ListFields(Grid) + #for fld in fields: + # print fld.name + + ## Make a layer + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + L_merge = bwVectoresPath + "\\" + "merge_temp" + "\\" + "l_merge.shp" + + # Process: Merge + arcpy.Merge_management(bf_Lx_1+";"+bf_Lx_2, L_merge) + print "merging " + bf_Lx_1 + ";" + bf_Lx_2 + + i=1 + for b in bandNames: + band = Raster + "\\" + b + bandField = "B" + str(i) + print bandField + L_Stats_table = tablesPath + "\\" + bandField + ".dbf" + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Calculate_field = "!"+bandField+".Mean!" + print Expression_Calculate_field + Expression_Select_layer = "\""+bandField+".Mean\" IS NOT NULL" + print Expression_Select_layer + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + + # Process: Add Join + print "Joining..." + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, L_Stats_table, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + print "Selecting Layer..." + arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.CalculateField_management(gridLayer, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.RemoveJoin_management(gridLayer, "") + + i+=1 + + + # Process: parse_table_name + #arcpy.ParsePath_mb(L_Stats_table, "NAME") + + # Process: Parse_grid_name + #arcpy.ParsePath_mb(Grid, "NAME") + arcpy.Delete_management(L_merge) + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + print "Line %i" % tb.tb_lineno + print e.message + diff --git a/ArcGIS/joinZonalStats_hyper_BW - fijo1.py b/ArcGIS/joinZonalStats_hyper_BW - fijo1.py new file mode 100644 index 0000000..fbd912e --- /dev/null +++ b/ArcGIS/joinZonalStats_hyper_BW - fijo1.py @@ -0,0 +1,167 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy + +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + #workspace + + bwPath = "D:\\AB2013-2014\\Bread_wheat" + bwVectoresPath = bwPath + "\\" + "vectores" + bwDataPath = bwPath + "\\" + "data" + bwGdbPath = bwPath + "\\" + "AB_BreadWheat.gdb" + tempGdb = "C:\\vuelos\\temp.gdb" + arcpy.env.workspace = tempGdb + + #List of band names + bandNames = ["392.03027","393.87228","395.71426","397.55627","399.39830","401.24026","403.08228","404.92430","406.76627","408.60828","410.45030","412.29227","414.13428","415.97630","417.81827","419.66028","421.50230","423.34427","425.18628","427.02830","428.87027","430.71228","432.55430","434.39627","436.23828","438.08030","439.92227","441.76428","443.60630","445.44827","447.29028","449.13230","450.97427","452.81628","454.65826","456.50027","458.34230","460.18427","462.02628","463.86830","465.71027","467.55228","469.39430","471.23627","473.07828","474.92030","476.76227","478.60428","480.44630","482.28827","484.13028","485.97230","487.81427","489.65628","491.49830","493.34027","495.18228","497.02430","498.86627","500.70828","502.55030","504.39227","506.23428","508.07626","509.91827","511.76028","513.60230","515.44430","517.28625","519.12830","520.97030","522.81226","524.65430","526.49630","528.33826","530.18030","532.02230","533.86426","535.70630","537.54830","539.39026","541.23230","543.07430","544.91626","546.75830","548.60030","550.44226","552.28430","554.12630","555.96826","557.81030","559.65230","561.49426","563.33630","565.17830","567.02026","568.86230","570.70430","572.54626","574.38830","576.23030","578.07227","579.91430","581.75630","583.59827","585.44030","587.28230","589.12427","590.96630","592.80830","594.65027","596.49225","598.33430","600.17630","602.01825","603.86030","605.70230","607.54425","609.38630","611.22830","613.07025","614.91230","616.75430","618.59625","620.43830","622.28030","624.12225","625.96430","627.80630","629.64825","631.49030","633.33230","635.17426","637.01630","638.85830","640.70026","642.54230","644.38430","646.22626","648.06830","649.91030","651.75226","653.59430","655.43630","657.27826","659.12030","660.96230","662.80426","664.64630","666.48830","668.33026","670.17230","672.01430","673.85626","675.69830","677.54030","679.38226","681.22430","683.06630","684.90826","686.75030","688.59230","690.43427","692.27630","694.11830","695.96027","697.80230","699.64430","701.48627","703.32830","705.17030","707.01227","708.85430","710.69630","712.53827","714.38025","716.22230","718.06430","719.90625","721.74830","723.59030","725.43225","727.27430","729.11630","730.95825","732.80030","734.64230","736.48425","738.32630","740.16830","742.01025","743.85230","745.69430","747.53625","749.37830","751.22030","753.06226","754.90430","756.74630","758.58826","760.43030","762.27230","764.11426","765.95630","767.79830","769.64026","771.48230","773.32430","775.16626","777.00830","778.85030","780.69226","782.53430","784.37630","786.21826","788.06030","789.90230","791.74426","793.58630","795.42830","797.27026","799.11230","800.95430","802.79626","804.63830","806.48030","808.32227","810.16430","812.00630","813.84827","815.69030","817.53230","819.37427","821.21630","823.05830","824.90027","826.74225","828.58430","830.42630","832.26825","834.11030","835.95230","837.79425","839.63630","841.47830","843.32025","845.16230","847.00430","848.84625","850.68830"] + #Short list of band names for test + #bandNames = ["392.03027","393.87228"] + + + # Load required toolboxes + #arcpy.ImportToolbox("Model Functions") + print "Start!" + #Type: shapefile + #bf_Lx_1 = arcpy.GetParameterAsText(0) + #if bf_Lx_1 == '#' or not bf_Lx_1: + bf_Lx_1 = bwVectoresPath + "\\" + "EYTBWH_early\\H\\H140117_EYTBWEH_bf_L3.shp" # provide a default value if unspecified + + # Script arguments + #bf_Lx_2 = arcpy.GetParameterAsText(1) + #if bf_Lx_2 == '#' or not bf_Lx_2: + bf_Lx_2 = bwVectoresPath + "\\" + "EYTBWMEL\\H\\H140117_EYTBWMEL_bf_L3.shp" # provide a default value if unspecified + + # Script arguments + #bf_Lx_3 = arcpy.GetParameterAsText(2) + #if bf_Lx_3 == '#' or not bf_Lx_3: + bf_Lx_3 = '#' + #bf_Lx_3 = bwVectoresPath + "\\" + "EYTBWMEL\\H\\H140117_EYTBWMEL_bf_L3.shp" # provide a default value if unspecified + + #Grid = arcpy.GetParameterAsText(3) + #if Grid == '#' or not Grid: + #Grid = "H140117_BW" # provide a default value if unspecified + gridName = "H140117_BW" + Grid = bwGdbPath + "\\" + gridName + + #L_Stats_table = arcpy.GetParameterAsText(4) + #if L_Stats_table == '#' or not L_Stats_table: + # L_Stats_table = "D:\\AB2013-2014\\Bread_wheat\\data\\140117\\L3\\b1" # provide a default value if unspecified + + #Raster = arcpy.GetParameterAsText(5) + #if Raster == '#' or not Raster: + #Raster = "E:\\140117\\140117H\\ortho\\140117_3_810.bsq" # provide a default value if unspecified + Raster = "c:\\vuelos\\140117_3_810.bsq" + + #Folder to store the tables with the bands + #tablesPath = arcpy.GetParameterAsText(6) + #if tablesPath == '#' or not tablesPath: + # tablesPath = bwDataPath # provide a default value if unspecified + tablesPath = tempGdb #+ "\\" + "140117" + + # Local variables: + Zone_field_and_join_Field = "Name" + gridLayer = "gridLayer" + #Field_Name_Calculate_field = "%grid_name%.%B%" + #Expression_Calculate_field = "[%B%:Mean]" + #Expression_Select_layer = "\"%B%:Mean\" IS NOT NULL" + + #Check fields + #fields = arcpy.ListFields(Grid) + #for fld in fields: + # print fld.name + + ## Make a layer + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + L_merge = tempGdb + "\\l_merge" + + # Process: Merge + print "merging..." + if bf_Lx_3 == '#' or not bf_Lx_3: + if bf_Lx_2 == '#' or not bf_Lx_2: + arcpy.CopyFeatures_management(bf_Lx_1, L_merge) + print "One input buffer" + else: + arcpy.Merge_management(bf_Lx_1+";"+bf_Lx_2, L_merge) + print "Two input buffer" + else: + arcpy.Merge_management(bf_Lx_1+";"+bf_Lx_2+";"+bf_Lx_3, L_merge) + print "Tree input buffer" + + #Line + line = bf_Lx_1[-6:-4] + + i=1 + for b in bandNames: + band = Raster + "\\" + b + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + line + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + print Expression_Select_layer + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + + # Process: Add Join + print "Joining..." + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, L_Stats_table, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + arcpy.Delete_management(L_Stats_table) + i+=1 + + # Process: parse_table_name + #arcpy.ParsePath_mb(L_Stats_table, "NAME") + + # Process: Parse_grid_name + #arcpy.ParsePath_mb(Grid, "NAME") + #Erase merge file + arcpy.Delete_management(L_merge) + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + print "Line %i" % tb.tb_lineno + print e.message + print "OMG!" + diff --git a/ArcGIS/joinZonalStats_hyper_BW - fijo2.py b/ArcGIS/joinZonalStats_hyper_BW - fijo2.py new file mode 100644 index 0000000..c9b0542 --- /dev/null +++ b/ArcGIS/joinZonalStats_hyper_BW - fijo2.py @@ -0,0 +1,167 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy + +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + #workspace + + bwPath = "D:\\AB2013-2014\\Bread_wheat" + bwVectoresPath = bwPath + "\\" + "vectores" + bwDataPath = bwPath + "\\" + "data" + bwGdbPath = bwPath + "\\" + "AB_BreadWheat.gdb" + tempGdb = "C:\\vuelos\\temp.gdb" + arcpy.env.workspace = tempGdb + + #List of band names + bandNames = ["392.03027","393.87228","395.71426","397.55627","399.39830","401.24026","403.08228","404.92430","406.76627","408.60828","410.45030","412.29227","414.13428","415.97630","417.81827","419.66028","421.50230","423.34427","425.18628","427.02830","428.87027","430.71228","432.55430","434.39627","436.23828","438.08030","439.92227","441.76428","443.60630","445.44827","447.29028","449.13230","450.97427","452.81628","454.65826","456.50027","458.34230","460.18427","462.02628","463.86830","465.71027","467.55228","469.39430","471.23627","473.07828","474.92030","476.76227","478.60428","480.44630","482.28827","484.13028","485.97230","487.81427","489.65628","491.49830","493.34027","495.18228","497.02430","498.86627","500.70828","502.55030","504.39227","506.23428","508.07626","509.91827","511.76028","513.60230","515.44430","517.28625","519.12830","520.97030","522.81226","524.65430","526.49630","528.33826","530.18030","532.02230","533.86426","535.70630","537.54830","539.39026","541.23230","543.07430","544.91626","546.75830","548.60030","550.44226","552.28430","554.12630","555.96826","557.81030","559.65230","561.49426","563.33630","565.17830","567.02026","568.86230","570.70430","572.54626","574.38830","576.23030","578.07227","579.91430","581.75630","583.59827","585.44030","587.28230","589.12427","590.96630","592.80830","594.65027","596.49225","598.33430","600.17630","602.01825","603.86030","605.70230","607.54425","609.38630","611.22830","613.07025","614.91230","616.75430","618.59625","620.43830","622.28030","624.12225","625.96430","627.80630","629.64825","631.49030","633.33230","635.17426","637.01630","638.85830","640.70026","642.54230","644.38430","646.22626","648.06830","649.91030","651.75226","653.59430","655.43630","657.27826","659.12030","660.96230","662.80426","664.64630","666.48830","668.33026","670.17230","672.01430","673.85626","675.69830","677.54030","679.38226","681.22430","683.06630","684.90826","686.75030","688.59230","690.43427","692.27630","694.11830","695.96027","697.80230","699.64430","701.48627","703.32830","705.17030","707.01227","708.85430","710.69630","712.53827","714.38025","716.22230","718.06430","719.90625","721.74830","723.59030","725.43225","727.27430","729.11630","730.95825","732.80030","734.64230","736.48425","738.32630","740.16830","742.01025","743.85230","745.69430","747.53625","749.37830","751.22030","753.06226","754.90430","756.74630","758.58826","760.43030","762.27230","764.11426","765.95630","767.79830","769.64026","771.48230","773.32430","775.16626","777.00830","778.85030","780.69226","782.53430","784.37630","786.21826","788.06030","789.90230","791.74426","793.58630","795.42830","797.27026","799.11230","800.95430","802.79626","804.63830","806.48030","808.32227","810.16430","812.00630","813.84827","815.69030","817.53230","819.37427","821.21630","823.05830","824.90027","826.74225","828.58430","830.42630","832.26825","834.11030","835.95230","837.79425","839.63630","841.47830","843.32025","845.16230","847.00430","848.84625","850.68830"] + #Short list of band names for test + #bandNames = ["392.03027","393.87228"] + + + # Load required toolboxes + #arcpy.ImportToolbox("Model Functions") + print "Start!" + #Type: shapefile + #bf_Lx_1 = arcpy.GetParameterAsText(0) + #if bf_Lx_1 == '#' or not bf_Lx_1: + bf_Lx_1 = bwVectoresPath + "\\" + "EYTBWH_early\\H\\H140117_EYTBWEH_bf_L3.shp" # provide a default value if unspecified + + # Script arguments + #bf_Lx_2 = arcpy.GetParameterAsText(1) + #if bf_Lx_2 == '#' or not bf_Lx_2: + bf_Lx_2 = bwVectoresPath + "\\" + "EYTBWMEL\\H\\H140117_EYTBWMEL_bf_L3.shp" # provide a default value if unspecified + + # Script arguments + #bf_Lx_3 = arcpy.GetParameterAsText(2) + #if bf_Lx_3 == '#' or not bf_Lx_3: + bf_Lx_3 = '#' + #bf_Lx_3 = bwVectoresPath + "\\" + "EYTBWMEL\\H\\H140117_EYTBWMEL_bf_L3.shp" # provide a default value if unspecified + + #Grid = arcpy.GetParameterAsText(3) + #if Grid == '#' or not Grid: + #Grid = "H140117_BW" # provide a default value if unspecified + gridName = "H140117_BW" + Grid = bwGdbPath + "\\" + gridName + + #L_Stats_table = arcpy.GetParameterAsText(4) + #if L_Stats_table == '#' or not L_Stats_table: + # L_Stats_table = "D:\\AB2013-2014\\Bread_wheat\\data\\140117\\L3\\b1" # provide a default value if unspecified + + #Raster = arcpy.GetParameterAsText(5) + #if Raster == '#' or not Raster: + #Raster = "E:\\140117\\140117H\\ortho\\140117_3_810.bsq" # provide a default value if unspecified + Raster = "c:\\vuelos\\140117_3_810.bsq" + + #Folder to store the tables with the bands + #tablesPath = arcpy.GetParameterAsText(6) + #if tablesPath == '#' or not tablesPath: + # tablesPath = bwDataPath # provide a default value if unspecified + tablesPath = tempGdb #+ "\\" + "140117" + + # Local variables: + Zone_field_and_join_Field = "Name" + gridLayer = "gridLayer" + + ## Make a layer + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + #Where to store the merge feature + L_merge = tempGdb + "\\l_merge" + + #List of features to merge + mergeList = "" + + # Process: Merge + print "merging..." + if bf_Lx_3 == '#' or not bf_Lx_3: + if bf_Lx_2 == '#' or not bf_Lx_2: + #arcpy.CopyFeatures_management(bf_Lx_1, L_merge) + mergeList = bf_Lx_1 + print "One input buffer" + else: + #arcpy.Merge_management(bf_Lx_1+";"+bf_Lx_2, L_merge) + mergeList += ";"+bf_Lx_2 + print "Two input buffer" + else: + #arcpy.Merge_management(bf_Lx_1+";"+bf_Lx_2+";"+bf_Lx_3, L_merge) + mergeList += ";"+bf_Lx_3 + print "Tree input buffer" + arcpy.Merge_management(mergeList, L_merge) + #Line + line = bf_Lx_1[-6:-4] + + i=1 + for b in bandNames: + band = Raster + "\\" + b + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + line + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + + # Process: Add Join + print "Joining..." + arcpy.JoinField_management(gridLayer, Zone_field_and_join_Field, L_Stats_table, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + arcpy.Delete_management(L_Stats_table) + i+=1 + + # Process: parse_table_name + #arcpy.ParsePath_mb(L_Stats_table, "NAME") + + # Process: Parse_grid_name + #arcpy.ParsePath_mb(Grid, "NAME") + #Erase merge file + arcpy.Delete_management(L_merge) + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + print "Line %i" % tb.tb_lineno + print e.message + print "OMG!" + diff --git a/ArcGIS/joinZonalStats_hyper_BW.py b/ArcGIS/joinZonalStats_hyper_BW.py new file mode 100644 index 0000000..8e0d421 --- /dev/null +++ b/ArcGIS/joinZonalStats_hyper_BW.py @@ -0,0 +1,193 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy + +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + #workspace + + bwPath = "D:\\AB2013-2014\\Bread_wheat" + bwVectoresPath = bwPath + "\\" + "vectores" + bwDataPath = bwPath + "\\" + "data" + bwGdbPath = bwPath + "\\" + "AB_BreadWheat.gdb" + tempGdb = "C:\\vuelos\\temp.gdb" + arcpy.env.workspace = bwPath + + #List of band names + bandNames = ["392.03027","393.87228","395.71426","397.55627","399.39830","401.24026","403.08228","404.92430","406.76627","408.60828","410.45030","412.29227","414.13428","415.97630","417.81827","419.66028","421.50230","423.34427","425.18628","427.02830","428.87027","430.71228","432.55430","434.39627","436.23828","438.08030","439.92227","441.76428","443.60630","445.44827","447.29028","449.13230","450.97427","452.81628","454.65826","456.50027","458.34230","460.18427","462.02628","463.86830","465.71027","467.55228","469.39430","471.23627","473.07828","474.92030","476.76227","478.60428","480.44630","482.28827","484.13028","485.97230","487.81427","489.65628","491.49830","493.34027","495.18228","497.02430","498.86627","500.70828","502.55030","504.39227","506.23428","508.07626","509.91827","511.76028","513.60230","515.44430","517.28625","519.12830","520.97030","522.81226","524.65430","526.49630","528.33826","530.18030","532.02230","533.86426","535.70630","537.54830","539.39026","541.23230","543.07430","544.91626","546.75830","548.60030","550.44226","552.28430","554.12630","555.96826","557.81030","559.65230","561.49426","563.33630","565.17830","567.02026","568.86230","570.70430","572.54626","574.38830","576.23030","578.07227","579.91430","581.75630","583.59827","585.44030","587.28230","589.12427","590.96630","592.80830","594.65027","596.49225","598.33430","600.17630","602.01825","603.86030","605.70230","607.54425","609.38630","611.22830","613.07025","614.91230","616.75430","618.59625","620.43830","622.28030","624.12225","625.96430","627.80630","629.64825","631.49030","633.33230","635.17426","637.01630","638.85830","640.70026","642.54230","644.38430","646.22626","648.06830","649.91030","651.75226","653.59430","655.43630","657.27826","659.12030","660.96230","662.80426","664.64630","666.48830","668.33026","670.17230","672.01430","673.85626","675.69830","677.54030","679.38226","681.22430","683.06630","684.90826","686.75030","688.59230","690.43427","692.27630","694.11830","695.96027","697.80230","699.64430","701.48627","703.32830","705.17030","707.01227","708.85430","710.69630","712.53827","714.38025","716.22230","718.06430","719.90625","721.74830","723.59030","725.43225","727.27430","729.11630","730.95825","732.80030","734.64230","736.48425","738.32630","740.16830","742.01025","743.85230","745.69430","747.53625","749.37830","751.22030","753.06226","754.90430","756.74630","758.58826","760.43030","762.27230","764.11426","765.95630","767.79830","769.64026","771.48230","773.32430","775.16626","777.00830","778.85030","780.69226","782.53430","784.37630","786.21826","788.06030","789.90230","791.74426","793.58630","795.42830","797.27026","799.11230","800.95430","802.79626","804.63830","806.48030","808.32227","810.16430","812.00630","813.84827","815.69030","817.53230","819.37427","821.21630","823.05830","824.90027","826.74225","828.58430","830.42630","832.26825","834.11030","835.95230","837.79425","839.63630","841.47830","843.32025","845.16230","847.00430","848.84625","850.68830"] + #Short list of band names for test + #bandNames = ["392.03027","393.87228"] #Testing purpose + + + # Load required toolboxes + print "Start!" + #Type: Feature layer + bf_Lx_1 = arcpy.GetParameterAsText(0) + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + + #Type: Feature layer + # Script arguments + bf_Lx_2 = arcpy.GetParameterAsText(1) + #bf_Lx_2 = bwVectoresPath + "\\" + "EYTBWMEL\\H\\H140117_EYTBWMEL_bf_L3.shp" # provide a default value if unspecified + arcpy.AddMessage("read b2 " + bf_Lx_2) + print bf_Lx_2 + + #Type: Feature layer + # Script arguments + bf_Lx_3 = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read b3 " + bf_Lx_2) + print bf_Lx_3 + + #type: Feature layer + Grid = arcpy.GetParameterAsText(3) + #gridName = "H140117_BW" + #Grid = bwGdbPath + "\\" + gridName + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + "\\" + Grid + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + + print Grid + + #type: Raster layer + Raster = arcpy.GetParameterAsText(4) + #Raster = "E:\\140117\\140117H\\ortho\\140117_3_810.bsq" # provide a default value if unspecified + #Raster = "c:\\vuelos\\140117_3_810.bsq" + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #Folder to store the tables with the bands + #type: Geodatabase + #tablesPath = arcpy.GetParameterAsText(5) + tablesPath = tempGdb + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = "Name" + gridLayer = "gridLayer" + #Line + line = bf_Lx_1[-2:] + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + #Where to store the merge feature + print "Where to store the merge feature" + L_merge = tempGdb + "\\l_merge" + arcpy.AddMessage("merge path: " + L_merge) + if arcpy.Exists(L_merge): + arcpy.Delete_management(L_merge) + + #List of features to merge + mergeList = "" + + # Process: Merge + arcpy.AddMessage("Merging") + print "merging..." + if bf_Lx_1 != '#': + mergeList += bf_Lx_1 + if bf_Lx_2 != '#': + mergeList += ";"+bf_Lx_2 + if bf_Lx_3 != '#': + mergeList += ";"+bf_Lx_3 + arcpy.AddMessage("merge List: " + str(mergeList)) + m = arcpy.Merge_management(mergeList, L_merge) + arcpy.AddMessage(m) + + i=1 + for b in bandNames: + band = Raster + "\\" + b + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + line + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + +## # Process: Join Field +## print "Joining Field..." +## arcpy.AddMessage("Joining Field...") +## arcpy.JoinField_management(gridLayer, Zone_field_and_join_Field, L_Stats_table, Zone_field_and_join_Field, "MEAN") + + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + #arcpy.Delete_management(zs) + i+=1 + + #Erase merge file + arcpy.AddMessage("delete merge temp") + arcpy.Delete_management(L_merge) + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + print "Line %i" % tb.tb_lineno + arcpy.AddMessage("Error " + e.message) + print e.message + print "OMG!" + + diff --git a/ArcGIS/joinZonalStats_hyper_BWspr.py b/ArcGIS/joinZonalStats_hyper_BWspr.py new file mode 100644 index 0000000..8e0d421 --- /dev/null +++ b/ArcGIS/joinZonalStats_hyper_BWspr.py @@ -0,0 +1,193 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy + +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + #workspace + + bwPath = "D:\\AB2013-2014\\Bread_wheat" + bwVectoresPath = bwPath + "\\" + "vectores" + bwDataPath = bwPath + "\\" + "data" + bwGdbPath = bwPath + "\\" + "AB_BreadWheat.gdb" + tempGdb = "C:\\vuelos\\temp.gdb" + arcpy.env.workspace = bwPath + + #List of band names + bandNames = ["392.03027","393.87228","395.71426","397.55627","399.39830","401.24026","403.08228","404.92430","406.76627","408.60828","410.45030","412.29227","414.13428","415.97630","417.81827","419.66028","421.50230","423.34427","425.18628","427.02830","428.87027","430.71228","432.55430","434.39627","436.23828","438.08030","439.92227","441.76428","443.60630","445.44827","447.29028","449.13230","450.97427","452.81628","454.65826","456.50027","458.34230","460.18427","462.02628","463.86830","465.71027","467.55228","469.39430","471.23627","473.07828","474.92030","476.76227","478.60428","480.44630","482.28827","484.13028","485.97230","487.81427","489.65628","491.49830","493.34027","495.18228","497.02430","498.86627","500.70828","502.55030","504.39227","506.23428","508.07626","509.91827","511.76028","513.60230","515.44430","517.28625","519.12830","520.97030","522.81226","524.65430","526.49630","528.33826","530.18030","532.02230","533.86426","535.70630","537.54830","539.39026","541.23230","543.07430","544.91626","546.75830","548.60030","550.44226","552.28430","554.12630","555.96826","557.81030","559.65230","561.49426","563.33630","565.17830","567.02026","568.86230","570.70430","572.54626","574.38830","576.23030","578.07227","579.91430","581.75630","583.59827","585.44030","587.28230","589.12427","590.96630","592.80830","594.65027","596.49225","598.33430","600.17630","602.01825","603.86030","605.70230","607.54425","609.38630","611.22830","613.07025","614.91230","616.75430","618.59625","620.43830","622.28030","624.12225","625.96430","627.80630","629.64825","631.49030","633.33230","635.17426","637.01630","638.85830","640.70026","642.54230","644.38430","646.22626","648.06830","649.91030","651.75226","653.59430","655.43630","657.27826","659.12030","660.96230","662.80426","664.64630","666.48830","668.33026","670.17230","672.01430","673.85626","675.69830","677.54030","679.38226","681.22430","683.06630","684.90826","686.75030","688.59230","690.43427","692.27630","694.11830","695.96027","697.80230","699.64430","701.48627","703.32830","705.17030","707.01227","708.85430","710.69630","712.53827","714.38025","716.22230","718.06430","719.90625","721.74830","723.59030","725.43225","727.27430","729.11630","730.95825","732.80030","734.64230","736.48425","738.32630","740.16830","742.01025","743.85230","745.69430","747.53625","749.37830","751.22030","753.06226","754.90430","756.74630","758.58826","760.43030","762.27230","764.11426","765.95630","767.79830","769.64026","771.48230","773.32430","775.16626","777.00830","778.85030","780.69226","782.53430","784.37630","786.21826","788.06030","789.90230","791.74426","793.58630","795.42830","797.27026","799.11230","800.95430","802.79626","804.63830","806.48030","808.32227","810.16430","812.00630","813.84827","815.69030","817.53230","819.37427","821.21630","823.05830","824.90027","826.74225","828.58430","830.42630","832.26825","834.11030","835.95230","837.79425","839.63630","841.47830","843.32025","845.16230","847.00430","848.84625","850.68830"] + #Short list of band names for test + #bandNames = ["392.03027","393.87228"] #Testing purpose + + + # Load required toolboxes + print "Start!" + #Type: Feature layer + bf_Lx_1 = arcpy.GetParameterAsText(0) + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + + #Type: Feature layer + # Script arguments + bf_Lx_2 = arcpy.GetParameterAsText(1) + #bf_Lx_2 = bwVectoresPath + "\\" + "EYTBWMEL\\H\\H140117_EYTBWMEL_bf_L3.shp" # provide a default value if unspecified + arcpy.AddMessage("read b2 " + bf_Lx_2) + print bf_Lx_2 + + #Type: Feature layer + # Script arguments + bf_Lx_3 = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read b3 " + bf_Lx_2) + print bf_Lx_3 + + #type: Feature layer + Grid = arcpy.GetParameterAsText(3) + #gridName = "H140117_BW" + #Grid = bwGdbPath + "\\" + gridName + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + "\\" + Grid + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + + print Grid + + #type: Raster layer + Raster = arcpy.GetParameterAsText(4) + #Raster = "E:\\140117\\140117H\\ortho\\140117_3_810.bsq" # provide a default value if unspecified + #Raster = "c:\\vuelos\\140117_3_810.bsq" + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #Folder to store the tables with the bands + #type: Geodatabase + #tablesPath = arcpy.GetParameterAsText(5) + tablesPath = tempGdb + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = "Name" + gridLayer = "gridLayer" + #Line + line = bf_Lx_1[-2:] + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + #Where to store the merge feature + print "Where to store the merge feature" + L_merge = tempGdb + "\\l_merge" + arcpy.AddMessage("merge path: " + L_merge) + if arcpy.Exists(L_merge): + arcpy.Delete_management(L_merge) + + #List of features to merge + mergeList = "" + + # Process: Merge + arcpy.AddMessage("Merging") + print "merging..." + if bf_Lx_1 != '#': + mergeList += bf_Lx_1 + if bf_Lx_2 != '#': + mergeList += ";"+bf_Lx_2 + if bf_Lx_3 != '#': + mergeList += ";"+bf_Lx_3 + arcpy.AddMessage("merge List: " + str(mergeList)) + m = arcpy.Merge_management(mergeList, L_merge) + arcpy.AddMessage(m) + + i=1 + for b in bandNames: + band = Raster + "\\" + b + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + line + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + +## # Process: Join Field +## print "Joining Field..." +## arcpy.AddMessage("Joining Field...") +## arcpy.JoinField_management(gridLayer, Zone_field_and_join_Field, L_Stats_table, Zone_field_and_join_Field, "MEAN") + + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + #arcpy.Delete_management(zs) + i+=1 + + #Erase merge file + arcpy.AddMessage("delete merge temp") + arcpy.Delete_management(L_merge) + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + print "Line %i" % tb.tb_lineno + arcpy.AddMessage("Error " + e.message) + print e.message + print "OMG!" + + diff --git a/ArcGIS/joinZonalStats_hyper_PA - bandas auto - copia.py b/ArcGIS/joinZonalStats_hyper_PA - bandas auto - copia.py new file mode 100644 index 0000000..417d207 --- /dev/null +++ b/ArcGIS/joinZonalStats_hyper_PA - bandas auto - copia.py @@ -0,0 +1,262 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy, arcgisscripting +import itertools +import re + +def print_kwinfo(): + if deb==1: + print "kwinfo se guarda:" + print kwinfo + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension + +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + print "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) + +def letsgo(header_file): + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] + lines = re.split(r"[\n]", data)#the info corresponding to one line + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la línea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print str(i)+"-l- "+str(l) + kwinfo+=l + if deb==1: print str(i)+"-kwinfo- "+str(kwinfo) + if ongoing==1: + if "}" in l: + if deb==1: print "ongoing==se cierra por fin el parentesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print "ongoing==1 else" + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print keyw+" attribute found" + if "{" in l: + if "}" in l: + if deb==1: print "ongoing==parentesis cerrando en linea" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print "if bracket in l: --- else" + else: + if deb==1: print "ongoing==sin paretesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print "fin de ronda de for" + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print regexpresion.findall(cl) + for key in dictio: dictio[key]=dictio[key].strip() + print "Header attributes:" + print_dict(dictio) + #Now we save to a list what the wavelengt name info + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + #Band names + bn=re.split(r"[,]", dictio["band names"]) + bn=replace_in_list(expr_replace,bn) + #Next we add the wl units only if they are defined + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if deb==1: + print full_bn + print "Bands: "+len(full_bn) + return full_bn + +## Starts the script +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + # Create the Geoprocessor object + gp = arcgisscripting.create() + + #workspace + + bwPath = "D:\\AB2013-2014\\PA" + bwVectoresPath = bwPath + "\\" + "vectoriales" + bwDataPath = bwPath + "\\" + "data" + bwGdbPath = bwVectoresPath + "\\" + "EM38.gdb" + tempGdb = "C:\\vuelos\\temp.gdb" + arcpy.env.workspace = bwPath + + # Load required toolboxes + print "Start!" + #Type: Feature layer + bf_Lx_1 = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #type: Feature layer + Grid = arcpy.GetParameterAsText(1) + #gridName = "H140117_BW" + #Grid = bwGdbPath + "\\" + gridName + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + "\\" + Grid + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + + print Grid + #type: Raster layer + Raster = arcpy.GetParameterAsText(2) + #Raster = "E:\\140117\\140117H\\ortho\\140117_3_810.bsq" # provide a default value if unspecified + #Raster = "c:\\vuelos\\140117_3_810.bsq" + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #List of band names + hdr_file = os.path.join(str(rPath) + "\\" + desc.baseName+".hdr") + bandNames = letsgo(hdr_file) + + #Folder to store the tables with the bands + #type: Geodatabase + #tablesPath = arcpy.GetParameterAsText(5) + tablesPath = tempGdb + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = "PointID" + gridLayer = "gridLayer" + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + i=1 + for b in bandNames: + arcpy.AddMessage("b: " + b) + band = Raster + "\\" + b + arcpy.AddMessage("band: " + band) + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + + fields = gp.ListFields(gridLayer, bandField) + field_found = fields.Next() + arcpy.AddMessage("field_found " + str(field_found)) + if (not field_found): + arcpy.AddField_management(gridLayer, bandField, "FLOAT", 10, 3, "", "", "NULLABLE", "NON_REQUIRED", "") + arcpy.AddMessage("Added. Before field not found " + str(bandField)) + else: + arcpy.AddMessage("field found " + str(bandField)) + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + arcpy.Delete_management(zs) + i+=1 + + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + print "Line %i" % tb.tb_lineno + arcpy.AddMessage("Error " + e.message) + print e.message + print "OMG!" + + diff --git a/ArcGIS/joinZonalStats_hyper_PA - bandas auto.py b/ArcGIS/joinZonalStats_hyper_PA - bandas auto.py new file mode 100644 index 0000000..250282a --- /dev/null +++ b/ArcGIS/joinZonalStats_hyper_PA - bandas auto.py @@ -0,0 +1,325 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +#This script takes 3 inputs: +#Buffer: zone feature to use as input for zonal statistic tool +#Grid: feature whose table will be used to save the mean values of the zonal statistic tool. +# This should contain the same features ID field than the "Buffer" input. +# A field named B1, B2... will be created to store the mean values for each zone for each band. +#Raster: Raster to use as input for zonal statistic tool, along with the "Buffer". +# The band information is read from the envi HDR file +###The temporal stats tables are created in the default ArcGIS GDB +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys + +def print_kwinfo(): + if deb==1: + print "kwinfo se guarda:" + print kwinfo + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception, e: + # If an error occurred, print line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path)else False + return exists + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension + +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window + +def letsgo(header_file): + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("Finished reading header lines") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la línea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print str(i)+"-l- "+str(l) + kwinfo+=l + if deb==1: print str(i)+"-kwinfo- "+str(kwinfo) + if ongoing==1: + if "}" in l: + if deb==1: print "ongoing==se cierra por fin el parentesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print "ongoing==1 else" + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print keyw+" attribute found" + if "{" in l: + if "}" in l: + if deb==1: print "ongoing==parentesis cerrando en linea" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print "if bracket in l: --- else" + else: + if deb==1: print "ongoing==sin paretesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print "fin de ronda de for" + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print regexpresion.findall(cl) + for key in dictio: dictio[key]=dictio[key].strip() + print "Header attributes:" + arcpy.AddMessage("Header attributes read") + print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + arcpy.AddMessage(wl) + arcpy.AddMessage("saved wl") + #Band names + if "band names" in dictio: + arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + arcpy.AddMessage("split competed") + bn=replace_in_list(expr_replace,bn) + arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + arcpy.AddMessage("Format composed band name") + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + arcpy.AddMessage("wl found") + full_bn= wl + arcpy.AddMessage(full_bn) + if deb==1: + print full_bn + print "Bands: "+len(full_bn) + arcpy.AddMessage("Finished reading header") + return full_bn + +##def save_bn_wl(): +## full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') +## +##def save_wl(): +## full_bn= '\n'.join(join_str.format(waveln=w) for w in itertools.izip(wl)).split('\n') + +## Starts the script +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + # Create the Geoprocessor object + gp = arcgisscripting.create() + + # Load required toolboxes + print "Start!" + #Type: Feature layer -buffer for the zonalStats + bf_Lx_1 = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #Type: Field -ID field + f = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #type: Feature layer - Feature in whose table the stats will be stored + Grid = arcpy.GetParameterAsText(1) + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + "\\" + Grid + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + + print Grid + #type: Raster layer + Raster = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #type: Field - Field for join and statistics + id_field = arcpy.GetParameterAsText(3) + arcpy.AddMessage("read " + id_field) + + #List of band names + hdr_file = os.path.join(str(rPath) + "\\" + desc.baseName+".hdr") + bandNames = letsgo(hdr_file) + #Next I was try ing to print the band number. Not yet + if type(bandNames).__name__ != 'int': + print r"# of bands in raster: "+str(len(bandNames)) + + #Folder to store the tables with the stats + tempGdb_path = r"C:\Users\usuario\Documents\ArcGIS" + tempGdb = r"Default.gdb" + #This is the path + tablesPath = os.path.join(tempGdb_path, tempGdb) + #Keep the individual stats tables? + #Either way the MEAN is stored to the table of the grid feature selected + keep_tables=False + # Execute CreateFileGDB + create_if_not_exists(tempGdb_path) + if not exists(tablesPath): + arcpy.CreateFileGDB_management(tempGdb_path, tempGdb) + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = id_field + gridLayer = "gridLayer" + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + i=1 + for b in bandNames: + arcpy.AddMessage("b: " + b) + band = Raster + "\\" + b + arcpy.AddMessage("band: " + band) + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + #Perform the zonalstatistics getting only the "MEAN" value of the cells + #"MEAN" can be changed to get different statistics: + #ALL,MEAN,MAJORITY,MAXIMUM,MEDIAN,MINIMUM,MINORITY,RANGE,STD,SUM,VARIETY,MIN_MAX,MEAN_STD,MIN_MAX_MEAN  + #arcpy.AddMessage("zs exists? : " + str(exists(path))) + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + fields = gp.ListFields(gridLayer, bandField) + field_found = fields.Next() + if (not field_found): + arcpy.AddField_management(gridLayer, bandField, "FLOAT", 10, 3, "", "", "NULLABLE", "NON_REQUIRED", "") + arcpy.AddMessage("Added. Before field not found " + str(bandField)) + else: + arcpy.AddMessage("field_found " + str(field_found.name)) + arcpy.AddMessage("field found " + str(bandField)) + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + if not keep_tables: arcpy.Delete_management(zs) + i+=1 + + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + + diff --git a/ArcGIS/joinZonalStats_hyper_PA - bandas auto_NameFieldwithbuffername.py b/ArcGIS/joinZonalStats_hyper_PA - bandas auto_NameFieldwithbuffername.py new file mode 100644 index 0000000..9862415 --- /dev/null +++ b/ArcGIS/joinZonalStats_hyper_PA - bandas auto_NameFieldwithbuffername.py @@ -0,0 +1,333 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +#This script takes 3 inputs: +#Buffer: zone feature to use as input for zonal statistic tool +#Grid: feature whose table will be used to save the mean values of the zonal statistic tool. +# This should contain the same features ID field than the "Buffer" input. +# A field named B1, B2... will be created to store the mean values for each zone for each band. +#Raster: Raster to use as input for zonal statistic tool, along with the "Buffer". +# The band information is read from the envi HDR file +###The temporal stats tables are created in the default ArcGIS GDB +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys + +def print_kwinfo(): + if deb==1: + print "kwinfo se guarda:" + print kwinfo + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception, e: + # If an error occurred, print line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path)else False + return exists + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension + +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window + +def letsgo(header_file): + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("Finished reading header lines") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la línea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print str(i)+"-l- "+str(l) + kwinfo+=l + if deb==1: print str(i)+"-kwinfo- "+str(kwinfo) + if ongoing==1: + if "}" in l: + if deb==1: print "ongoing==se cierra por fin el parentesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print "ongoing==1 else" + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print keyw+" attribute found" + if "{" in l: + if "}" in l: + if deb==1: print "ongoing==parentesis cerrando en linea" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print "if bracket in l: --- else" + else: + if deb==1: print "ongoing==sin paretesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print "fin de ronda de for" + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print regexpresion.findall(cl) + for key in dictio: dictio[key]=dictio[key].strip() + print "Header attributes:" + arcpy.AddMessage("Header attributes read") + print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + arcpy.AddMessage(wl) + arcpy.AddMessage("saved wl") + #Band names + if "band names" in dictio: + arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + arcpy.AddMessage("split competed") + bn=replace_in_list(expr_replace,bn) + arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + arcpy.AddMessage("Format composed band name") + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + arcpy.AddMessage("wl found") + full_bn= wl + arcpy.AddMessage(full_bn) + if deb==1: + print full_bn + print "Bands: "+len(full_bn) + arcpy.AddMessage("Finished reading header") + return full_bn + +##def save_bn_wl(): +## full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') +## +##def save_wl(): +## full_bn= '\n'.join(join_str.format(waveln=w) for w in itertools.izip(wl)).split('\n') + +## Starts the script +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + # Create the Geoprocessor object + gp = arcgisscripting.create() + + # Load required toolboxes + print "Start!" + #Type: Feature layer -buffer for the zonalStats + bf_Lx_1 = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + desc = arcpy.Describe(L_merge) + gPath = desc.path + buffSource = str(gPath) + "\\" + L_merge + arcpy.AddMessage("Grid source: " + buffSource) + buffName = desc.baseName + arcpy.AddMessage("Grid basename: " + buffName) + #This is to match the name that the field "Name" has, because it go the name of the feature I joined" + buff_no_null=buffName[0:-4] + print bf_Lx_1 + + #Type: Field -ID field + f = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #type: Feature layer - Feature in whose table the stats will be stored + Grid = arcpy.GetParameterAsText(1) + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + "\\" + Grid + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + + print Grid + #type: Raster layer + Raster = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #type: Field - Field for join and statistics + id_field = arcpy.GetParameterAsText(3) + arcpy.AddMessage("read " + id_field) + + #List of band names + hdr_file = os.path.join(str(rPath) + "\\" + desc.baseName+".hdr") + bandNames = letsgo(hdr_file) + #Next I was try ing to print the band number. Not yet + if type(bandNames).__name__ != 'int': + print r"# of bands in raster: "+str(len(bandNames)) + + #Folder to store the tables with the stats + tempGdb_path = r"C:\Users\usuario\Documents\ArcGIS" + tempGdb = r"Default.gdb" + #This is the path + tablesPath = os.path.join(tempGdb_path, tempGdb) + #Keep the individual stats tables? + #Either way the MEAN is stored to the table of the grid feature selected + keep_tables=False + # Execute CreateFileGDB + create_if_not_exists(tempGdb_path) + if not exists(tablesPath): + arcpy.CreateFileGDB_management(tempGdb_path, tempGdb) + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = buff_no_null+"_"+id_field + gridLayer = "gridLayer" + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + i=1 + for b in bandNames: + arcpy.AddMessage("b: " + b) + band = Raster + "\\" + b + arcpy.AddMessage("band: " + band) + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + #Perform the zonalstatistics getting only the "MEAN" value of the cells + #"MEAN" can be changed to get different statistics: + #ALL,MEAN,MAJORITY,MAXIMUM,MEDIAN,MINIMUM,MINORITY,RANGE,STD,SUM,VARIETY,MIN_MAX,MEAN_STD,MIN_MAX_MEAN  + #arcpy.AddMessage("zs exists? : " + str(exists(path))) + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + fields = gp.ListFields(gridLayer, bandField) + field_found = fields.Next() + if (not field_found): + arcpy.AddField_management(gridLayer, bandField, "FLOAT", 10, 3, "", "", "NULLABLE", "NON_REQUIRED", "") + arcpy.AddMessage("Added. Before field not found " + str(bandField)) + else: + arcpy.AddMessage("field_found " + str(field_found.name)) + arcpy.AddMessage("field found " + str(bandField)) + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, id_field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + if not keep_tables: arcpy.Delete_management(zs) + i+=1 + + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + + diff --git a/ArcGIS/joinZonalStats_hyper_PA - bandas auto_createSaveFeature.py b/ArcGIS/joinZonalStats_hyper_PA - bandas auto_createSaveFeature.py new file mode 100644 index 0000000..4d09a33 --- /dev/null +++ b/ArcGIS/joinZonalStats_hyper_PA - bandas auto_createSaveFeature.py @@ -0,0 +1,327 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +#This script takes 3 inputs: +#Buffer: zone feature to use as input for zonal statistic tool +#Grid: feature whose table will be used to save the mean values of the zonal statistic tool. +# This should contain the same features ID field than the "Buffer" input. +# A field named B1, B2... will be created to store the mean values for each zone for each band. +#Raster: Raster to use as input for zonal statistic tool, along with the "Buffer". +# The band information is read from the envi HDR file +###The temporal stats tables are created in the default ArcGIS GDB +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys + +def print_kwinfo(): + if deb==1: + print "kwinfo se guarda:" + print kwinfo + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception, e: + # If an error occurred, print line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path)else False + return exists + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension + +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window + +def letsgo(header_file): + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("Finished reading header lines") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la línea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print str(i)+"-l- "+str(l) + kwinfo+=l + if deb==1: print str(i)+"-kwinfo- "+str(kwinfo) + if ongoing==1: + if "}" in l: + if deb==1: print "ongoing==se cierra por fin el parentesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print "ongoing==1 else" + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print keyw+" attribute found" + if "{" in l: + if "}" in l: + if deb==1: print "ongoing==parentesis cerrando en linea" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print "if bracket in l: --- else" + else: + if deb==1: print "ongoing==sin paretesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print "fin de ronda de for" + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print regexpresion.findall(cl) + for key in dictio: dictio[key]=dictio[key].strip() + print "Header attributes:" + arcpy.AddMessage("Header attributes read") + print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + arcpy.AddMessage(wl) + arcpy.AddMessage("saved wl") + #Band names + if "band names" in dictio: + arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + arcpy.AddMessage("split competed") + bn=replace_in_list(expr_replace,bn) + arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + arcpy.AddMessage("Format composed band name") + full_bn=1 + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + arcpy.AddMessage("wl found") + full_bn= wl + arcpy.AddMessage(full_bn) + if deb==1: + print full_bn + print "Bands: "+len(full_bn) + arcpy.AddMessage("Finished reading header") + return full_bn + +##def save_bn_wl(): +## full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') +## +##def save_wl(): +## full_bn= '\n'.join(join_str.format(waveln=w) for w in itertools.izip(wl)).split('\n') + +## Starts the script +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + # Create the Geoprocessor object + gp = arcgisscripting.create() + + # Load required toolboxes + print "Start!" + + #Type: Feature layer -buffer for the zonalStats + bf_Lx_1 = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #type: Raster layer + Raster = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + rdate = desc.baseName[1:7] #Get the date from the raster to create the save feature + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + rname = desc.baseName + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #type: Field - Field for join and statistics + id_field = arcpy.GetParameterAsText(3) + arcpy.AddMessage("read " + id_field) + + #type: Feature layer - Feature in whose table the stats will be stored + folder_storing = arcpy.GetParameterAsText(1) + Grid = str(folder_storing)+ "\\h" + rdate + bf_Lx_1 + #create the feature to extract to + if not exists(Grid): + arcpy.CopyFeatures_management(bf_Lx_1, Grid) + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + print Grid + + #List of band names + hdr_file = os.path.join(str(rPath) + "\\" + rname+".hdr") + bandNames = letsgo(hdr_file) + #Next I was try ing to print the band number. Not yet + if type(bandNames).__name__ != 'int': + print r"# of bands in raster: "+str(len(bandNames)) + + #Folder to store the tables with the stats + tempGdb_path = r"C:\Users\usuario\Documents\ArcGIS" + tempGdb = r"Default.gdb" + #This is the path + tablesPath = os.path.join(tempGdb_path, tempGdb) + #Keep the individual stats tables? + #Either way the MEAN is stored to the table of the grid feature selected + keep_tables=True + # Execute CreateFileGDB + create_if_not_exists(tempGdb_path) + if not exists(tablesPath): + arcpy.CreateFileGDB_management(tempGdb_path, tempGdb) + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = id_field + gridLayer = "gridLayer" + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + i=1 + for b in bandNames: + arcpy.AddMessage("b: " + b) + band = Raster + "\\" + b + arcpy.AddMessage("band: " + band) + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + #Perform the zonalstatistics getting only the "MEAN" value of the cells + #"MEAN" can be changed to get different statistics: + #ALL,MEAN,MAJORITY,MAXIMUM,MEDIAN,MINIMUM,MINORITY,RANGE,STD,SUM,VARIETY,MIN_MAX,MEAN_STD,MIN_MAX_MEAN  + #arcpy.AddMessage("zs exists? : " + str(exists(path))) + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + fields = gp.ListFields(gridLayer, bandField) + field_found = fields.Next() + if (not field_found): + arcpy.AddField_management(gridLayer, bandField, "FLOAT", 10, 3, "", "", "NULLABLE", "NON_REQUIRED", "") + arcpy.AddMessage("Added. Before field not found " + str(bandField)) + else: + arcpy.AddMessage("field_found " + str(field_found.name)) + arcpy.AddMessage("field found " + str(bandField)) + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + if not keep_tables: arcpy.Delete_management(zs) + i+=1 + + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + + diff --git a/ArcGIS/joinZonalStats_hyper_PA.py b/ArcGIS/joinZonalStats_hyper_PA.py new file mode 100644 index 0000000..d303236 --- /dev/null +++ b/ArcGIS/joinZonalStats_hyper_PA.py @@ -0,0 +1,215 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy + +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + #workspace + + bwPath = "D:\\AB2013-2014\\PA" + bwVectoresPath = bwPath + "\\" + "vectoriales" + bwDataPath = bwPath + "\\" + "data" + bwGdbPath = bwVectoresPath + "\\" + "EM38.gdb" + tempGdb = "C:\\vuelos\\temp.gdb" + arcpy.env.workspace = bwPath + + #List of band names + #bandNames = ["392.03027","393.87228","395.71426","397.55627","399.39830","401.24026","403.08228","404.92430","406.76627","408.60828","410.45030","412.29227","414.13428","415.97630","417.81827","419.66028","421.50230","423.34427","425.18628","427.02830","428.87027","430.71228","432.55430","434.39627","436.23828","438.08030","439.92227","441.76428","443.60630","445.44827","447.29028","449.13230","450.97427","452.81628","454.65826","456.50027","458.34230","460.18427","462.02628","463.86830","465.71027","467.55228","469.39430","471.23627","473.07828","474.92030","476.76227","478.60428","480.44630","482.28827","484.13028","485.97230","487.81427","489.65628","491.49830","493.34027","495.18228","497.02430","498.86627","500.70828","502.55030","504.39227","506.23428","508.07626","509.91827","511.76028","513.60230","515.44430","517.28625","519.12830","520.97030","522.81226","524.65430","526.49630","528.33826","530.18030","532.02230","533.86426","535.70630","537.54830","539.39026","541.23230","543.07430","544.91626","546.75830","548.60030","550.44226","552.28430","554.12630","555.96826","557.81030","559.65230","561.49426","563.33630","565.17830","567.02026","568.86230","570.70430","572.54626","574.38830","576.23030","578.07227","579.91430","581.75630","583.59827","585.44030","587.28230","589.12427","590.96630","592.80830","594.65027","596.49225","598.33430","600.17630","602.01825","603.86030","605.70230","607.54425","609.38630","611.22830","613.07025","614.91230","616.75430","618.59625","620.43830","622.28030","624.12225","625.96430","627.80630","629.64825","631.49030","633.33230","635.17426","637.01630","638.85830","640.70026","642.54230","644.38430","646.22626","648.06830","649.91030","651.75226","653.59430","655.43630","657.27826","659.12030","660.96230","662.80426","664.64630","666.48830","668.33026","670.17230","672.01430","673.85626","675.69830","677.54030","679.38226","681.22430","683.06630","684.90826","686.75030","688.59230","690.43427","692.27630","694.11830","695.96027","697.80230","699.64430","701.48627","703.32830","705.17030","707.01227","708.85430","710.69630","712.53827","714.38025","716.22230","718.06430","719.90625","721.74830","723.59030","725.43225","727.27430","729.11630","730.95825","732.80030","734.64230","736.48425","738.32630","740.16830","742.01025","743.85230","745.69430","747.53625","749.37830","751.22030","753.06226","754.90430","756.74630","758.58826","760.43030","762.27230","764.11426","765.95630","767.79830","769.64026","771.48230","773.32430","775.16626","777.00830","778.85030","780.69226","782.53430","784.37630","786.21826","788.06030","789.90230","791.74426","793.58630","795.42830","797.27026","799.11230","800.95430","802.79626","804.63830","806.48030","808.32227","810.16430","812.00630","813.84827","815.69030","817.53230","819.37427","821.21630","823.05830","824.90027","826.74225","828.58430","830.42630","832.26825","834.11030","835.95230","837.79425","839.63630","841.47830","843.32025","845.16230","847.00430","848.84625","850.68830"] + #Short list of band names for test + #bandNames = ["392.03027","393.87228"] #Testing purpose + bandNames = [ + "Resampled Band 1 (H140507_PA_1m.dat) (397.556274 Nanometers)", + "Resampled Band 2 (H140507_PA_1m.dat) (404.924286 Nanometers)", + "Resampled Band 3 (H140507_PA_1m.dat) (412.292267 Nanometers)", + "Resampled Band 4 (H140507_PA_1m.dat) (419.660278 Nanometers)", + "Resampled Band 5 (H140507_PA_1m.dat) (427.028290 Nanometers)", + "Resampled Band 6 (H140507_PA_1m.dat) (434.396271 Nanometers)", + "Resampled Band 7 (H140507_PA_1m.dat) (441.764282 Nanometers)", + "Resampled Band 8 (H140507_PA_1m.dat) (449.132294 Nanometers)", + "Resampled Band 9 (H140507_PA_1m.dat) (456.500275 Nanometers)", + "Resampled Band 10 (H140507_PA_1m.dat) (463.868286 Nanometers)", + "Resampled Band 11 (H140507_PA_1m.dat) (471.236267 Nanometers)", + "Resampled Band 12 (H140507_PA_1m.dat) (478.604279 Nanometers)", + "Resampled Band 13 (H140507_PA_1m.dat) (485.972290 Nanometers)", + "Resampled Band 14 (H140507_PA_1m.dat) (493.340271 Nanometers)", + "Resampled Band 15 (H140507_PA_1m.dat) (500.708282 Nanometers)", + "Resampled Band 16 (H140507_PA_1m.dat) (508.076263 Nanometers)", + "Resampled Band 17 (H140507_PA_1m.dat) (515.444275 Nanometers)", + "Resampled Band 18 (H140507_PA_1m.dat) (522.812256 Nanometers)", + "Resampled Band 19 (H140507_PA_1m.dat) (530.180298 Nanometers)", + "Resampled Band 20 (H140507_PA_1m.dat) (537.548279 Nanometers)", + "Resampled Band 21 (H140507_PA_1m.dat) (544.916260 Nanometers)", + "Resampled Band 22 (H140507_PA_1m.dat) (552.284302 Nanometers)", + "Resampled Band 23 (H140507_PA_1m.dat) (559.652283 Nanometers)", + "Resampled Band 24 (H140507_PA_1m.dat) (567.020264 Nanometers)", + "Resampled Band 25 (H140507_PA_1m.dat) (574.388306 Nanometers)", + "Resampled Band 26 (H140507_PA_1m.dat) (581.756287 Nanometers)", + "Resampled Band 27 (H140507_PA_1m.dat) (589.124268 Nanometers)", + "Resampled Band 28 (H140507_PA_1m.dat) (596.492249 Nanometers)", + "Resampled Band 29 (H140507_PA_1m.dat) (603.860291 Nanometers)", + "Resampled Band 30 (H140507_PA_1m.dat) (611.228271 Nanometers)", + "Resampled Band 31 (H140507_PA_1m.dat) (618.596252 Nanometers)", + "Resampled Band 32 (H140507_PA_1m.dat) (625.964294 Nanometers)", + "Resampled Band 33 (H140507_PA_1m.dat) (633.332275 Nanometers)", + "Resampled Band 34 (H140507_PA_1m.dat) (640.700256 Nanometers)", + "Resampled Band 35 (H140507_PA_1m.dat) (648.068298 Nanometers)", + "Resampled Band 36 (H140507_PA_1m.dat) (655.436279 Nanometers)", + "Resampled Band 37 (H140507_PA_1m.dat) (662.804260 Nanometers)", + "Resampled Band 38 (H140507_PA_1m.dat) (670.172302 Nanometers)", + "Resampled Band 39 (H140507_PA_1m.dat) (677.540283 Nanometers)", + "Resampled Band 40 (H140507_PA_1m.dat) (684.908264 Nanometers)", + "Resampled Band 41 (H140507_PA_1m.dat) (692.276306 Nanometers)", + "Resampled Band 42 (H140507_PA_1m.dat) (699.644287 Nanometers)", + "Resampled Band 43 (H140507_PA_1m.dat) (707.012268 Nanometers)", + "Resampled Band 44 (H140507_PA_1m.dat) (714.380249 Nanometers)", + "Resampled Band 45 (H140507_PA_1m.dat) (721.748291 Nanometers)", + "Resampled Band 46 (H140507_PA_1m.dat) (729.116272 Nanometers)", + "Resampled Band 47 (H140507_PA_1m.dat) (736.484253 Nanometers)", + "Resampled Band 48 (H140507_PA_1m.dat) (743.852295 Nanometers)", + "Resampled Band 49 (H140507_PA_1m.dat) (751.220276 Nanometers)", + "Resampled Band 50 (H140507_PA_1m.dat) (758.588257 Nanometers)", + "Resampled Band 51 (H140507_PA_1m.dat) (765.956299 Nanometers)", + "Resampled Band 52 (H140507_PA_1m.dat) (773.324280 Nanometers)", + "Resampled Band 53 (H140507_PA_1m.dat) (780.692261 Nanometers)", + "Resampled Band 54 (H140507_PA_1m.dat) (788.060303 Nanometers)", + "Resampled Band 55 (H140507_PA_1m.dat) (795.428284 Nanometers)", + "Resampled Band 56 (H140507_PA_1m.dat) (802.796265 Nanometers)", + "Resampled Band 57 (H140507_PA_1m.dat) (810.164307 Nanometers)", + "Resampled Band 58 (H140507_PA_1m.dat) (817.532288 Nanometers)", + "Resampled Band 59 (H140507_PA_1m.dat) (824.900269 Nanometers)", + "Resampled Band 60 (H140507_PA_1m.dat) (832.268250 Nanometers)", + "Resampled Band 61 (H140507_PA_1m.dat) (839.636292 Nanometers)", + "Resampled Band 62 (H140507_PA_1m.dat) (847.004272 Nanometers)"] + + + # Load required toolboxes + print "Start!" + #Type: Feature layer + bf_Lx_1 = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #type: Feature layer + Grid = arcpy.GetParameterAsText(1) + #gridName = "H140117_BW" + #Grid = bwGdbPath + "\\" + gridName + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + "\\" + Grid + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + + print Grid + + #type: Raster layer + Raster = arcpy.GetParameterAsText(2) + #Raster = "E:\\140117\\140117H\\ortho\\140117_3_810.bsq" # provide a default value if unspecified + #Raster = "c:\\vuelos\\140117_3_810.bsq" + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #Folder to store the tables with the bands + #type: Geodatabase + #tablesPath = arcpy.GetParameterAsText(5) + tablesPath = tempGdb + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = "PointID" + gridLayer = "gridLayer" + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + i=1 + for b in bandNames: + arcpy.AddMessage("b: " + b) + band = Raster + "\\" + b + arcpy.AddMessage("band: " + band) + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName + "_" + str(i) + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,0)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + arcpy.Delete_management(zs) + i+=1 + + #Erase merge file + arcpy.AddMessage("delete merge temp") + arcpy.Delete_management(L_merge) + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + print "Line %i" % tb.tb_lineno + arcpy.AddMessage("Error " + e.message) + print e.message + print "OMG!" + + diff --git a/ArcGIS/joinZonalStats_hyper_unaTirada_BW.py b/ArcGIS/joinZonalStats_hyper_unaTirada_BW.py new file mode 100644 index 0000000..cc5b211 --- /dev/null +++ b/ArcGIS/joinZonalStats_hyper_unaTirada_BW.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_unaTirada_BW.py +# Created on: 2014-06-07 16:08:27.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_unaTirada_BW +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import arcpy + +# Check out any necessary licenses +arcpy.CheckOutExtension("spatial") + +# Load required toolboxes +arcpy.ImportToolbox("Model Functions") + +# Script arguments +bf_Lx_2 = arcpy.GetParameterAsText(0) +if bf_Lx_2 == '#' or not bf_Lx_2: + bf_Lx_2 = "140117\\H140117_EYTBWMEL_bf_L3" # provide a default value if unspecified + +bf_Lx_1 = arcpy.GetParameterAsText(1) +if bf_Lx_1 == '#' or not bf_Lx_1: + bf_Lx_1 = "140117\\H140117_EYTBWEH_bf_L3" # provide a default value if unspecified + +Grid = arcpy.GetParameterAsText(2) +if Grid == '#' or not Grid: + Grid = "H140117_BW" # provide a default value if unspecified + +L_Stats_table = arcpy.GetParameterAsText(3) +if L_Stats_table == '#' or not L_Stats_table: + L_Stats_table = "D:\\AB2013-2014\\Bread_wheat\\data\\140117\\L3\\b1" # provide a default value if unspecified + +Raster = arcpy.GetParameterAsText(4) +if Raster == '#' or not Raster: + Raster = "E:\\140117\\140117H\\ortho\\140117_3_810.bsq" # provide a default value if unspecified + +# Local variables: +BW_AB_join_result = L_Stats_table +BW_AB_selection_result = BW_AB_join_result +BW_AB_calculateField_result = BW_AB_selection_result +BW_AB_remove_join_result = BW_AB_calculateField_result +B = L_Stats_table +path_table = L_Stats_table +L_merge = bf_Lx_2 +Zone_field_and_join_Field = "Name" +grid_name = Grid +Field_Name_Calculate_field = "%grid_name%.%B%" +Expression_Calculate_field = "[%B%:Mean]" +Expression_Select_layer = "\"%B%:Mean\" IS NOT NULL" + +# Process: Merge +arcpy.Merge_management("140117\\H140117_EYTBWMEL_bf_L3;140117\\H140117_EYTBWEH_bf_L3", L_merge, "Name \"Name\" true true false 254 Text 0 0 ,First,#,140117\\H140117_EYTBWMEL_bf_L3,Name,-1,-1,140117\\H140117_EYTBWEH_bf_L3,Name,-1,-1;environm \"environm\" true true false 20 Text 0 0 ,First,#,140117\\H140117_EYTBWMEL_bf_L3,environm,-1,-1") + +# Process: Zonal Statistics as Table +arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, Raster, L_Stats_table, "DATA", "MEAN") + +# Process: Add Join +arcpy.AddJoin_management(Grid, Zone_field_and_join_Field, L_Stats_table, Zone_field_and_join_Field, "KEEP_ALL") + +# Process: parse_table_name +arcpy.ParsePath_mb(L_Stats_table, "NAME") + +# Process: Parse_grid_name +arcpy.ParsePath_mb(Grid, "NAME") + +# Process: Select Layer By Attribute +arcpy.SelectLayerByAttribute_management(BW_AB_join_result, "NEW_SELECTION", Expression_Select_layer) + +# Process: Calculate Field +arcpy.CalculateField_management(BW_AB_selection_result, Field_Name_Calculate_field, Expression_Calculate_field, "VB", "") + +# Process: Remove Join +arcpy.RemoveJoin_management(BW_AB_calculateField_result, "") + +# Process: parse_table_path +arcpy.ParsePath_mb(L_Stats_table, "PATH") + diff --git a/ArcGIS/joinZonalStats_thermal_createSaveFeature.py b/ArcGIS/joinZonalStats_thermal_createSaveFeature.py new file mode 100644 index 0000000..997a6ed --- /dev/null +++ b/ArcGIS/joinZonalStats_thermal_createSaveFeature.py @@ -0,0 +1,204 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +#This script takes 3 inputs: +#Buffer: zone feature to use as input for zonal statistic tool +#Grid: feature whose table will be used to save the mean values of the zonal statistic tool. +# This should contain the same features ID field than the "Buffer" input. +# A field named B1, B2... will be created to store the mean values for each zone for each band. +#Raster: Raster to use as input for zonal statistic tool, along with the "Buffer". +# The band information is read from the envi HDR file +###The temporal stats tables are created in the default ArcGIS GDB +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys + +def print_kwinfo(): + if deb==1: + print "kwinfo se guarda:" + print kwinfo + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception, e: + # If an error occurred, print line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path)else False + return exists + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension + +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window + +##def save_bn_wl(): +## full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') +## +##def save_wl(): +## full_bn= '\n'.join(join_str.format(waveln=w) for w in itertools.izip(wl)).split('\n') + +## Starts the script +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + # Create the Geoprocessor object + gp = arcgisscripting.create() + + # Load required toolboxes + print "Start!" + + #Type: Feature layer -buffer for the zonalStats + bf_Lx_1 = arcpy.GetParameterAsText(0) + L_merge = bf_Lx_1 + arcpy.AddMessage("read b1 " + bf_Lx_1) + print bf_Lx_1 + + #type: Raster layer + Raster = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read " + Raster) + desc = arcpy.Describe(Raster) + rPath = desc.path + rdate = desc.baseName[1:7] #Get the date from the raster to create the save feature + Raster = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + rname = desc.baseName + arcpy.AddMessage("Raster source: " + Raster) + print Raster + + #type: Field - Field for join and statistics + id_field = arcpy.GetParameterAsText(3) + arcpy.AddMessage("read " + id_field) + + #type: Feature layer - Feature in whose table the stats will be stored + folder_storing = arcpy.GetParameterAsText(1) + Grid = str(folder_storing)+ "\\t" + rdate + bf_Lx_1[0:3] + #create the feature to extract to + if not exists(Grid): + arcpy.CopyFeatures_management(bf_Lx_1, Grid) + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + print Grid + + #List of band names + hdr_file = os.path.join(str(rPath) + "\\" + rname+".hdr") + + +#Folder to store the tables with the stats + tempGdb_path = r"C:\Users\usuario\Documents\ArcGIS" + tempGdb = r"Default.gdb" + #This is the path + tablesPath = os.path.join(tempGdb_path, tempGdb) + #Keep the individual stats tables? + #Either way the MEAN is stored to the table of the grid feature selected + keep_tables=True +# Execute CreateFileGDB + create_if_not_exists(tempGdb_path) + if not exists(tablesPath): + arcpy.CreateFileGDB_management(tempGdb_path, tempGdb) + print tablesPath + +# Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = id_field + gridLayer = "gridLayer" + + +## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + ############################################################################ + i=1 + bandField = "B1" + band = Raster + print bandField + #Set table name + tableName = gridName + "_" + bandField #+ ".dbf" + L_Stats_table = tablesPath + "\\" + tableName + print L_Stats_table + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + print Expression_Select_layer + Expression_Calculate_field = "round(!"+tableName+".Mean!,2)" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + # Process: Zonal Statistics as Table + print "Zonal statistics..." + #Perform the zonalstatistics getting only the "MEAN" value of the cells + #"MEAN" can be changed to get different statistics: + #ALL,MEAN,MAJORITY,MAXIMUM,MEDIAN,MINIMUM,MINORITY,RANGE,STD,SUM,VARIETY,MIN_MAX,MEAN_STD,MIN_MAX_MEAN  + #arcpy.AddMessage("zs exists? : " + str(exists(path))) + zs = arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, band, L_Stats_table, "DATA", "MEAN") + arcpy.AddMessage("stats table: " + str(zs)) + fields = gp.ListFields(gridLayer, bandField) + field_found = fields.Next() + if (not field_found): + arcpy.AddField_management(gridLayer, bandField, "FLOAT", 10, 3, "", "", "NULLABLE", "NON_REQUIRED", "") + arcpy.AddMessage("Added. Before field not found " + str(bandField)) + else: + arcpy.AddMessage("field_found " + str(field_found.name)) + arcpy.AddMessage("field found " + str(bandField)) + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute + if i==1: + print "Selecting Layer..." + gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayerSelection, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + if not keep_tables: arcpy.Delete_management(zs) +############################################################################### + print "Finish" + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + + diff --git a/ArcGIS/kelvin x 100 a celsius.exp b/ArcGIS/kelvin x 100 a celsius.exp new file mode 100644 index 0000000..d7dad66 --- /dev/null +++ b/ArcGIS/kelvin x 100 a celsius.exp @@ -0,0 +1,2 @@ +ENVI EXPRESSIONS +(float(B1)/100)-273.15 diff --git a/ArcGIS/legacy.tbx b/ArcGIS/legacy.tbx new file mode 100644 index 0000000000000000000000000000000000000000..8bac2e1ef388669346f015516e3884a7e8ee7a55 GIT binary patch literal 11810304 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 z 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%0AZpa`F} zB+@SP79E2ju47%he$n5-?KW;oNlkNWO`EIpJmb$TG~>^-$7`Ocy?SulNjJW4>Yn|| zPr1Gt1O5+7JGjNU^)}@$U!b-#`5AJyYMk z=FDSPUEFu)bq_!EujlNY-CJR5Y!-GUb_*7O4eWPQQy=-t!gKE1=dG(gzxP1jzu(sU zlE{I>_89Y3fg4_gDhcN|ZCQC)-8-G| z?QC4&7wV>_PP*{R-l+}!tF|UDJmBhI+_8cyGQF9*5piTQcP%zySy9}ZpTzH^+PSCB z4|n&+Ku9Omz0%aiarf^DL9L%SV3G)5fZh3iRP6dJA)UZZy}zOlN6wne21B_KoV&VB zVRiT6Xp#Qt-?SCKs9(mu=aI&rRK9KSlbz~~q2jB8)Q_E_&e`^p_o=DiW;45D_&_`eA?}Uk@RFo5{~}<*HlPa_k>PmMBh#7R zFy~^t-Khx)MY6^fP_&3TcDHW)wHpX6ZLXI#*Grr04h?cx0g^_NUq0eoVyXSD|KXH} zDQl+PKQetGrOkCylQXVsa<8+qxgOrO)Ja(3t;Ni;68u23(*5gUIehb5BvhGVy$PRn zGoJ-y7VQEKtxAiKw?x7DFo}RE`fQ{ZTvb3In*HX?WJAuB1rKi#*$9B@T#EAp&H{L!n_4oAW3rlE}J;*N~$#_rN;u59*Zt)SN+fYNUyZ}rU~O4$AjM|*H=&kcQC-4F)!=W zFVx%b1&yJ8y}ODIgXOtC!n&djVsXivZaHb_Grw-S>HPG2MhCv}qcTO>!vr3jZK(gg z8kq2&M$(kEcpFCQp7%ODc1R2>|3bp1A>;_tc@IO>6_Vxqo(2kGazzweO}zGO>{59 zU-pjSXYQ_l=qQ=$YLt8aK^F6-k3Rdrld;CtAN_vyNmt%}!k?JJ_V!M4XTjb%q4-Gl zQ@@la44U?&$aV6Bj31i#m3pX>wHJ6WBv%ieuH<{?_1X6v^10TZoPSA?`s|9io>#wo z^GGsA)&JqK(Pib(n=fD9@cP%*k0jFZ{&+ebL-5jMd~|SGd19ixp}u7zHQZ3&luE># z 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%0Dam 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

    x3&8i00RMJ(h1~JKvE*m2_ux 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

    n9lY0_4 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²TlM^1Wp2e3!Ds`0-Oq*2AmF@0h|e(1)L3>1Dp$-2b>RF z0Q?TP5V#1q7`Ozu6u1ny9Jm6w61WPu8n_0y7Pt<$9=HLx5x5Ds8Mp(cn)|Tcmeo3@FMUM@G|fZ;1%Fi;5FcN;0@qS;4R>vz}vt(z`MYE z!27@lz`uZh10Mn(0UraO0G|S%0iOe30RI8L1ik{k2EGCQ3w#TF2Ye6w5BLH25%>xC z8E6NrL1_QL8o-*sTEN=CIzWG5U0^+6eP9D%LtrCdW8hc7Ccpq-Ah0R08L&C91+XQs z6|gn14X`b+9k4yH1F$0y19k$kfSrL|fI+~nz;3|qz#hP!z+S*$UOV}X5v{eVJX955az0*ZkNz(inwpahr%8~{uPN`WcB zRA3r#AW#OB0~Nq@Urv;eI@8?Xpi3@ibb0?UBqz!AWaz^{R$fTMw9fZqTsfMbEqE1Fi>d0B!_s0&WIw0d56;58MXa4*VZ*2k-~rkHDXRJAu1^mB8J= zJ;1%deZc*|D&PU&LEs_a&%ndLUw}t|M}fzH$AP~BPXJE>PXSK@&j5b|o&}x*o(En4 z{tmndyac=q`~!FecoldJcpZ2HcoTRF_$Tl-@DA`U@E-6!@B#2I;NQT9z(>Hxz$d_` zz-Pecz!$)OfG>fsfUkjXfd2yD0^b4O1OEel0Dc610)7VC0c%&Ze_#z@O<*lxZD1Xs zKd>&a9djdjn&D zeSopRzQBG!AutXY4-^5#zyx3-us=`&Oacx7CIh9w6ksYa4LA@e1ImF4U^*}Zmoz;fUS;7H)tz)`@_z%jsYfEB>8z;VFwzzM*Kz)8Swfs=t#fK!3ffYX69 zfHQ%!fU|*ffOCQKfb)S1fZqWZ0v7=n1D61o0+#`o16Kf70#^Z71J?l80@nf812+IS z0yhCS1GfOT0>1}t18xWY54Z#P1Mo-SPr#kPUBF7Jco%pNcpvxx_!sbR;6vae;A7wu;8Wl;;B(*$;6K2Zz*oT6z&F5u zfp3BDfbW6-0Y3mg0zUyi1MPsd8`?jx2Cycu7O*z34$vQ17g!HiAJ_oc5ZDOV82A;i z2`~T{2y6;$25b&&0c;6u1#As$18fUy2W$`Q0PG0FfSrIWU}s<#U=Xk?up6*Dum`Xw zuoo~G7y@JiIY2Iu2jl|AP&?5b-+BJ9+(d-02+Wspb2OO76OL@EkG;K1}p*=151FVz%pPta0GB9@N3{G z;Ar3&;5Wbu;8@@|;CSE!;6≫J3iZz$w6~z-hqgz!|`qz*)fAz&XIVz^-~J?6KL-Q?gCZ< zcLVnT_X76;_XDed2Y?5Ghk!o=4+DPz9swQ&9s?c+{t7$+JPAAnJPkYp{0(>(cn)|T zcmeo3@FMUM@G|fZ;1%Fi;5FcN;0@qS;4R>vz}vt(z`MYE!27@lz`uZh10Mn(0UraO z0G|S%0iOe30RI8L1ik{k2EGCQ3w#TF2Ye6w5BLH25%>xC8E6Nr-O={(XFY2jF&jA% zM#{x7kd}y*RGg=z8`?s^cYGEP*DHCSd22kd_VGWKOt}1`*;QX(zhJ^z7EKLd;qdVI z6Tga&&fg)s`0RdHKeyHir>(>A*04zn`h(evdW8zwPZjwQamL8tbfRG^T-h zF8*DL-)gni9IRL?!f*at39~ELQq95N8stztzA$&1@x{GL0+JEodcVZ*h5IMmUyG0) zu2_?+#6aLYkx|A+RcqJr+oVy*yY7PF|>`nepY z3E(=-7=AS%%j@u+k3YldBRs>|Ze)hb;x#jw>z=wNlUd+Bn8|F`%w+D0V?CB)ExaDH zFtqqI>oISb(DgXa8jdBsdH9dFKA2fN5Z{=^tg)=eYTik90fi{)Wu7^%#NU;miMhhL z^62)ZIX^r%;M}X$wbuJ=)ss9?vkS7?FKmKE2D6x1&83yhMt5%&!%}lDtz3ZGy%6=f zI)Nyme^ms~Rh}8M+g01_QFQN%lka-;owee;xl6;p$twKU4>$g1)b9+=9! z{3%(3Cl*hg*oW^RoKV%!8m}zIP9Uz03O;OF(oAV?;Wi-<;a0Ij22U$2D=aOpC@!0w zH9p=X?jS6UV{uS@Ra4gBA$fV&o9Q7cudZr{S5ClAq~;a|F>2JP;U0p?*gDg;s3u-H zwYG9{EQXdb14=i=2sI9QKLDE)AM$~Q|LDytzONg%->SE3 zX7?NQ(?TAfzm|0j{v{3ok~}gna~CwPcTrNMds?mBSCPEcDmwO~QWn*V1r|)ElFX(Y z;*~R64z;&;Rf;$kVId`xL&0=0aG6{Vfk-@lIiy^|{>qYe|4T}hXWExp7kK4PSJwq^ zj;J#BOYmU2M0LST4X*&|+SH6de?+xP)q^(lPD>E0nVK-VM5!@rHm@Y=`kL+Mv>s_n zB}I}h2HM_Ov&omL3)Ezy*G+1Ml4Mwd=%vbsGrX1fhbjiO7G8nfN*jMQ{pyA9{m+isK5#lU56Y`2u8UDIw8 z=ZL@Erb?eq-5Asjb%TR+xfxKkU31hVQx;CwTkFQIuDa0`QqP|w!BQ`rE>T@DWjKxT zs-|~EYPbuV7VbtzTM150I9)oa!L&j*r$)(UrF+R*?N5!OOOzT@hVOyYbhQi*;xtHx zhttKtWp9+>d%EgEw7OS#88hd?WO!H(YWj5Q#$Mf2HxgUEbWQ}*_13yUt+=bDo;OFr zrCu;yqPk$p@F88E8d^XTjW|_32%}4s8dK_JcT3Ioa~dr5!svQy&CYSvg|3l$!8!8( z>|F=g9YxjNFO&d+5R_iL^qLSt5<-xYPJkqkgdPbYJ%kX_2py580u~gcC?L{A1+k$Z zU=5-o0kNP62&kY~5ClZ{{`1c4oZUGyv-jS;H{b64pWQsU-`<^bX5VRN&Ut5cZ(_wv z#2M}rwv}wAZ}jh>zG1UKe$RCPtqb_&%Gx*Zlk=d6`jS-p^4R$q`-Z@?-ojam1> z>zzyl<10;;Tr;KFtH(=YJkqr1>MMTX~kx~cic82*Gy^l?(x!?@rZGoRT?9g zRT?>NhftoYX53~YO~!2_ay3F(#&Nq3;WG1U`^Ihk8nMT1GxAw|L+%3^nkwBCI&aTf zhJNW`jrOSMx6bL8g<;Q$KV?HoLEDce`DBMkvdVbD#@8P>=k}LJTzAHjGZ)Ny_^Ewk z)b4hn_frbC3t?Xuay*K1l>23{VXfKgjcgp+Poe7ay%0(6YT7@BiOoLp#aSb05fIxs z;iSx_=lZA74kx{32GZ$`pEYW(v}~;fX;exhg*<@dg1e(AE#ts;G3;pa9qxLvUU8Ni zDi0)O?2f`7p>^m#Uc#`5c*sT6ckI_-xqJPv)57eCayM5Fr&PTu4O=GlT;uky5tP=m z+tEg9TO9LYbYhTI* zc?_nr{`7AM{U1c#e{Z@rkaPyqm9sftox4HN-F@eZVbAv8a`qut-`Mx5JzjZm+(9IX zJwf#7&9RpseeI(w`+V`N=)nm$4c!Pkh;)idRv+oy4D$3fbDu#=C%pOe^^f+se?@fO z)U$@qIheG2McDT#f9nE!jo_SQ)lghTUEw+mr%={w(k)h}|EWWkE0q+VN}Pw%b&Ydf zI-5kBi}98jm^6byJBnoKD5 zAj`NQ1=@w_aK;3e2JaZhJY=4)=xX?)Pq1AWCo)EOj-zOD3F&jE1?S(AN|~xs5aA$(98Gq60`(hzEJ*Qy44qCOB~+N} z!oj>HRq4;rRAo3o3a8LbbA?U>%c+DDagF|UcVnQMN=TYtrOKjDCsBXV;rr>LJ5g5L zr{#6|ov`GJ#+1#Zy92N}!qJ$Kz>tQ#gMzMgcgsh?X3^Evq7!cX)xhp+wi)*Imll6x z;GtuN4Y_0g*GFHs&9M8HTyesd2J#->Ln+tHgwbooq)_BXJzNobKfk zx}ReHD79q)VmV{-(e>pZ`%h<#h_E|@>_3As!)Gd%>_5}Ok`VZcKn{Kd?j*5Y z{p~Eq;*$17ll^*Y0cPnmjo-6m|2bSgsQ+Tg{&N`%tWTP{FOKX#k1?Tsg6zKP+DWP{ zo3}6LAyy@s`aweNCsWT?DY?ni55*PZPLUVHDUIwySyj#_L2!uE3vrG9HAS3W6c@%V z=EZSJcemrQ>Qcpv0ZwX8fA$gupFXGv_5E4M;eaguJ1FRyiLB_<9KtjHFkP=au|P+6)tccXQ$B1SaC6gcIZ6-IRDK zr>JE0k#1KX2cgqlCgL*E?xl8$%c%cyl~OJy;$w`-v5LBYZMNJWr~BzPz~@ExF1v2g zo3#Vg6=82bLFtvft?aF|x6~~hCgPKHty7qYD;TRDaS5;B5D(4;sX;@jElk9x7*lzf zh)*-d&S4_1WXy^FXBbQQn24(xTX9UpHH-oMre~RmW+H7FVP8vV z{So$cDkXP>{n@xeT+{!#IHhb6_Vrv~n5zc2CfyJh#x3TJaY|1`*q^8SHSVX8usWcD z|Bf$7*Xl>uH<483@l_t5^!U<|n2fN$pn6 zA;P|yaB8a|*ZOba6qH3D>2_@ON9Lu z##G)2`%cE#IT7|Pg~Vk7Lk8B6&h?5{Dl;v(#?GlrHUYz!7Y@;q4e4bo2b zCY58Y|C@{n^^>gTi^YBM)s`jOi6>N=uAgQY2qP<*h;Px2{Y=C?DkV1)@oiE^W4Tl0 zcjAj4dT`p$N__Oyb`1GMFy`Db{IUHyp{C6> z#+7F*J>zu5Dw&7}sm~O*);~|Z*vqW-<8PXY2&Xo~L~KPR#L)>%#PX}pI84MtbgfgEh@UW4$tyU-gL6S@&`@d%6Y(%(DlZf9Q^p9F zwKJYN_!(nH6jbb5|IaNf#WE3(FqZN$5x-z;#W4|&G6wXUo?Yvg>nAH23#?B$n25(1 zlg%y&>Op+9W%Jrj!!9)QS27Wg6MjDv@k^DGn~8WLt{8WU{1sQ(#&nkb3K#A9WyrPh zbuGW<0yn`#{3ck;-*PeaT9lL|h4P)_K(o94+wHYP?vN$?{iFk@|s+iY#74jcA z1!d7kx?O!7gid#vh^I;2zbE1ul~OJy;#tPzSVdjHHZu`_r2FYMz~_B;9KXhbasKxo zJV)u3y{+u6w71kP946vWmptP_cU=*08V?%S5cnSjxvl^k!_uF%fGqhT@rs zwHXWSRXLc5br_S)E(q#De6?k1&M1tDco*UKGZE{ml-x|jdU3_LQ{=n3$}$)R%jL_E zYajFPN-X#0T+?(C{ouJ}Tkm_$rU&9Y5=_Jvbg{Cx zmA#er7F|W|Al{PtN~bUpTQOEW;>y58Y|WU;%S617F?J3UQDe--GZEWZSc+vLwq-2k zVOp+9WtC%I(0d|wBK&?PVrP|-n~B&Z zt{8WU+?A^=gJG~-z6`lGG7-CRftz3=b`KV_FBh|C{MmjAK70~7sq4=|4hLlM-@!=N z>N630kZR=_SDvx-jMEXTWFq=gpDCV+7({Hu0L4h8_e2;b!cA?4iP(n54vsVvu_1kz z52Be^emtd}NzaK4i1wn-y$BV~`_g`medv4`o#D-zBcuLwHk_UY9zi=g`qDS-=;%+f zqocj)+CcRS7ek`6DYta}>vQahyK}{`XZvqC`;e<|?EBOnuRJ(zPt_76?ywL8I0dQt zNayLhgSn6VWy-xMuU_icTV<>?P^Dmo@z+jQQYy9fIV9FWj8$67 z_`&t$;XCJo)F4c~gAm8>Vr7>ryDaT8x|rJBApr3ch^n}&c9{c%08EDPtL??%leMw zN@yb59ThD8XfD3=b{u!exga&D*>d?uV^on;Vd2jUuRN{F z(~_Q6I$Dwu@L1JPi+UwM@5@RZF6h4_Tc1{$21Y<5f z3O~}qQfw4{6k{phTKv(Bt+=)LV;DorQ8*sMk(Ka}jm30&YN*okSuVxGvw z>=}P{x`M9?Mj!S3S;*laCH3FINZ0E#5i>}=@{B9bSbE0kxKuI`GgUt=iit?S3vqy2 zy-u&ihf|wjBDTZ8qN5X-h*@kkBoi^4Q*>$YnQmA6TRO#MBIZzDekNkBN+}l;F^@4h zR&kXu5hrm?(@8XT$fq~E=Q{tdN6sgK%HCG?R@z&PP3bM4%)MAI4xJdyi)KdCiHRLc z`+8{BZ|bsNm|TZko~y*VfU)WkR|Y2H6vk9uCSoCD>>MWIRK{F96S2s`QY;g(n6Z?P ziCDteien;{GKS)rh-Hig_Np9A#A%GFB_;y97GX^IXoRV$w@<>CF859>C;WaU;&hdg zn~69ht{8WUJd>*|gJG~-z6`lGG7)ESftz3=&JGsy94=0Iy!-gIA65};7TUqL!6>ZgU@uk+TYSCE)#J9<<%?dLpjJ8L?<-uY9E1$Jq8bOb$_F*=$`{P@^tQZ$*abv2z3QXsFZ zEto&enDu-)k+6;-%%g2yzroA?JP0e@rS<2Eu4Jr;X(mPHfz_$ep|lpUfTElwbd8SK zbJc(9$olG0!9_;lL;4+8F*f+@X>7xyMTBk|va)bx$mPW3ttLPwv5@fTrzSu zsyGXDP;NeQ%YuUP{PQCQ=4Jrc8CXJCopoKXA2`4xtln}*cCHXYNKa=)7SK; z%gB9!^6C|>PZ`M>`ev0Nvj3vYqm5*`y8e{geMezzvDHx}( zGuG_L!)A8s$olM;ilQ-lh7UQfeuJ@v<0TtchFnfe&9X~rdC4?=lgi^~n!cq{ax+c$ z#1-YbCf~NIP`*BADg|$J#7=jZPYS0{dD_M_eTOTd38v}ZVA1d6qW5%^@m*CA)GVFE zM>xtb60I>!_tUMac%_P0WV{l#h}kw=GEEPtK3xW;3GZ3m)7tx$W}58OW|*cO(R(@?drB3A%21b)Lo{ZN z))=`zP)=1`SH*QQt_xenY+EiFxu;d1E{c(xM=Ri`@ZK-%0ZTuP8BT46k=rRAh@HU5 zJ;N48GIGyyim@v;2WNlFX5{`zdHET+=Tu7h8M)^fXHU-oFK|21NqqPjxj&IWWw|TM zEiE@Xjr5HF%>B9ijND%sYk3&C7a3D|8M&7jBi!Jows-}px=>E!ptfc2*IyZP@r>Nx zEG)$`axXKM@-cFMXKckWa{piqEi-cO#FMQ0lZTP}Cu1oOBlj=H)Dk1tmNEVcW9b}5 z?%#~L{EXbIj5Rwlvzf0tvOfEsVkOdJCVejbj@KAlIG(g|Wys~kl$V7|>q$oLKU6M1 zBlo&W$<4^U5m%V&!o6u#Ww{x-|8gZX!N|Q8Ec*Yr=sg{cy{!s@9!@9m5st=;L~D%P zJ9MimuB+lY8P|m^W40}qj9j36Z??P!B6MlPJ%3?sL5JPB+lEt&U9mYh`x^<{(R={aBrx^rWU+>Rt!S?}WM(s8b!2_^J;h4E$M7A}?-<0`!ttbyD?=_P zro1d%T2C@^gQ;A8Ms9DFlADnm5?7e(!tG;KWw{x-pBGU zr`KcT5RI9mHAZfK%BhO$s<=+Zbz#exZObJicYx~CMKN;o=)E4x76$H;f$#zMh>AROaLEwp6Z>*Sddj` zyhm;lV=g}%@}5gZ?no+^ zpOHICrQ~Mhj*ctLb>WV&s_(Wh|Hdpa8XfGP+&c|ArB(U>_} zW8{vfoT|94itA)t7q*Pqwp=oDQ&pcXnvokstlR*_%-Qde(|nzq+6*JNTRafcjGUgw zherp~`+P>wFPD#{-!L}}*LXTRlb)X)5bZ^udl4#}_oe-N`_TC?I>WC_jEwrz*>I&l zn9lmszajL05E;0=DbInVGnlTN&G~ARpg%G5+__@dv;DW6eaO`}_I+xPR~{U9f@%qX zm2BKJPC=?Z(zzMr>1+DjW#dkygkBNi2st}XS1FjQ{I%27)MdXg8O~fk7$mXIV61Wu z=&E}`3J|7TzbHMEFf_)^%_7OlhF3OR+Hj0y*|TSho?V7t=$ylt%FB1nWsD(~DoASu z6GA!Bux|_BHIFeD&v%_RXE@({6Vn zA9?EM6vl$AI)l$y$e6X4(%?^V#tx8__UA!1qAmUJRK}X^*W0{F9a*3KihUXG44xA? zS1n>};b_Fhl_8fCQ@c2v#Z(qQhqFYbz%NFv8u~&~E~MSnHE8LCH=n-#(LVRDh|ZgO z*6=w?;|g-8`DI*nen+`TXB#cwwbO$0ZyC3;&n4SO(Ho~N>w6kk0*1M%gh|mHddLYb z3M$Vj{_rI_FZde}C0^Dy97Ut3Jp$3X{o)I_KWpdi#AqJ5NYlwWYMwcE?i#%8&x5*cTR4ad8LJ*sW#F4G zVoc@bn=WRIA(kjeD+LomIkl^;FJa8Z^GzSNuoTNTeT1=;Z-3QC8C!Att1e{>E%Qz9 zB>oN}=JYrJxwNg9F&5aXa`17NGbYqeZoaZD_WWavrE~bWk27XJmlh!20+;=HkPU4M zANL8ynjM)L&y~dKs3Yr}%N1Ou9Q=@DDz2;IIvLl6En~JVmyFzXs!tci$fe)= zKfqz+!l}(La(&~0*a?i>XW7C?M(%T*V(f~|!P(zPm=68vGIG~bf}fGQL8X+Rk-L#` zI<{RGdX>!qpQrpAW8`ik$;xt9mRnkGj7;ene}Vh6pG_+hBX=`n)nl&=jNC1Zsl1Hb zt&B0mqXmh#U_vM-GEr@b)^B6X#WQlZTUd%^}S&g)LY=PKM%5@ZDHiT%2=}_Geg&q zI30ClefB-}OO<-yL;4+eGq!L%Y2(U}%ZVw?tmQqIjNI3#Tz*FG>nbHTBlnHC!dw^b zn^skpo00n#R|1B7gS+MK2^Rg^T=brf#=fHpg3g{S)%Y1XL}TV?jgh;Ta;oCGDz1}p zUDz^a+j7as-KY9=QHrX=mr3j}s!^riE2Vy5Ma^GbOBN@5- zImOr&!?;m`I`m)n(`DoyAR#{^_n=BCKO^@&#@W+z!1w9Sl9Bu80kHAW>=So=Y^%Hb zJaG70QEl7T7XN@GE6ZJ3ZfUvERitP9L+;PzXXJjwSj)r6{g^S8myuh+7(+Z-ka!Cw zgmNMi)fPtXA;w%hBli;vOR?HrS&8u_c)cy&&d5!rQ~Mho`@^Vb>V(xRb{yuxnFZ7G{MOICRp^}a?yJ_ z8hcU|1id|BT@*jHYWBz_ zj9fUi8Afi8cp!EHBli?r7|F=}fm4iK$BsDL*6kEaU9yIpB}n z4)x}M=SZ@$+?C~)mK)<&j=Sf%KbN18dx5c*hmrdeV=6Br_h-f!;?aV{TQDJ%6FI1D ziPrzZn2TrRUbL_j%gDXNSjxx9{gts5$H@JSF%-|pz06oThjIElWA?K}0ct65*`Ej5 zh_*0J|6r`yk%!If)RFbsuT<2X_`vp=oLB$J*uwFWjVnVgC#E!W)aGttu=x)ASlwLK95We}YASor~VnQN|mpAn4nTL>Xobw8k{ON%ySc zl`3A5@k-btX4`PdH2qig=`t`)c!&I+*50o)(`2VM!!%(h8IDe1n%-gyBblcEaf&Vt zKIsyF+TYSC?%uDrDcQgG>m8L+ex|9LarX2afCx@o|9W#k7fDu@yRzKUa%0R&kGL20 zm0r}Z%r8we_#(78vXIh#wu-WE3;VDdV=WKUv^rxdFVnOJV+`>_K|(2*5Xz}tZM`OA zE}m)XZDA>vX=enxIXm6Ds0drw?pt_$~Gt18RQ$Zf=xfFa-D)0i6v zi@pgLy{DtGO;thA;Tws@%)n@kk=u;!S;ci#TqonYuw~4)<&u%xT=nUq7`b`$ET;Lz z0`vQm$=B+mcg^U9mYh`&%|6w-x2(XXLh4DdlJ6-p4q5 zdJd>@JJg#4wjs&Na#xmHT5gPA=^1a!{n^i^1*o^cWq%&zw9s85gz0?biEy`LtmR?k zwr5P`W#o2XjBtZT(abk9T1G$LwIrHLbKnBH79`$+389?Y)z&*Q=HeN-oh&THGIBdJ zmhv%jyD+xm7`a^;L(7cZJ8Y~lLXt^0ec3vfwskkgQXWQbcgEBbBS*QkZqNHNmd;`1 z`Y~odn--wn0+;=HkPU4MBew@*&5q1$=BtjZZ!TAGt)bw2kz=DjV++TVHm(f0oS1wJ zTeH_BBey4&%g@LSP${_?xxL~Fb6vQBR#ldpksHL7&;%nlI9T+(x#&F|jSW!+K{rn( z2LIETh{nv(8Y8z4;$rQH)&rHwo}|v_aM$xo~PTjNE{D zAa(*Hw=Y{5$;iE*Q;c1)IXL@UHY2wm<>hDO_E#z8XXFlGoIO1U9LViZZw?qnl9lDI zEVs1W7{Agp9?t#Q&!z>ax4>n89^|ypU0RReMlja$FmfXqQ+XM=QH(LfqXmh#U_vOT zcD40r##}rjH^#zJEF*UiV<{gaHZ})4q+_iVdM^FOvN*D;}}clFmmG= zv!6{1P;Y_D{yfNrwuOHOs#F zCVdHET+<5f!e8M v!~~P6Sy7f%>mO$va;Nj<(8Hk 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

    Q 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%0D_aHG%ZxWR}uT0#gLMX-K0N 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톛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

    *ycVzST`(YJ3C9G4<#}eJ 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�emwb(dW!i@9$Sls1}>K5I- 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 GqW>Rk@K7}X literal 0 HcmV?d00001 diff --git a/ArcGIS/ndvi_hyper_spr.cal b/ArcGIS/ndvi_hyper_spr.cal new file mode 100644 index 0000000000000000000000000000000000000000..effc657ea217a256146d122ea42e005a98128df7 GIT binary patch literal 54 kcmdO3h-PqNFl8`fh-J_PvyB-nfNV_$eFhCAIc*d<0KFatz5oCK literal 0 HcmV?d00001 diff --git a/ArcGIS/paste_plot_and_exname_AF.cal b/ArcGIS/paste_plot_and_exname_AF.cal new file mode 100644 index 0000000000000000000000000000000000000000..8a4fce41c404aadcdd55952a2287ec7c6e789528 GIT binary patch literal 46 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 r = "name: srek age :24 description: blah blah" +##>>> import re +##>>> regex = re.compile(r"\b(\w+)\s*:\s*([^:]*)(?=\s+\w+\s*:|$)") +##>>> d = dict(regex.findall(r)) +##d +##{'age': '24', 'name': 'srek', 'description': 'blah blah'} +##Explanation: +## when the pattern is around these brackets() one separate value will be fetched by each () group +## +##\b # Start at a word boundary +##(\w+) # Match and capture a single word (1+ alnum characters) +##\s*:\s* # Match a colon, optionally surrounded by whitespace +##([^:]*) # Match any number of non-colon characters +##(?= # Make sure that we stop when the following can be matched: +## \s+\w+\s*: # the next dictionary key +##| # or +## $ # the end of the string +##) # End of lookahead + diff --git a/ArcGIS/read_band_names_from_header_1.py b/ArcGIS/read_band_names_from_header_1.py new file mode 100644 index 0000000..bbd6fce --- /dev/null +++ b/ArcGIS/read_band_names_from_header_1.py @@ -0,0 +1,115 @@ +import re +import arcpy +import itertools +import os + +def print_kwinfo(): + if deb==1: + print "kwinfo se guarda:" + print kwinfo + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension + +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + print "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) + +def letsgo(header_file): + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] + lines = re.split(r"[\n]", data)#the info corresponding to one line + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la línea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print str(i)+"-l- "+str(l) + kwinfo+=l + if deb==1: print str(i)+"-kwinfo- "+str(kwinfo) + if ongoing==1: + if "}" in l: + if deb==1: print "ongoing==se cierra por fin el parentesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print "ongoing==1 else" + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print keyw+" attribute found" + if "{" in l: + if "}" in l: + if deb==1: print "ongoing==parentesis cerrando en linea" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print "if bracket in l: --- else" + else: + if deb==1: print "ongoing==sin paretesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print "fin de ronda de for" + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print regexpresion.findall(cl) + for key in dictio: dictio[key]=dictio[key].strip() + print "Header attributes:" + print_dict(dictio) + #Now we save to a list what the wavelengt name info + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + #Band names + bn=re.split(r"[,]", dictio["band names"]) + bn=replace_in_list(expr_replace,bn) + #Next we add the wl units only if they are defined + join_str = '"{bandn} ({waveln} '+dictio["wavelength units"]+')"' if dictio["wavelength units"]!="Unknown" else '"{bandn} ({waveln})"' + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if deb==1: + print full_bn + print "Bands: "+len(full_bn) + return full_bn + +## Starts the script +try: + workspace = "E:\\140328\\140328H\\mosaico" + nombre_raster = "H140328_PA_1m_60bands" + hdr_file = os.path.join(workspace, nombre_raster+".hdr") + print letsgo(hdr_file) +except ValueError: + print ValueError diff --git a/ArcGIS/replace_py.cal b/ArcGIS/replace_py.cal new file mode 100644 index 0000000000000000000000000000000000000000..54778c3364d2a1f3f7aaa5f04f2612986005214b GIT binary patch literal 62 zcmY#n@MB11$Yn@nP-M_!C<4+23^_oNWFSj}p_D<1p@boWA(NpP$kKuH6M>>i44Mo8 DN81V} literal 0 HcmV?d00001 diff --git a/ArcGIS/script_pruebas.py b/ArcGIS/script_pruebas.py new file mode 100644 index 0000000..8db773c --- /dev/null +++ b/ArcGIS/script_pruebas.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# script_pruebas.py +# Created on: 2014-06-07 16:59:26.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: script_pruebas +# Description: +# --------------------------------------------------------------------------- + +# Import arcpy module +import arcpy + +# Check out any necessary licenses +arcpy.CheckOutExtension("spatial") + +# Load required toolboxes +arcpy.ImportToolbox("Model Functions") + +# Script arguments +bf_Lx_2 = arcpy.GetParameterAsText(0) +if bf_Lx_2 == '#' or not bf_Lx_2: + bf_Lx_2 = "140117\\H140117_EYTBWMEL_bf_L3" # provide a default value if unspecified + +bf_Lx_1 = arcpy.GetParameterAsText(1) +if bf_Lx_1 == '#' or not bf_Lx_1: + bf_Lx_1 = "140117\\H140117_EYTBWEH_bf_L3" # provide a default value if unspecified + +Grid = arcpy.GetParameterAsText(2) +if Grid == '#' or not Grid: + Grid = "H140117_BW" # provide a default value if unspecified + +L_Stats_table = arcpy.GetParameterAsText(3) +if L_Stats_table == '#' or not L_Stats_table: + L_Stats_table = "D:\\AB2013-2014\\Bread_wheat\\data\\140117\\L3\\b1" # provide a default value if unspecified + +Raster = arcpy.GetParameterAsText(4) +if Raster == '#' or not Raster: + Raster = "E:\\140117\\140117H\\ortho\\140117_3_810.bsq" # provide a default value if unspecified + +Folder_tablas = arcpy.GetParameterAsText(5) + +# Local variables: +BW_AB_join_result = L_Stats_table +BW_AB_selection_result = BW_AB_join_result +BW_AB_calculateField_result = BW_AB_selection_result +BW_AB_remove_join_result = BW_AB_calculateField_result +B = L_Stats_table +path_table = L_Stats_table +L_merge = bf_Lx_2 +Zone_field_and_join_Field = "Name" +grid_name = Grid +Field_Name_Calculate_field = "%grid_name%.%B%" +Expression_Calculate_field = "[%B%:Mean]" +Expression_Select_layer = "\"%B%:Mean\" IS NOT NULL" + +# Process: Merge +arcpy.Merge_management("140117\\H140117_EYTBWMEL_bf_L3;140117\\H140117_EYTBWEH_bf_L3", L_merge, "Name \"Name\" true true false 254 Text 0 0 ,First,#,140117\\H140117_EYTBWMEL_bf_L3,Name,-1,-1,140117\\H140117_EYTBWEH_bf_L3,Name,-1,-1;environm \"environm\" true true false 20 Text 0 0 ,First,#,140117\\H140117_EYTBWMEL_bf_L3,environm,-1,-1") + +# Process: Zonal Statistics as Table +arcpy.gp.ZonalStatisticsAsTable_sa(L_merge, Zone_field_and_join_Field, Raster, L_Stats_table, "DATA", "MEAN") + +# Process: Add Join +arcpy.AddJoin_management(Grid, Zone_field_and_join_Field, L_Stats_table, Zone_field_and_join_Field, "KEEP_ALL") + +# Process: parse_table_name +arcpy.ParsePath_mb(L_Stats_table, "NAME") + +# Process: Parse_grid_name +arcpy.ParsePath_mb(Grid, "NAME") + +# Process: Select Layer By Attribute +arcpy.SelectLayerByAttribute_management(BW_AB_join_result, "NEW_SELECTION", Expression_Select_layer) + +# Process: Calculate Field +arcpy.CalculateField_management(BW_AB_selection_result, Field_Name_Calculate_field, Expression_Calculate_field, "VB", "") + +# Process: Remove Join +arcpy.RemoveJoin_management(BW_AB_calculateField_result, "") + +# Process: parse_table_path +arcpy.ParsePath_mb(L_Stats_table, "PATH") + diff --git a/ArcGIS/select no relleno y calor.exp b/ArcGIS/select no relleno y calor.exp new file mode 100644 index 0000000000000000000000000000000000000000..1e8f545d1df350ef753fe5e17eb1ac94cf46471e GIT binary patch literal 360 zcma)&!3u*g5Jcan1VK_i!h>S4rJ6t~h2HBys1-!}{f@a7N?2HCmziaDJb^og6B(Y0 z9w%hzxNsFVSaNPcoyv(5G+XV1w&t(u5jlZcx@WSgXXDM9%s;$2n&{ZmChKZu7GCP9 d|1=CtKm36YUq;=Ug{GKZ8FM?!SEY0<1v`x#EHVH9 literal 0 HcmV?d00001 diff --git a/ArcGIS/select relleno and demo name.exp b/ArcGIS/select relleno and demo name.exp new file mode 100644 index 0000000000000000000000000000000000000000..5366544e03252b58aec8a738881b04e1ec6693da GIT binary patch literal 302 zcma)%OA3H65JTTliXc6QrA5R~!G+*ncZwi-e`9eglz|}=ULaF2P|*`8FmyDu(gsV( zDAj3#n5f&zk8+LJ|J0P2h*NIPPW9YuT-p5FE#On*fjT?qI5=6fbN}(I>>vLCS$QN- literal 0 HcmV?d00001 diff --git a/ArcGIS/select relleno id.exp b/ArcGIS/select relleno id.exp new file mode 100644 index 0000000000000000000000000000000000000000..a05d3335e8517ce5e4a6d0ddb0895465a0c8f491 GIT binary patch literal 42 rcmY#l$Ye-iP-0ME@L}*|@MdrYveX$=8G?W;A0TvP@MG`?^3@ptaxw)V literal 0 HcmV?d00001 diff --git a/ArcGIS/select relleno name.exp b/ArcGIS/select relleno name.exp new file mode 100644 index 0000000000000000000000000000000000000000..ed3229b865a3474050988a9d6b04e1f071a0d32d GIT binary patch literal 254 zcma)%OA3H65JTTlNOrUt P1Izg{I002h0@VTl+cOIi literal 0 HcmV?d00001 diff --git a/ArcGIS/select_slashes_in_name_field.exp b/ArcGIS/select_slashes_in_name_field.exp new file mode 100644 index 0000000000000000000000000000000000000000..c5253a36192bfc335bbbfa0fe9b24c48d2530b81 GIT binary patch literal 38 ncmY#l@MB11$Yn@nP-0ME@L}*|@MdrYveX$=8T7$W703nvV7>%U literal 0 HcmV?d00001 diff --git a/ArcGIS/sobelHorizontalKernel-9x9.txt b/ArcGIS/sobelHorizontalKernel-9x9.txt new file mode 100644 index 0000000..8bbdbb5 --- /dev/null +++ b/ArcGIS/sobelHorizontalKernel-9x9.txt @@ -0,0 +1,10 @@ +9 9 +4 5 6 7 8 7 6 5 4 +3 4 5 6 7 6 5 4 3 +2 3 4 5 6 5 4 3 2 +1 2 3 4 5 4 3 2 1 +0 0 0 0 0 0 0 0 0 +1 2 3 4 5 4 3 2 1 +2 3 4 5 6 5 4 3 2 +3 4 5 6 7 6 5 4 3 +4 5 6 7 8 7 6 5 4 \ No newline at end of file diff --git a/ArcGIS/sobelHorizontalKernel-modif.txt b/ArcGIS/sobelHorizontalKernel-modif.txt new file mode 100644 index 0000000..03ce6b8 --- /dev/null +++ b/ArcGIS/sobelHorizontalKernel-modif.txt @@ -0,0 +1,4 @@ +3 3 +1 2 1 +0 0 0 +1 2 1 \ No newline at end of file diff --git a/ArcGIS/sobelHorizontalKernel.txt b/ArcGIS/sobelHorizontalKernel.txt new file mode 100644 index 0000000..dab7c34 --- /dev/null +++ b/ArcGIS/sobelHorizontalKernel.txt @@ -0,0 +1,4 @@ +3 3 +-1 -2 -1 +0 0 0 +1 2 1 \ No newline at end of file diff --git a/ArcGIS/split python text to float.exp b/ArcGIS/split python text to float.exp new file mode 100644 index 0000000..8a3b0f4 --- /dev/null +++ b/ArcGIS/split python text to float.exp @@ -0,0 +1,12 @@ +prelogic block + +def toNum(inValue): + try: + outValue = float(inValue) + return outValue + except: + doNothing = 4 + + +field= + toNum(!Name!.split(u'/')[2]) \ No newline at end of file diff --git a/ArcGIS/split python.cal.exp b/ArcGIS/split python.cal.exp new file mode 100644 index 0000000000000000000000000000000000000000..c40441eae5b5045557b9eea654dd52ef0cf3ede9 GIT binary patch literal 42 vcmY#n@MB11$Yn@nP-M_!C}t>N$YIE2C}GfGC}mJ*&N$YIE2C}GfGC}mJ$&~7m0RUM{1h@bI literal 0 HcmV?d00001 diff --git a/ArcGIS/stackCVStoXLSX.R b/ArcGIS/stackCVStoXLSX.R new file mode 100644 index 0000000..89a6f18 --- /dev/null +++ b/ArcGIS/stackCVStoXLSX.R @@ -0,0 +1,24 @@ +####### +##script to save to Excel lots of CVS in a folder +####### +require(xlsx) +##Set working drectory +setwd("C:/vuelos/ac2015/r") + +##Something like this to read all the cvs files +##Another example of use: list.files("C:/temp",full=TRUE) +csv_files = list.files(pattern="*.csv$") #List of the files +DATA <- do.call("rbind", lapply(csv_files, read.csv, header=TRUE)) #Read them all, like a loop + +#Create file +library(xlsx) #load the package +write.xlsx(x = sample.dataframe, file = "test.excelfile.xlsx", + sheetName = "TestSheet", row.names = FALSE) + +#Write to existing file +workbook.sheets +workbook.test +addDataFrame(x = sample.dataframe, sheet = workbook.test, +row.names = FALSE, startColumn = 4) # write data to sheet starting on line 1, column 4 +saveWorkbook(workbook.sheets, "test.excelfile.xlsx") # and of course you need to save it. + diff --git a/ArcGIS/timeSeries_joinData.R b/ArcGIS/timeSeries_joinData.R new file mode 100644 index 0000000..fe62c1c --- /dev/null +++ b/ArcGIS/timeSeries_joinData.R @@ -0,0 +1,79 @@ +##Script to get the descriptive statistics of a time series data +##Rearrange the data to have it grouped by VIs +##Reads may csv in working directory with cerain pattern +## Saves the statistics in a TXT in the same location as the data file +##July 2015 + +################# Check these inputs######################### +##Set working directory to avoid giving the absolute path of files +##IMPORTANT: use the / slash instead of the backslash \ in the paths +##Or use double backslash \\ +wd<-("C:/vuelos/ab2014/Marco/") +setwd(wd) +## Sets the pattern of name in CSV files to be read, save names without extension +data_set = gsub(".csv", "", list.files(pattern="vis[0-9]*.csv")) +#Get dates of the measuremnts +dates<-sub("vis","",x=data_set) + +#Load to a dataframe each CSV file with all the VIs per date +for (i in 1:length(data_set)) { + #assigns to variables each of the CSV + #Select the columns after the 6th one, because the firsts have ancillary data + assign(data_set[i], read.csv(paste(data_set[i],".csv",sep=""), + header = TRUE, row.names = 1, + colClasses = c("character",rep("NULL",5),rep("numeric",41)))) +} +#Get names of vis +vis_list<-sub("[A-z]*[0-9]*_?","",x=colnames(get(data_set[i]))) + +#Create empty dataframe to store re organized data by VI, separately +#vis_data<-data.frame(data.frame(matrix(nrow = 114, ncol = 1))) +#create an array to store all the vis by date +vis_data <- array(0, dim=c(114,10,41), dimnames=c("points","dates","vis")) + +date<-1 #Initialize to use it before the loop +##Loop trough the VIS +for (vi in 1:length(vis_list)) { + #Name each row as the measurement point + rownames(vis_data)<-rownames(get(data_set[date])) + + ##Loop trough the dates of one VI to store it together + for (date in 1:length(dates)) { + + ##Solution with merge function. Had troubles making it doing the ""join"" + ##withe the row names that start with number but have a letter also, like 5R or 7S + #vis_data<-merge(vis_data,get(data_set[i])[,j],by="row.names", all = TRUE) + ##Solution assigning the values to the corresponding column + vis_data[,date,vi]<-get(data_set[date])[,vi] + } + colnames(vis_data)<-dates #Name each column with the date + + #################Managed separately + ##Use this to save results to files (41 VI = 41 files) + #dir.create(paste(wd,"vis_by_date/",sep="")) #Creates a directory to store vis by date + #write.csv(vis_data, file = paste(wd,"vis_by_date/", "VIalldates.csv", sep="")) + ##Use this to save to a variable + #assign(paste("VIalldates_",vis[j], sep=""),vis_data) + + ##Create empty dataframe to store re organized data by VI (to reset this) + ##Used with the MERGE alternative + #vis_data<-data.frame(data.frame(matrix(NA, nrow = 114, ncol = 1))) + #####################Managed separately +} +##To find the index which corresponds to a VI in the vis_array: +#match("BGI2", vis) + +#### Plot average values of VIS during Cycle to PDF +pdf(file=paste("vis_by_date/"," VIS along cycle.pdf", sep="")) +#par(mfrow=c(7,6)) +for (vi in 1:length(vis_list)) { + #Gets the average of all points by date, this means the meand is applied across the COLUMNS -> MARGIN=2 + plot(1:10, apply(vis_data[,,vis=vi], MARGIN=2, FUN=mean), + main=vis_list[vi], + xlab="All 10 image dates") + + ##Gets the average of a point "5R" across all dates + #points(1, mean(vis_data[match("5R", rownames(vis_data)),,vis=vi]), xlab="5R",main=vis[vi]) +} +dev.off()#Finish saving to PDF + diff --git a/ArcGIS/truncateName.py b/ArcGIS/truncateName.py new file mode 100644 index 0000000..e55cfcd --- /dev/null +++ b/ArcGIS/truncateName.py @@ -0,0 +1,15 @@ +#Get subset of string based on a beginning char position and end position +import arcpy, os +def GetName(inputName): + subsetName = inputName[fromChar:toChar] + return subsetName + +fromChar = arcpy.GetParameter(0) +toChar = arcpy.GetParameter(1) +inputName = arcpy.GetParameter(2) +resultString = GetName(inputName) + +arcpy.SetParameterAsText(3, resultString ) +arcpy.AddMessage("Original string: "+inputName ) +arcpy.AddMessage("Truncated from: "+str(fromChar)+", to: "+str(toChar)) +arcpy.AddMessage("Result string: "+ resultString ) \ No newline at end of file diff --git a/ArcGIS/zonalStatsMultibandCSVInputsSelectFiles.py b/ArcGIS/zonalStatsMultibandCSVInputsSelectFiles.py new file mode 100644 index 0000000..b2a8687 --- /dev/null +++ b/ArcGIS/zonalStatsMultibandCSVInputsSelectFiles.py @@ -0,0 +1,441 @@ +#Perform zonal statistics tool based on a list of on a specified list of dates and names. +#The inputs are specified as para meters in the tool in ArcMap +#Automatically calls the appropriate raster and zonal data from the specified locations. +#Assumes the default "Greenplane" naming standards + +#This script is to execute the "Zonal statistics" tool in a multiband raster. It saves the resulting table to a specified >workspace<. +# One table per band is generated, they are named based on the raster and feature zone names + the extracted band number. +# To iterate along the bands, the ENVI HDR file is atempted to be read to get the band names. +# If header doesn't exist, a known number of bands can be specified to iterate. +#This script takes 3 important inputs and outputs: +#(input) +# Buffer: zone feature to use as input for zonal statistic tool. +# Standard file name system on the features is espected: tttYYMMDDfff +# Being: +# YYMMDD= date in a YYMMDD format. E.g. 160311 for march 11 of 2016. +# fff = 3 char indicating the features that are represented in the vector shapes. E.g. "gss" for greenseeker sampling, "plt" for field plots. +# ttt = 3 char representing the trial or area covered in the image. E.g. "bwh" for bread wheat trials, "sam" for maize summer trials + +# ID field: Field of the input feature to use as identifier of the different zones for generating the statistics + +# image: data image to use as input for zonal statistic tool. +# Standard file name system on the raster is espected: xYYMMDDtttsss +# Being: +# x = [h,m,t,c,a,r,n] one char representing the camera used to acquire the imagery + # sss = 3 char representing the processing stage of the imagery. E.g. "geo" for georeferenced, "pno" for the multi mosaic +# The band information is read from the envi HDR file + +# Workspace: where to save the statistics tables and where to create the features to save the mean values per plot + +# Known bands: [Optional] Number of bands of the input raster. Necessary if +# the header file doesn't exist -> default is 1 if not specified. + +#(ouput) +# Tables: The full default statistics table +# Table name structure: xYYMMDDtttfffBi +# Being: +# i: the band number from which the statistics was calculated based on the zones of the input feature +# --------------------------------------------------------------------------- + +#################################WARNING +#crashes if the csv has just one row + +import numpy +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys +import time + +#Read the file to know which feature-raster to extract +def readWhatToExtract(csvWhatToExtract): + arcpy.AddMessage("will read file: "+csvWhatToExtract) + extractMatrix=numpy.genfromtxt(open(csvWhatToExtract,"rb"), + delimiter=',', + dtype=None, + names=True) + dates = list(extractMatrix['date']) #get the dates + arcpy.AddMessage("Dates: "+str(dates)) + trials=extractMatrix.dtype.names[1:] + arcpy.AddMessage("Trials: "+str(trials)) + extractMatrix = extractMatrix[list(extractMatrix.dtype.names)[1:]]#remove "date" column (1st) + arcpy.AddMessage("What to extract: "+str(extractMatrix)) + return extractMatrix,dates,trials + #Return the matrix of the kind of images acquired on each day on each trial [h m t], + #the list of dates and the list of trials (removing the "date" item) +def readDbf():# read dbf file + print("Algo haremos aquĂ­")# zsFields= ["id","COUNT","MEAN","STD"] + # table="C:\\Users\\usuario\\Documents\\ArcGIS\\m150326pcwbufB1.dbf" + # with arcpy.da.SearchCursor(table, zsFields) as cursor: + # for row in cursor: + # print(('Feature {0} has an area of {1}'.format(row[0], row[1])) +def zonalStatsMultiband(tableBaseName, bandNames, image, plot_polygons,id_field): + try: + tables=list() + #zonalStats iterated in all bands of the raster Multiband + #Return list of the name of the generated tables + arcpy.AddMessage("Iterating the zonal statistics across all bands...") + #Get bands + #Returns: [0]numberOfBands, [1]isBandNamesInteger? + numOfBands = getNumberOfBands(bandNames) + arcpy.AddMessage("Number of bands: "+str(numOfBands[0])) + #If the image has more than one band... + if numOfBands[0] != 1: + #If we only have the number of bands, but no band names (because there was no hdr)... + #We will call the bands by the default way ArcMap does: RasterName + Band_1, Band_2, etc... + #we create the list to iterate it + if numOfBands[1]: bandNames = list('Band_%s' % b for b in range(1, numOfBands[0]+1)) + #Here iterates through the bands and runs the zonal statistics tool + #Get the count with the function "enumerate" + for i, b in enumerate(bandNames, start=1): + #Next we add the band name to the raster basename + band = image + "\\" + b + arcpy.AddMessage("Iterating band # "+ str(i)+" - " + band) + #Set table name + statsTable = tableBaseName+"B" + str(i)+ ".dbf" #We add the band id to the StatsTable name + #arcpy.AddMessage("Willbe stored in table "+str(statsTable)) + #Here we call the method to do the zonal statistics + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, band, statsTable, "DATA", "ALL") + arcpy.AddMessage("resulting stats table: " + str(zs)) + tables.append(plot_polygons+","+band+","+str(zs)) + else: + #If we have just one band we call the raster without specifying any band + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, image, tableBaseName+"B1.dbf", "DATA", "ALL") + tables.append(plot_polygons+","+image+","+str(zs)) + arcpy.AddMessage("||| resulting zs table: " + str(zs)) + return tables + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) +def print_kwinfo(): + if deb==1: + print( "kwinfo se guarda:") + print( kwinfo) + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception as e: + # If an error occurred, print( line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path) else False + return exists + +def write_hdr_file(hdr_filename,assign_bands=1,mode="w"): + try: + hdr_file = open(hdr_filename, mode) + hdr_file.write("HEAD\nbands = "+ str(assign_bands)+"\n") + arcpy.AddMessage("writing in hdr file") + hdr_file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: write_hdr_file") + raise e +def appendListToFile(txt_filename,thelist,mode="w"): + try: + file = open(txt_filename, mode) + #arcpy.AddMessage("writing in "+txt_filename+" file") + for item in thelist: + file.write("%s\n" % item) + file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: appendListToFile") + raise e + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension +#Method to concatenate the band name to the raster basename +#BandNames has or all the list of band names or the number of bands +def getNumberOfBands(bandNames): + try: + #If there was no bandnames or header, a band number was assigned + #This would be an integer + numOfBands = int(bandNames) + isANumber = True + return numOfBands, isANumber + except ValueError: + #If there is a band name as a string we will say it's one band + numOfBands = 1 + isANumber = False + return numOfBands, isANumber + except TypeError: + #If there are band names as list or array we will count them here + numOfBands = len(bandNames) + isANumber = False + return numOfBands, isANumber + except Exception as e: + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print( "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print( in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window +def readHeaderFile(header_file,assign_bands=1): + try: + if not exists(header_file): + write_hdr_file(header_file,assign_bands) + arcpy.AddMessage("Header not found, it was created a basic one. Number of bands assigned: "+str(assign_bands)) + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] #Skip the first "ENVI" letters of the header + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("reading header lines...") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la lĂ­nea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print( str(i)+"-l- "+str(l)) + kwinfo+=l + if deb==1: print( str(i)+"-kwinfo- "+str(kwinfo)) + if ongoing==1: + if "}" in l: + if deb==1: print( "ongoing==se cierra por fin el parentesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print( "ongoing==1 else") + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print( keyw+" attribute found") + if "{" in l: + if "}" in l: + if deb==1: print( "ongoing==parentesis cerrando en linea") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print( "if bracket in l: --- else") + else: + if deb==1: print( "ongoing==sin paretesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print( "fin de ronda de for") + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print( regexpresion.findall(cl)) + for key in dictio: dictio[key]=dictio[key].strip() + print( "Header attributes:") + #arcpy.AddMessage("Header attributes read") + #print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + #arcpy.AddMessage(wl) + #arcpy.AddMessage("saved wl") + #Number of Bands + if "bands" in dictio: + hdr_bands=dictio["bands"] + #arcpy.AddMessage(hdr_bands) + #arcpy.AddMessage("saved Number of bands from header") + #Band names + if "band names" in dictio: + #arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + #arcpy.AddMessage("split completed") + bn=replace_in_list(expr_replace,bn) + #arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + #arcpy.AddMessage("Format composed band name") + full_bn=hdr_bands #We assign by default the number of bands in the raster + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + #arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + #arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + #arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + #arcpy.AddMessage("wl found") + full_bn= wl + #arcpy.AddMessage(full_bn) + if deb==1: + arcpy.AddMessage( full_bn) + arcpy.AddMessage( "Bands descripted in header: "+len(full_bn)) + #CHECK IF the "data ignore value is set", otherwise, set it to 0. + if not "data ignore value" in dictio: + arcpy.AddMessage("Set -data ignore value to 0-") + add=["data ignore value = 0"] + appendListToFile(header_file,add,mode="a") + #arcpy.AddMessage("Finished reading header") + #arcpy.AddMessage(type(full_bn)) #to know the type of variable it was created + return full_bn + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +#^^^^^^^^^^^^^^^^^^^^^^^ Methods ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +try: + # Check out any necessary licenses and Create the Geoprocessor object + arcpy.CheckOutExtension("spatial") + gp = arcgisscripting.create() + ######################################################################################### + ################################# START:INPUTS ########################################## + #Hard coded this + csvExtractThis = arcpy.GetParameterAsText(0) + #imgWs="G:\\AD15_16\\" #imageBaseLocation + imgWs = arcpy.GetParameterAsText(6) #test + #GDB whare the feature classes are stored and where the tables will be written: + gdb = arcpy.GetParameterAsText(1) #BW + #gdb = "C:\\Users\\usuario\\Documents\\ArcGIS\\Default.gdb\\" #Default + #tws = where to save tables inside the workspace + tws =arcpy.GetParameterAsText(9)######Not worinkg... it saves a folder up####### + ds=arcpy.GetParameterAsText(3) #Use this ds="" fro m and t + #ds="h" #Use this for hyper + arcpy.env.workspace = gdb + #arcpy.AddMessage("wspace: "+str(arcpy.env.workspace)) + #knownBands="62" # ##################### hyper resampled + knownBands=arcpy.GetParameterAsText(8) # ####################### thermal + id_field = arcpy.GetParameterAsText(5) #Table field that has the unique plot identifier + log= arcpy.GetParameterAsText(10) + ## END:INPUTS ## + + ## START:VARIABLES ## + #Get all feature classes gdb/extract dataset + listFc = arcpy.ListFeatureClasses( + feature_type="Polygon", + feature_dataset=ds) + mosaicFolder = { + #Get the folder and suffix for the images according to the camera + #"m": ("msk","mkd"), #When you will use the masked rasters + "m": ("geo","geo"), #When you will use the original multispectral rasters + "h": ("rfl_spr_ort","ort"), + "t": ("cel","cel"), #This to extract from the full mosaic + #"t": ("msk","mkd"), #This to extract from the masked mosaic + } + arcpy.env.workspace = gdb + ext=arcpy.GetParameterAsText(7) #extension of the rasters + buf=arcpy.GetParameterAsText(2) #we use the buffered plot features -buf- to extract the stats or the full plots -plt- + bw8=arcpy.GetParameterAsText(4) #default trial eg. bw8 if there is a raster that includes all the zonal features + + #################################### + ############################ END:VARIABLES ############################################## + ######################################################################################### + ex, dates,trials = readWhatToExtract(csvExtractThis) + #find the image paths and features to perform the zonal statistics + for f, flightdate in enumerate(ex): + for t,trial in enumerate(flightdate): #skip the date column + for cam in trial.split(): + if cam !="-": + #QuĂ© hacer si está vacĂ­o? + #ZONES FEATURE + #Search for the corresponding grids for this date/trial/cam + #if date is __ad__ the grid is the general for the cycle e.g. ypt__ad__buf + #if date is YYMMDD the grid was adjusted, and needs to have indicated also the camera + # this way we can know at which image the adjustment corresponds. + # grids adjusted will be like bw1160215bufh -> with the date and camera indicated + pattern = str(trials[t])+"("+str(dates[f])+'|__ae__)'+buf+'['+cam+']*$'#################################################this is hardcoded year code cycle + arcpy.AddMessage("pattern: "+str(pattern)) + #arcpy.AddMessage("FList: "+str(listFc)) #print List of features selected + plotsF = [ft for ft in listFc if re.search(pattern, ft)] + #Will throw error if list empty? + if plotsF: + if len(plotsF)>1: plotsF=plotsF[0] #get just the edited feature if the general exists + plotsF=os.path.join(arcpy.env.workspace, ds, ''.join(plotsF)) + arcpy.AddMessage("Zones: "+plotsF) + #RASTER + #search for the images that match them + # hyper mosaics folder is rfl_spr_ort, for multi is geo, for thermal is cel + mF, sx = mosaicFolder.get(cam,("geo","geo")) #corresponding folder and sfx, geo default + imgLocation = imgWs+"\\"+str(dates[f])+"\\"+cam+"\\"+mF+"\\" + imgName =cam+str(dates[f])+str(trials[t])+sx+ext + img=imgLocation+imgName + arcpy.AddMessage("looking for raster for area: "+str(img)) #print to check + if not exists(img): #Use the general mosaic + imgName =cam+str(dates[f])+bw8+sx+ext + img=imgLocation+imgName + arcpy.AddMessage("looking for general mosaic: "+str(img)) #print to check + if exists(img): + arcpy.AddMessage("Raster: "+img) + #PREPARE FOR THE ZS + #Reading header to get Bands + #We assume header file is there and named as the raster + hdr_file = img[:-4]+".hdr" + #Read header to know number and name of bands or set them a priori + #knownBands is optional + bandNames = readHeaderFile(hdr_file, knownBands) + tableBaseName = arcpy.ValidateTableName(cam+str(dates[f])+str(trials[t])+buf,tws) #stats table base name in ws + #arcpy.AddMessage("zs") + #arcpy.AddMessage("tb:"+tableBaseName) + zsm = zonalStatsMultiband(tableBaseName, bandNames, img, plotsF,id_field) + appendListToFile(log,zsm,mode="a") + else: + arcpy.AddMessage("|||No raster to use |||") + appendListToFile(log,str(img),mode="a") + else: + arcpy.AddMessage("|||No features to use|||") + appendListToFile(log,str(plotsF),mode="a") + else: arcpy.AddMessage("No data extracting for this trial on this date") + appendListToFile(log,("Finished",time.strftime("%Y/%m/%d %H:%M:%S")),mode="a") #Write finish time in log +except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)+ " Error " + e.message) \ No newline at end of file diff --git a/ArcGIS/zonalStatsMultiband_inFolder.py b/ArcGIS/zonalStatsMultiband_inFolder.py new file mode 100644 index 0000000..3635a72 --- /dev/null +++ b/ArcGIS/zonalStatsMultiband_inFolder.py @@ -0,0 +1,443 @@ +#Perform zonal statistics tool in all the imagery on a folder. +#The inputs are specified as para meters in the tool in ArcMap +#Automatically calls the appropriate raster and zonal data from the specified locations. +#Assumes the default "Greenplane" naming standards + +#This script is to execute the "Zonal statistics" tool in a multiband raster. It saves the resulting table to a specified >workspace<. +# One table per band is generated, they are named based on the raster and feature zone names + the extracted band number. +# To iterate along the bands, the ENVI HDR file is atempted to be read to get the band names. +# If header doesn't exist, a known number of bands can be specified to iterate. +#This script takes 3 important inputs and outputs: +#(input) +# Buffer: zone feature to use as input for zonal statistic tool. +# Standard file name system on the features is espected: tttYYMMDDfff +# Being: +# YYMMDD= date in a YYMMDD format. E.g. 160311 for march 11 of 2016. +# fff = 3 char indicating the features that are represented in the vector shapes. E.g. "gss" for greenseeker sampling, "plt" for field plots. +# ttt = 3 char representing the trial or area covered in the image. E.g. "bwh" for bread wheat trials, "sam" for maize summer trials + +# ID field: Field of the input feature to use as identifier of the different zones for generating the statistics + +# image: data image to use as input for zonal statistic tool. +# Standard file name system on the raster is espected: xYYMMDDtttsss +# Being: +# x = [h,m,t,c,a,r,n] one char representing the camera used to acquire the imagery + # sss = 3 char representing the processing stage of the imagery. E.g. "geo" for georeferenced, "pno" for the multi mosaic +# The band information is read from the envi HDR file + +# Workspace: where to save the statistics tables and where to create the features to save the mean values per plot + +# Known bands: [Optional] Number of bands of the input raster. Necessary if +# the header file doesn't exist -> default is 1 if not specified. + +#(ouput) +# Tables: The full default statistics table +# Table name structure: xYYMMDDtttfffBi +# Being: +# i: the band number from which the statistics was calculated based on the zones of the input feature +# --------------------------------------------------------------------------- + +#################################WARNING +#crashes if the csv has just one row + +import numpy +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys +import time + +#Read the file to know which feature-raster to extract +def readWhatToExtract(csvWhatToExtract): + arcpy.AddMessage("will read file: "+csvWhatToExtract) + extractMatrix=numpy.genfromtxt(open(csvWhatToExtract,"rb"), + delimiter=',', + dtype=None, + names=True) + dates = list(extractMatrix['date']) #get the dates + arcpy.AddMessage("Dates: "+str(dates)) + trials=extractMatrix.dtype.names[1:] + arcpy.AddMessage("Trials: "+str(trials)) + extractMatrix = extractMatrix[list(extractMatrix.dtype.names)[1:]]#remove "date" column (1st) + arcpy.AddMessage("What to extract: "+str(extractMatrix)) + return extractMatrix,dates,trials + #Return the matrix of the kind of images acquired on each day on each trial [h m t], + #the list of dates and the list of trials (removing the "date" item) +def readDbf():# read dbf file + print("Algo haremos aquĂ­")# zsFields= ["id","COUNT","MEAN","STD"] + # table="C:\\Users\\usuario\\Documents\\ArcGIS\\m150326pcwbufB1.dbf" + # with arcpy.da.SearchCursor(table, zsFields) as cursor: + # for row in cursor: + # print(('Feature {0} has an area of {1}'.format(row[0], row[1])) +def zonalStatsMultiband(tableBaseName, bandNames, image, plot_polygons,id_field): + try: + tables=list() + #zonalStats iterated in all bands of the raster Multiband + #Return list of the name of the generated tables + arcpy.AddMessage("Iterating the zonal statistics across all bands...") + #Get bands + #Returns: [0]numberOfBands, [1]isBandNamesInteger? + numOfBands = getNumberOfBands(bandNames) + arcpy.AddMessage("Number of bands: "+str(numOfBands[0])) + #If the image has more than one band... + if numOfBands[0] != 1: + #If we only have the number of bands, but no band names (because there was no hdr)... + #We will call the bands by the default way ArcMap does: RasterName + Band_1, Band_2, etc... + #we create the list to iterate it + if numOfBands[1]: bandNames = list('Band_%s' % b for b in range(1, numOfBands[0]+1)) + #Here iterates through the bands and runs the zonal statistics tool + #Get the count with the function "enumerate" + for i, b in enumerate(bandNames, start=1): + #Next we add the band name to the raster basename + band = image + "\\" + b + arcpy.AddMessage("Iterating band # "+ str(i)+" - " + band) + #Set table name + statsTable = tableBaseName+"B" + str(i)+ ".dbf" #We add the band id to the StatsTable name + #arcpy.AddMessage("Willbe stored in table "+str(statsTable)) + #Here we call the method to do the zonal statistics + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, band, statsTable, "DATA", "ALL") + arcpy.AddMessage("resulting stats table: " + str(zs)) + tables.append(plot_polygons+","+band+","+str(zs)) + else: + #If we have just one band we call the raster without specifying any band + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, image, tableBaseName+"B1.dbf", "DATA", "ALL") + tables.append(plot_polygons+","+image+","+str(zs)) + arcpy.AddMessage("||| resulting zs table: " + str(zs)) + return tables + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) +def print_kwinfo(): + if deb==1: + print( "kwinfo se guarda:") + print( kwinfo) + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception as e: + # If an error occurred, print( line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path) else False + return exists + +def write_hdr_file(hdr_filename,assign_bands=1,mode="w"): + try: + hdr_file = open(hdr_filename, mode) + hdr_file.write("HEAD\nbands = "+ str(assign_bands)+"\n") + arcpy.AddMessage("writing in hdr file") + hdr_file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: write_hdr_file") + raise e +def appendListToFile(txt_filename,thelist,mode="w"): + try: + file = open(txt_filename, mode) + #arcpy.AddMessage("writing in "+txt_filename+" file") + for item in thelist: + file.write("%s\n" % item) + file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: appendListToFile") + raise e + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension +#Method to concatenate the band name to the raster basename +#BandNames has or all the list of band names or the number of bands +def getNumberOfBands(bandNames): + try: + #If there was no bandnames or header, a band number was assigned + #This would be an integer + numOfBands = int(bandNames) + isANumber = True + return numOfBands, isANumber + except ValueError: + #If there is a band name as a string we will say it's one band + numOfBands = 1 + isANumber = False + return numOfBands, isANumber + except TypeError: + #If there are band names as list or array we will count them here + numOfBands = len(bandNames) + isANumber = False + return numOfBands, isANumber + except Exception as e: + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print( "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print( in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window +def readHeaderFile(header_file,assign_bands=1): + try: + if not exists(header_file): + write_hdr_file(header_file,assign_bands) + arcpy.AddMessage("Header not found, it was created a basic one. Number of bands assigned: "+str(assign_bands)) + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] #Skip the first "ENVI" letters of the header + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("reading header lines...") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la lĂ­nea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print( str(i)+"-l- "+str(l)) + kwinfo+=l + if deb==1: print( str(i)+"-kwinfo- "+str(kwinfo)) + if ongoing==1: + if "}" in l: + if deb==1: print( "ongoing==se cierra por fin el parentesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print( "ongoing==1 else") + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print( keyw+" attribute found") + if "{" in l: + if "}" in l: + if deb==1: print( "ongoing==parentesis cerrando en linea") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print( "if bracket in l: --- else") + else: + if deb==1: print( "ongoing==sin paretesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print( "fin de ronda de for") + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print( regexpresion.findall(cl)) + for key in dictio: dictio[key]=dictio[key].strip() + print( "Header attributes:") + #arcpy.AddMessage("Header attributes read") + #print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + #arcpy.AddMessage(wl) + #arcpy.AddMessage("saved wl") + #Number of Bands + if "bands" in dictio: + hdr_bands=dictio["bands"] + #arcpy.AddMessage(hdr_bands) + #arcpy.AddMessage("saved Number of bands from header") + #Band names + if "band names" in dictio: + #arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + #arcpy.AddMessage("split completed") + bn=replace_in_list(expr_replace,bn) + #arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + #arcpy.AddMessage("Format composed band name") + full_bn=hdr_bands #We assign by default the number of bands in the raster + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + #arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + #arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + #arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + #arcpy.AddMessage("wl found") + full_bn= wl + #arcpy.AddMessage(full_bn) + if deb==1: + arcpy.AddMessage( full_bn) + arcpy.AddMessage( "Bands descripted in header: "+len(full_bn)) + #CHECK IF the "data ignore value is set", otherwise, set it to 0. + if not "data ignore value" in dictio: + arcpy.AddMessage("Set -data ignore value to 0-") + add=["data ignore value = 0"] + appendListToFile(header_file,add,mode="a") + #arcpy.AddMessage("Finished reading header") + #arcpy.AddMessage(type(full_bn)) #to know the type of variable it was created + return full_bn + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +#^^^^^^^^^^^^^^^^^^^^^^^ Methods ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +try: + # Check out any necessary licenses and Create the Geoprocessor object + arcpy.CheckOutExtension("spatial") + gp = arcgisscripting.create() + ######################################################################################### + ################################# START:INPUTS ########################################## + #Hard coded this + csvExtractThis = arcpy.GetParameterAsText(0) + #imgWs="G:\\AD15_16\\" #imageBaseLocation + imgWs = arcpy.GetParameterAsText(6) #test + #GDB whare the feature classes are stored and where the tables will be written: + gdb = arcpy.GetParameterAsText(1) #BW + #gdb = "C:\\Users\\usuario\\Documents\\ArcGIS\\Default.gdb\\" #Default + #tws = where to save tables inside the workspace + tws =arcpy.GetParameterAsText(9)######Not worinkg... it saves a folder up####### + ds=arcpy.GetParameterAsText(3) #Use this ds="" fro m and t + #ds="h" #Use this for hyper + arcpy.env.workspace = gdb + #arcpy.AddMessage("wspace: "+str(arcpy.env.workspace)) + #knownBands="62" # ##################### hyper resampled + knownBands=arcpy.GetParameterAsText(8) # ####################### thermal + id_field = arcpy.GetParameterAsText(5) #Table field that has the unique plot identifier + log= arcpy.GetParameterAsText(10) + ## END:INPUTS ## + + ## START:VARIABLES ## + #Get all feature classes gdb/extract dataset + listFc = arcpy.ListFeatureClasses( + feature_type="Polygon", + feature_dataset=ds) + mosaicFolder = { + #Get the folder and suffix for the images according to the camera + #"m": ("msk","mkd"), #When you will use the masked rasters + "m": ("geo","geo"), #When you will use the original multispectral rasters + #"h": ("rfl_spr_ort","ort"), + "h": ("rfl_spr_ort","rfl"), #Specific for this test + "t": ("cel","cel"), #This to extract from the full mosaic + #"t": ("msk","mkd"), #This to extract from the masked mosaic + } + arcpy.env.workspace = gdb + ext=arcpy.GetParameterAsText(7) #extension of the rasters + buf=arcpy.GetParameterAsText(2) #we use the buffered plot features -buf- to extract the stats or the full plots -plt- + bw8=arcpy.GetParameterAsText(4) #default trial eg. bw8 if there is a raster that includes all the zonal features + + #################################### + ############################ END:VARIABLES ############################################## + ######################################################################################### + ex, dates,trials = readWhatToExtract(csvExtractThis) + #find the image paths and features to perform the zonal statistics + for f, flightdate in enumerate(ex): + for t,trial in enumerate(flightdate): #skip the date column + for cam in trial.split(): + if cam !="-": + #QuĂ© hacer si está vacĂ­o? + #ZONES FEATURE + #Search for the corresponding grids for this date/trial/cam + #if date is __ad__ the grid is the general for the cycle e.g. ypt__ad__buf + #if date is YYMMDD the grid was adjusted, and needs to have indicated also the camera + # this way we can know at which image the adjustment corresponds. + # grids adjusted will be like bw1160215bufh -> with the date and camera indicated + pattern = str(trials[t])+"("+str(dates[f])+'|__ae__)'+buf+'['+cam+']*$'#################################################this is hardcoded year code cycle + arcpy.AddMessage("pattern: "+str(pattern)) + #arcpy.AddMessage("FList: "+str(listFc)) #print List of features selected + plotsF = [ft for ft in listFc if re.search(pattern, ft)] + #Will throw error if list empty? + if plotsF: + if len(plotsF)>1: plotsF=plotsF[0] #get just the edited feature if the general exists + plotsF=os.path.join(arcpy.env.workspace, ds, ''.join(plotsF)) + arcpy.AddMessage("Zones: "+plotsF) + #RASTER + #search for the images that match them + # hyper mosaics folder is rfl_spr_ort, for multi is geo, for thermal is cel + mF, sx = mosaicFolder.get(cam,("geo","geo")) #corresponding folder and sfx, geo default ##Use this to search in dates folders + #imgLocation = imgWs+"\\"+str(dates[f])+"\\"+cam+"\\"+mF+"\\" ##Use this to search in dates folders + imgLocation = imgWs+"\\"+cam+"\\" #This to search in the base folder + cam + imgName =cam+str(dates[f])+str(trials[t])+sx+ext + img=imgLocation+imgName + arcpy.AddMessage("looking for raster for area: "+str(img)) #print to check + if not exists(img): #Use the general mosaic + imgName =cam+str(dates[f])+bw8+sx+ext + img=imgLocation+imgName + arcpy.AddMessage("looking for general mosaic: "+str(img)) #print to check + if exists(img): + arcpy.AddMessage("Raster: "+img) + #PREPARE FOR THE ZS + #Reading header to get Bands + #We assume header file is there and named as the raster + hdr_file = img[:-4]+".hdr" + #Read header to know number and name of bands or set them a priori + #knownBands is optional + bandNames = readHeaderFile(hdr_file, knownBands) + tableBaseName = arcpy.ValidateTableName(cam+str(dates[f])+str(trials[t])+buf,tws) #stats table base name in ws + #arcpy.AddMessage("zs") + #arcpy.AddMessage("tb:"+tableBaseName) + zsm = zonalStatsMultiband(tableBaseName, bandNames, img, plotsF,id_field) + appendListToFile(log,zsm,mode="a") + else: + arcpy.AddMessage("|||No raster to use |||") + appendListToFile(log,str(img),mode="a") + else: + arcpy.AddMessage("|||No features to use|||") + appendListToFile(log,str(plotsF),mode="a") + else: arcpy.AddMessage("No data extracting for this trial on this date") + appendListToFile(log,("Finished",time.strftime("%Y/%m/%d %H:%M:%S")),mode="a") #Write finish time in log +except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)+ " Error " + e.message) \ No newline at end of file diff --git a/ArcGIS/zonalStatsTablesAutoInputsCSV.py b/ArcGIS/zonalStatsTablesAutoInputsCSV.py new file mode 100644 index 0000000..7dec3f6 --- /dev/null +++ b/ArcGIS/zonalStatsTablesAutoInputsCSV.py @@ -0,0 +1,402 @@ +#Perform zonal statistics tool based on a list of on a specified list of dates and names. +#Automatically calls the appropriate raster and zonal data from the default locations. + +#################################WARNING +#crashes if the csv has just one row + +import numpy +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys +import time + +#Read the file to know which feature-raster to extract +def readWhatToExtract(csvWhatToExtract): + arcpy.AddMessage("will read file: "+csvWhatToExtract) + extractMatrix=numpy.genfromtxt(open(csvWhatToExtract,"rb"), + delimiter=',', + dtype=None, + names=True) + dates = list(extractMatrix['date']) #get the dates + arcpy.AddMessage("Dates: "+str(dates)) + trials=extractMatrix.dtype.names[1:] + arcpy.AddMessage("Trials: "+str(trials)) + extractMatrix = extractMatrix[list(extractMatrix.dtype.names)[1:]]#remove "date" column (1st) + arcpy.AddMessage("What to extract: "+str(extractMatrix)) + return extractMatrix,dates,trials + #Return the matrix of the kind of images acquired on each day on each trial [h m t], + #the list of dates and the list of trials (removing the "date" item) +def readDbf():# read dbf file + print("Algo haremos aquĂ­")# zsFields= ["id","COUNT","MEAN","STD"] + # table="C:\\Users\\usuario\\Documents\\ArcGIS\\m150326pcwbufB1.dbf" + # with arcpy.da.SearchCursor(table, zsFields) as cursor: + # for row in cursor: + # print(('Feature {0} has an area of {1}'.format(row[0], row[1])) +def zonalStatsMultiband(tableBaseName, bandNames, image, plot_polygons,id_field): + try: + tables=list() + #zonalStats iterated in all bands of the raster Multiband + #Return list of the name of the generated tables + arcpy.AddMessage("Iterating the zonal statistics across all bands...") + #Get bands + #Returns: [0]numberOfBands, [1]isBandNamesInteger? + numOfBands = getNumberOfBands(bandNames) + arcpy.AddMessage("Number of bands: "+str(numOfBands[0])) + #If the image has more than one band... + if numOfBands[0] != 1: + #If we only have the number of bands, but no band names (because there was no hdr)... + #We will call the bands by the default way ArcMap does: RasterName + Band_1, Band_2, etc... + #we create the list to iterate it + if numOfBands[1]: bandNames = list('Band_%s' % b for b in range(1, numOfBands[0]+1)) + #Here iterates through the bands and runs the zonal statistics tool + #Get the count with the function "enumerate" + for i, b in enumerate(bandNames, start=1): + #Next we add the band name to the raster basename + band = image + "\\" + b + arcpy.AddMessage("Iterating band # "+ str(i)+" - " + band) + #Set table name + statsTable = tableBaseName+"B" + str(i)+ ".dbf" #We add the band id to the StatsTable name + #arcpy.AddMessage("Willbe stored in table "+str(statsTable)) + #Here we call the method to do the zonal statistics + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, band, statsTable, "DATA", "ALL") + arcpy.AddMessage("resulting stats table: " + str(zs)) + tables.append(plot_polygons+","+band+","+str(zs)) + else: + #If we have just one band we call the raster without specifying any band + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, image, tableBaseName+"B1.dbf", "DATA", "ALL") + tables.append(plot_polygons+","+image+","+str(zs)) + arcpy.AddMessage("||| resulting zs table: " + str(zs)) + return tables + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) +def print_kwinfo(): + if deb==1: + print( "kwinfo se guarda:") + print( kwinfo) + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception as e: + # If an error occurred, print( line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path) else False + return exists + +def write_hdr_file(hdr_filename,assign_bands=1,mode="w"): + try: + hdr_file = open(hdr_filename, mode) + hdr_file.write("HEAD\nbands = "+ str(assign_bands)) + arcpy.AddMessage("writing in hdr file") + hdr_file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: write_hdr_file") + raise e +def appendListToFile(txt_filename,thelist,mode="w"): + try: + file = open(txt_filename, mode) + #arcpy.AddMessage("writing in "+txt_filename+" file") + for item in thelist: + file.write("%s\n" % item) + file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: appendListToFile") + raise e + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension +#Method to concatenate the band name to the raster basename +#BandNames has or all the list of band names or the number of bands +def getNumberOfBands(bandNames): + try: + #If there was no bandnames or header, a band number was assigned + #This would be an integer + numOfBands = int(bandNames) + isANumber = True + return numOfBands, isANumber + except ValueError: + #If there is a band name as a string we will say it's one band + numOfBands = 1 + isANumber = False + return numOfBands, isANumber + except TypeError: + #If there are band names as list or array we will count them here + numOfBands = len(bandNames) + isANumber = False + return numOfBands, isANumber + except Exception as e: + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print( "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print( in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window +def readHeaderFile(header_file,assign_bands=1): + try: + if not exists(header_file): + write_hdr_file(header_file,assign_bands) + arcpy.AddMessage("Header not found, it was created a basic one. Number of bands assigned: "+str(assign_bands)) + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] #Skip the first "ENVI" letters of the header + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("reading header lines...") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la lĂ­nea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print( str(i)+"-l- "+str(l)) + kwinfo+=l + if deb==1: print( str(i)+"-kwinfo- "+str(kwinfo)) + if ongoing==1: + if "}" in l: + if deb==1: print( "ongoing==se cierra por fin el parentesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print( "ongoing==1 else") + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print( keyw+" attribute found") + if "{" in l: + if "}" in l: + if deb==1: print( "ongoing==parentesis cerrando en linea") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print( "if bracket in l: --- else") + else: + if deb==1: print( "ongoing==sin paretesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print( "fin de ronda de for") + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print( regexpresion.findall(cl)) + for key in dictio: dictio[key]=dictio[key].strip() + print( "Header attributes:") + #arcpy.AddMessage("Header attributes read") + #print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + #arcpy.AddMessage(wl) + #arcpy.AddMessage("saved wl") + #Number of Bands + if "bands" in dictio: + hdr_bands=dictio["bands"] + #arcpy.AddMessage(hdr_bands) + #arcpy.AddMessage("saved Number of bands from header") + #Band names + if "band names" in dictio: + #arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + #arcpy.AddMessage("split completed") + bn=replace_in_list(expr_replace,bn) + #arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + #arcpy.AddMessage("Format composed band name") + full_bn=hdr_bands #We assign by default the number of bands in the raster + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + #arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + #arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + #arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + #arcpy.AddMessage("wl found") + full_bn= wl + #arcpy.AddMessage(full_bn) + if deb==1: + arcpy.AddMessage( full_bn) + arcpy.AddMessage( "Bands descripted in header: "+len(full_bn)) + #CHECK IF the "data ignore value is set", otherwise, set it to 0. + if not "data ignore value" in dictio: + arcpy.AddMessage("Set -data ignore value to 0-") + add=["data ignore value = 0"] + appendListToFile(header_file,add,mode="a") + #arcpy.AddMessage("Finished reading header") + #arcpy.AddMessage(type(full_bn)) #to know the type of variable it was created + return full_bn + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +#^^^^^^^^^^^^^^^^^^^^^^^ Methods ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +try: + # Check out any necessary licenses and Create the Geoprocessor object + arcpy.CheckOutExtension("spatial") + gp = arcgisscripting.create() + ######################################################################################### + ################################# START:INPUTS ########################################## + #Hard coded this + csvExtractThis = "C:\\Dropbox\\data\\AE\\bw\\ae_bw_extraction_hyper_heat.csv" + #imgWs="G:\\AD15_16\\" #imageBaseLocation + imgWs="G:\\AE\\" #test + #GDB whare the feature classes are stored and where the tables will be written: + gdb = "C:\\Dropbox\\data\\AE\\\\bw\\ae_bw.gdb\\" #BW + #gdb = "C:\\Users\\usuario\\Documents\\ArcGIS\\Default.gdb\\" #Default + #tws = where to save tables inside the workspace + tws ="C:\\Dropbox\\data\\AE\\bw\\predata\\tables"######Not worinkg... it save in shp folder####### + ds="h" #Use this ds="" fro m and t + #ds="h" #Use this for hyper + arcpy.env.workspace = gdb + #arcpy.AddMessage("wspace: "+str(arcpy.env.workspace)) + #knownBands="62" # ##################### hyper resampled + knownBands="62" # ####################### thermal + id_field = "Name" #Table field that has the unique plot identifier + log= "C:\\Dropbox\\data\\AE\\bw\\log.txt" + ## END:INPUTS ## + + ## START:VARIABLES ## + #Get all feature classes gdb/extract dataset + listFc = arcpy.ListFeatureClasses( + feature_type="Polygon", + feature_dataset=ds) + mosaicFolder = { + #Get the folder and suffix for the images according to the camera + "m": ("msk","mkd"), + "h": ("rfl_spr_ort","ort"), + #"t": ("cel","cel"), #This to extract from the full mosaic + "t": ("msk","mkd"), #This to extract from the masked mosaic + } + arcpy.env.workspace = gdb + ext=".bsq" #extension of the rasters + buf="buf" #we use the buffered plot features -buf- to extract the stats or the full plots -plt- + bw8="xxx" #default trial eg. bw8 if there is a raster that includes all the zonal features + + #################################### + ############################ END:VARIABLES ############################################## + ######################################################################################### + ex, dates,trials = readWhatToExtract(csvExtractThis) + #find the image paths and features to perform the zonal statistics + for f, flightdate in enumerate(ex): + for t,trial in enumerate(flightdate): #skip the date column + for cam in trial.split(): + if cam !="-": + #QuĂ© hacer si está vacĂ­o? + #ZONES FEATURE + #Search for the corresponding grids for this date/trial/cam + #if date is __ad__ the grid is the general for the cycle e.g. ypt__ad__buf + #if date is YYMMDD the grid was adjusted, and needs to have indicated also the camera + # this way we can know at which image the adjustment corresponds. + # grids adjusted will be like bw1160215bufh -> with the date and camera indicated + pattern = str(trials[t])+"("+str(dates[f])+'|__ad__)'+buf+'['+cam+']*$'##################################################include this ifthere are different grids by camera + arcpy.AddMessage("pattern: "+str(pattern)) + #arcpy.AddMessage("FList: "+str(listFc)) #print List of features selected + plotsF = [ft for ft in listFc if re.search(pattern, ft)] + #Will throw error if list empty? + if plotsF: + if len(plotsF)>1: plotsF=plotsF[0] #get just the edited feature if the general exists + plotsF=os.path.join(arcpy.env.workspace, ds, ''.join(plotsF)) + arcpy.AddMessage("Zones: "+plotsF) + #RASTER + #search for the images that match them + # hyper mosaics folder is rfl_spr_ort, for multi is geo, for thermal is cel + mF, sx = mosaicFolder.get(cam,("geo","geo")) #corresponding folder and sfx, geo default + imgLocation = imgWs+str(dates[f])+"\\"+cam+"\\"+mF+"\\" + imgName =cam+str(dates[f])+str(trials[t])+sx+ext + img=imgLocation+imgName + if not exists(img): #Use the general mosaic + imgName =cam+str(dates[f])+bw8+sx+ext + img=imgLocation+imgName + if exists(img): + arcpy.AddMessage("Raster: "+img) + #PREPARE FOR THE ZS + #Reading header to get Bands + #We assume header file is there and named as the raster + hdr_file = img[:-4]+".hdr" + #Read header to know number and name of bands or set them a priori + #knownBands is optional + bandNames = readHeaderFile(hdr_file, knownBands) + tableBaseName = arcpy.ValidateTableName(cam+str(dates[f])+str(trials[t])+buf,tws) #stats table base name in ws + #arcpy.AddMessage("zs") + #arcpy.AddMessage("tb:"+tableBaseName) + zsm = zonalStatsMultiband(tableBaseName, bandNames, img, plotsF,id_field) + appendListToFile(log,zsm,mode="a") + else: + arcpy.AddMessage("|||No raster to use |||") + appendListToFile(log,str(img),mode="a") + else: + arcpy.AddMessage("|||No features to use|||") + appendListToFile(log,str(plotsF),mode="a") + else: arcpy.AddMessage("No data extracting for this trial on this date") + appendListToFile(log,("Finished",time.strftime("%Y/%m/%d %H:%M:%S")),mode="a") #Write finish time in log +except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)+ " Error " + e.message) \ No newline at end of file diff --git a/ArcGIS/zonalStatsTablesAutoInputsCSV_AguaFria.py b/ArcGIS/zonalStatsTablesAutoInputsCSV_AguaFria.py new file mode 100644 index 0000000..de019ca --- /dev/null +++ b/ArcGIS/zonalStatsTablesAutoInputsCSV_AguaFria.py @@ -0,0 +1,410 @@ +#Perform zonal statistics tool based on a list of on a specified list of dates and names. +#Automatically calls the appropriate raster and zonal data from within the selected folder. + +#################################WARNING +#crashes if the csv has just one row + +import numpy +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys +import time + +#Read the file to know which feature-raster to extract +def readWhatToExtract(csvWhatToExtract): + try: + arcpy.AddMessage("will read file: "+csvWhatToExtract) + extractMatrix=numpy.genfromtxt(open(csvWhatToExtract,"rb"), + delimiter=',', + dtype=None, + names=True) + dates = list(extractMatrix['date']) #get the dates + arcpy.AddMessage("Dates: "+str(dates)) + trials=extractMatrix.dtype.names[1:] + arcpy.AddMessage("Trials: "+str(trials)) + extractMatrix = extractMatrix[list(extractMatrix.dtype.names)[1:]]#remove "date" column (1st) + arcpy.AddMessage("What to extract: "+str(extractMatrix)) + return extractMatrix,dates,trials + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + + #Return the matrix of the kind of images acquired on each day on each trial [h m t], + #the list of dates and the list of trials (removing the "date" item) +def readDbf():# read dbf file + print("Algo haremos aquĂ­")# zsFields= ["id","COUNT","MEAN","STD"] + # table="C:\\Users\\usuario\\Documents\\ArcGIS\\m150326pcwbufB1.dbf" + # with arcpy.da.SearchCursor(table, zsFields) as cursor: + # for row in cursor: + # print(('Feature {0} has an area of {1}'.format(row[0], row[1])) +def zonalStatsMultiband(tableBaseName, bandNames, image, plot_polygons,id_field): + try: + tables=list() + #zonalStats iterated in all bands of the raster Multiband + #Return list of the name of the generated tables + arcpy.AddMessage("Iterating the zonal statistics across all bands...") + #Get bands + #Returns: [0]numberOfBands, [1]isBandNamesInteger? + numOfBands = getNumberOfBands(bandNames) + arcpy.AddMessage("Number of bands: "+str(numOfBands[0])) + #If the image has more than one band... + if numOfBands[0] != 1: + #If we only have the number of bands, but no band names (because there was no hdr)... + #We will call the bands by the default way ArcMap does: RasterName + Band_1, Band_2, etc... + #we create the list to iterate it + if numOfBands[1]: bandNames = list('Band_%s' % b for b in range(1, numOfBands[0]+1)) + #Here iterates through the bands and runs the zonal statistics tool + #Get the count with the function "enumerate" + for i, b in enumerate(bandNames, start=1): + #Next we add the band name to the raster basename + band = image + "\\" + b + arcpy.AddMessage("Iterating band # "+ str(i)+" - " + band) + #Set table name + statsTable = tableBaseName+"B" + str(i)+ ".dbf" #We add the band id to the StatsTable name + #arcpy.AddMessage("Willbe stored in table "+str(statsTable)) + #Here we call the method to do the zonal statistics + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, band, statsTable, "DATA", "ALL") + arcpy.AddMessage("resulting stats table: " + str(zs)) + tables.append(plot_polygons+","+band+","+str(zs)) + else: + #If we have just one band we call the raster without specifying any band + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, image, tableBaseName+"B1.dbf", "DATA", "ALL") + tables.append(plot_polygons+","+image+","+str(zs)) + arcpy.AddMessage("resulting zs table: " + str(zs)) + return tables + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) +def print_kwinfo(): + if deb==1: + print( "kwinfo se guarda:") + print( kwinfo) + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception as e: + # If an error occurred, print( line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path) else False + return exists + +def write_hdr_file(hdr_filename,assign_bands=1,mode="w"): + try: + hdr_file = open(hdr_filename, mode) + hdr_file.write("HEAD\nbands = "+ str(assign_bands)) + arcpy.AddMessage("writing in hdr file") + hdr_file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: write_hdr_file") + raise e +def appendListToFile(txt_filename,thelist,mode="w"): + try: + file = open(txt_filename, mode) + #arcpy.AddMessage("writing in "+txt_filename+" file") + for item in thelist: + file.write("%s\n" % item) + file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: appendListToFile") + raise e + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension +#Method to concatenate the band name to the raster basename +#BandNames has or all the list of band names or the number of bands +def getNumberOfBands(bandNames): + try: + #If there was no bandnames or header, a band number was assigned + #This would be an integer + numOfBands = int(bandNames) + isANumber = True + return numOfBands, isANumber + except ValueError: + #If there is a band name as a string we will say it's one band + numOfBands = 1 + isANumber = False + return numOfBands, isANumber + except TypeError: + #If there are band names as list or array we will count them here + numOfBands = len(bandNames) + isANumber = False + return numOfBands, isANumber + except Exception as e: + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print( "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print( in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window +def readHeaderFile(header_file,assign_bands=1): + try: + if not exists(header_file): + write_hdr_file(header_file,assign_bands) + arcpy.AddMessage("Header not found, it was created a basic one. Number of bands assigned: "+str(assign_bands)) + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] #Skip the first "ENVI" letters of the header + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("reading header lines...") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la lĂ­nea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print( str(i)+"-l- "+str(l)) + kwinfo+=l + if deb==1: print( str(i)+"-kwinfo- "+str(kwinfo)) + if ongoing==1: + if "}" in l: + if deb==1: print( "ongoing==se cierra por fin el parentesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print( "ongoing==1 else") + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print( keyw+" attribute found") + if "{" in l: + if "}" in l: + if deb==1: print( "ongoing==parentesis cerrando en linea") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print( "if bracket in l: --- else") + else: + if deb==1: print( "ongoing==sin paretesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print( "fin de ronda de for") + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print( regexpresion.findall(cl)) + for key in dictio: dictio[key]=dictio[key].strip() + print( "Header attributes:") + #arcpy.AddMessage("Header attributes read") + #print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + #arcpy.AddMessage(wl) + #arcpy.AddMessage("saved wl") + #Number of Bands + if "bands" in dictio: + hdr_bands=dictio["bands"] + #arcpy.AddMessage(hdr_bands) + #arcpy.AddMessage("saved Number of bands from header") + #Band names + if "band names" in dictio: + #arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + #arcpy.AddMessage("split completed") + bn=replace_in_list(expr_replace,bn) + #arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + #arcpy.AddMessage("Format composed band name") + full_bn=hdr_bands #We assign by default the number of bands in the raster + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + #arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + #arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + #arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + #arcpy.AddMessage("wl found") + full_bn= wl + #arcpy.AddMessage(full_bn) + if deb==1: + arcpy.AddMessage( full_bn) + arcpy.AddMessage( "Bands descripted in header: "+len(full_bn)) + #CHECK IF the "data ignore value is set", otherwise, set it to 0. + if not "data ignore value" in dictio: + arcpy.AddMessage("Set -data ignore value to 0-") + add=["data ignore value = 0"] + appendListToFile(header_file,add,mode="a") + #arcpy.AddMessage("Finished reading header") + #arcpy.AddMessage(type(full_bn)) #to know the type of variable it was created + return full_bn + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +#^^^^^^^^^^^^^^^^^^^^^^^ Methods ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +try: + # Check out any necessary licenses and Create the Geoprocessor object + arcpy.CheckOutExtension("spatial") + gp = arcgisscripting.create() + ## START:INPUTS ## + ##Hard coded this + #csvExtractThis = "C:\\Dropbox\\data\\AD\\AD_BW\\pre_data\\bw_dates_areas_bw_EYT_bwh.csv" ########################## + csvExtractThis = "C:\\Dropbox\\data\\AD\\AD-AF\\data\\ad_aff_extract.csv" ########################## + #imgWs="G:\\AD15_16\\" #imageBaseLocation + imgWs="G:\\AD15_16\\AF\\Processed\\CompB_geo\\" #test ################################### + ##GDB whare the feature classes are stored and where the tables will be written: + #gdb = "C:\\Dropbox\\data\\AD\\AD_BW\\shp\\ad_bw.gdb\\" #BW + #gdb = "C:\\Users\\usuario\\Documents\\ArcGIS\\Default.gdb\\" #Default + gdb = "C:\\Dropbox\\data\\AD\\AD-AF\\shp\\ad_af.gdb\\" + ##tws = where to save tables inside the workspace + #tws ="C:\\Dropbox\\data\\AD\\AD_BW\\shp\\pre_data\\extract\\" For BW ######Not worinkg... it save in shp folder####### + tws ="C:\\Dropbox\\data\\AD\\AD-AF\\shp\\ad_af.gdb\\" #For AF ######Not worinkg... it save in shp folder####### + #ds="extract" #Use this fro m and t ############################### + #ds="h" #Use this for hyper + ds = "" #no ds + arcpy.env.workspace = gdb + #knownBands="62" + knownBands="4" # ####################### + #id_field = "id" ##################### + id_field = "plot_trial" ##################### + log= "C:\\Dropbox\\data\\AD\\AD-AF\\data\\ad_aff_log.txt" ############################ + ## END:INPUTS ## + + ## START:VARIABLES ## + #Get all feature classes gdb/extract dataset + listFc = arcpy.ListFeatureClasses( + feature_type="Polygon", + feature_dataset=ds) + mosaicFolder = { + #Get the folder name used and suffix for the images according to the camera + "m": ("geo","geo"), + "h": ("rfl_spr_ort","ort"), + "t": ("cel","cel"), + "a": ("cel","cel"), + "c": ("geo","geo"), + } + arcpy.env.workspace = gdb + ext=".bsq" #extension of the rasters + buf="bfs" #we use the buffered plot features to extract the stats ############# + bw8="_af" #default trial #################################### + ## END:VARIABLES ## + ex, dates,trials = readWhatToExtract(csvExtractThis) + #find the image paths and features to perform the zonal statistics + for f, flightdate in enumerate(ex): + for t,trial in enumerate(flightdate): #skip the date column + for cam in trial.split(): + if cam !="-": + #QuĂ© hacer si está vacĂ­o? + #ZONES FEATURE + #Search for the corresponding grids for this date/trial/cam + #if date is __ad__ the grid is the general for the cycle e.g. ypt__ad__buf + #if date is YYMMDD the grid was adjusted, and needs to have indicated also the camera + # this way we can know at which image the adjustment corresponds. + # grids adjusted will be like bw1160215bufh -> with the date and camera indicated + pattern = str(trials[t])+"("+str(dates[f])+'|__ad__)'+buf+'['+cam+']*$' + arcpy.AddMessage("pattern: "+str(pattern)) + #arcpy.AddMessage("FList: "+str(listFc)) + plotsF = [ft for ft in listFc if re.search(pattern, ft)] + if plotsF: + if len(plotsF)>1: plotsF=plotsF[0] #get just the edited feature if the general exists + plotsF=os.path.join(arcpy.env.workspace, ds, ''.join(plotsF)) + arcpy.AddMessage("Zones: "+plotsF) + #RASTER + #search for the images that match them + # hyper mosaics folder is rfl_spr_ort, for multi is geo, for thermal is cel + mF, sx = mosaicFolder.get(cam,("geo","geo")) #corresponding folder and sfx + imgLocation = imgWs ###################################### + imgName =cam+str(dates[f])+str(trials[t])+sx+ext + img=imgLocation+imgName + if not exists(img): #Use the general mosaic + imgName =cam+str(dates[f])+bw8+sx+ext + img=imgLocation+imgName + if exists(img): + arcpy.AddMessage("Raster: "+img) + #PREPARE FOR THE ZS + #Reading header to get Bands + #We assume header file is there and named as the raster + hdr_file = img[:-4]+".hdr" + #Read header to know number and name of bands or set them a priori + #knownBands is optional + bandNames = readHeaderFile(hdr_file, knownBands) + tableBaseName = arcpy.ValidateTableName(cam+str(dates[f])+str(trials[t])+buf,tws) #stats table base name in ws + #arcpy.AddMessage("zs") + #arcpy.AddMessage("tb:"+tableBaseName) + zsm = zonalStatsMultiband(tableBaseName, bandNames, img, plotsF,id_field) + appendListToFile(log,zsm,mode="a") + else: + arcpy.AddMessage("|||No raster to use |||") + appendListToFile(log,str(img),mode="a") + else: + arcpy.AddMessage("|||No features to use|||") + appendListToFile(log,str(plotsF),mode="a") + else: arcpy.AddMessage("No data extracting for this trial on this date") + appendListToFile(log,("Finished",time.strftime("%Y/%m/%d %H:%M:%S")),mode="a") #Write finish time in log +except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)+ " Error " + e.message) \ No newline at end of file diff --git a/ArcGIS/zonalStatsTablesAutoInputsCSV_GS.py b/ArcGIS/zonalStatsTablesAutoInputsCSV_GS.py new file mode 100644 index 0000000..996325b --- /dev/null +++ b/ArcGIS/zonalStatsTablesAutoInputsCSV_GS.py @@ -0,0 +1,413 @@ +#Perform zonal statistics tool based on a list of on a specified list of dates and names. +#Automatically calls the appropriate raster and zonal data from within the selected folder. + +#Tuned for extracting data to match with the GreenSeeker +#################################WARNING +#crashes if the csv has just one row + +import numpy +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys +import time + +#Read the file to know which feature-raster to extract +def readWhatToExtract(csvWhatToExtract): + try: + arcpy.AddMessage("will read file: "+csvWhatToExtract) + extractMatrix=numpy.genfromtxt(open(csvWhatToExtract,"rb"), + delimiter=',', + dtype=None, + names=True) + dates = list(extractMatrix['date']) #get the dates + arcpy.AddMessage("Dates: "+str(dates)) + trials=extractMatrix.dtype.names[1:] + arcpy.AddMessage("Trials: "+str(trials)) + extractMatrix = extractMatrix[list(extractMatrix.dtype.names)[1:]]#remove "date" column (1st) + arcpy.AddMessage("What to extract: "+str(extractMatrix)) + return extractMatrix,dates,trials + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + + #Return the matrix of the kind of images acquired on each day on each trial [h m t], + #the list of dates and the list of trials (removing the "date" item) +def readDbf():# read dbf file + print("Algo haremos aquĂ­")# zsFields= ["id","COUNT","MEAN","STD"] + # table="C:\\Users\\usuario\\Documents\\ArcGIS\\m150326pcwbufB1.dbf" + # with arcpy.da.SearchCursor(table, zsFields) as cursor: + # for row in cursor: + # print(('Feature {0} has an area of {1}'.format(row[0], row[1])) +def zonalStatsMultiband(tableBaseName, bandNames, image, plot_polygons,id_field): + try: + tables=list() + #zonalStats iterated in all bands of the raster Multiband + #Return list of the name of the generated tables + arcpy.AddMessage("Iterating the zonal statistics across all bands...") + #Get bands + #Returns: [0]numberOfBands, [1]isBandNamesInteger? + numOfBands = getNumberOfBands(bandNames) + arcpy.AddMessage("Number of bands: "+str(numOfBands[0])) + #If the image has more than one band... + if numOfBands[0] != 1: + #If we only have the number of bands, but no band names (because there was no hdr)... + #We will call the bands by the default way ArcMap does: RasterName + Band_1, Band_2, etc... + #we create the list to iterate it + if numOfBands[1]: bandNames = list('Band_%s' % b for b in range(1, numOfBands[0]+1)) + #Here iterates through the bands and runs the zonal statistics tool + #Get the count with the function "enumerate" + for i, b in enumerate(bandNames, start=1): + #Next we add the band name to the raster basename + band = image + "\\" + b + arcpy.AddMessage("Iterating band # "+ str(i)+" - " + band) + #Set table name + statsTable = tableBaseName+"B" + str(i)+ ".dbf" #We add the band id to the StatsTable name + #arcpy.AddMessage("Willbe stored in table "+str(statsTable)) + #Here we call the method to do the zonal statistics + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, band, statsTable, "DATA", "ALL") + arcpy.AddMessage("resulting stats table: " + str(zs)) + tables.append(plot_polygons+","+band+","+str(zs)) + else: + #If we have just one band we call the raster without specifying any band + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, image, tableBaseName+"B1.dbf", "DATA", "ALL") + tables.append(plot_polygons+","+image+","+str(zs)) + arcpy.AddMessage("||| resulting zs table: " + str(zs)) + return tables + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) +def print_kwinfo(): + if deb==1: + print( "kwinfo se guarda:") + print( kwinfo) + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception as e: + # If an error occurred, print( line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path) else False + return exists + +def write_hdr_file(hdr_filename,assign_bands=1,mode="w"): + try: + hdr_file = open(hdr_filename, mode) + hdr_file.write("HEAD\nbands = "+ str(assign_bands)) + arcpy.AddMessage("writing in hdr file") + hdr_file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: write_hdr_file") + raise e +def appendListToFile(txt_filename,thelist,mode="w"): + try: + file = open(txt_filename, mode) + #arcpy.AddMessage("writing in "+txt_filename+" file") + for item in thelist: + file.write("%s" % item) #################### + file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: appendListToFile") + raise e + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension +#Method to concatenate the band name to the raster basename +#BandNames has or all the list of band names or the number of bands +def getNumberOfBands(bandNames): + try: + #If there was no bandnames or header, a band number was assigned + #This would be an integer + numOfBands = int(bandNames) + isANumber = True + return numOfBands, isANumber + except ValueError: + #If there is a band name as a string we will say it's one band + numOfBands = 1 + isANumber = False + return numOfBands, isANumber + except TypeError: + #If there are band names as list or array we will count them here + numOfBands = len(bandNames) + isANumber = False + return numOfBands, isANumber + except Exception as e: + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print( "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print( in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window +def readHeaderFile(header_file,assign_bands=1): + try: + if not exists(header_file): + write_hdr_file(header_file,assign_bands) + arcpy.AddMessage("Header not found, it was created a basic one. Number of bands assigned: "+str(assign_bands)) + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] #Skip the first "ENVI" letters of the header + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("reading header lines...") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la lĂ­nea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print( str(i)+"-l- "+str(l)) + kwinfo+=l + if deb==1: print( str(i)+"-kwinfo- "+str(kwinfo)) + if ongoing==1: + if "}" in l: + if deb==1: print( "ongoing==se cierra por fin el parentesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print( "ongoing==1 else") + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print( keyw+" attribute found") + if "{" in l: + if "}" in l: + if deb==1: print( "ongoing==parentesis cerrando en linea") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print( "if bracket in l: --- else") + else: + if deb==1: print( "ongoing==sin paretesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print( "fin de ronda de for") + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print( regexpresion.findall(cl)) + for key in dictio: dictio[key]=dictio[key].strip() + print( "Header attributes:") + arcpy.AddMessage("Header attributes read:") + print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + #arcpy.AddMessage(wl) + #arcpy.AddMessage("saved wl") + #Number of Bands + if "bands" in dictio: + hdr_bands=dictio["bands"] + #arcpy.AddMessage(hdr_bands) + #arcpy.AddMessage("saved Number of bands from header") + #Band names + if "band names" in dictio: + #arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + #arcpy.AddMessage("split completed") + bn=replace_in_list(expr_replace,bn) + #arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + #arcpy.AddMessage("Format composed band name") + full_bn=hdr_bands #We assign by default the number of bands in the raster + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + arcpy.AddMessage("wl found") + full_bn= wl + arcpy.AddMessage("Data got from the Hdr"+str(full_bn)) + + if deb==1: + arcpy.AddMessage( full_bn) + arcpy.AddMessage( "Bands descripted in header: "+len(full_bn)) + #CHECK IF the "data ignore value is set", otherwise, set it to 0. + if not "data ignore value" in dictio: + arcpy.AddMessage("Set -data ignore value to 0-") + add=["data ignore value = 0"] + appendListToFile(header_file,add,mode="a") + #arcpy.AddMessage("Finished reading header") + #arcpy.AddMessage(type(full_bn)) #to know the type of variable it was created + return full_bn + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +#^^^^^^^^^^^^^^^^^^^^^^^ Methods ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +try: + # Check out any necessary licenses and Create the Geoprocessor object + arcpy.CheckOutExtension("spatial") + gp = arcgisscripting.create() + ## START:INPUTS ## + ##Hard coded this + #csvExtractThis = "C:\\Dropbox\\data\\AD\\AD_BW\\pre_data\\bw_dates_areas_bw_EYT_bwh.csv" ########################## + csvExtractThis = "C:\\Dropbox\\data\\AD\\AD_seed\\pre-data\\ad_extract_m_sed.csv" ########################## + #imgWs="G:\\AD15_16\\" #imageBaseLocation + imgWs="G:\\AD15_16\\" #test ################################### + ##GDB whare the feature classes are stored and where the tables will be written: + #gdb = "C:\\Dropbox\\data\\AD\\AD_BW\\shp\\ad_bw.gdb\\" #BW + #gdb = "C:\\Users\\usuario\\Documents\\ArcGIS\\Default.gdb\\" #Default + gdb = "C:\\Dropbox\\data\\AD\\AD_seed\\shp\\ad_sed.gdb\\" + ##tws = where to save tables inside the workspace + #tws ="C:\\Dropbox\\data\\AD\\AD_BW\\shp\\pre_data\\extract\\" For BW ######Not worinkg... it save in shp folder####### + tws ="C:\\Dropbox\\data\\AD\\AD_seed\\shp\\ad_sed.gdb\\" #For AF ######Not worinkg... it save in shp folder####### + #ds="extract" #Use this fro m and t ############################### + #ds="h" #Use this for hyper + ds = "" #no ds + arcpy.env.workspace = gdb + #knownBands="62" + knownBands="6" # ####################### + #id_field = "id" ##################### + id_field = "id" ##################### + log= "C:\\Dropbox\\data\\AD\\AD_seed\\pre-data\\ad_sed_extract_log.txt" ############################ + ## END:INPUTS ## + + ## START:VARIABLES ## + #Get all feature classes gdb/extract dataset + listFc = arcpy.ListFeatureClasses( + feature_type="Polygon", + feature_dataset=ds) + mosaicFolder = { + #Get the folder name used and suffix for the images according to the camera + #camera: folder, suffix + "m": ("msk","mkd"), + "h": ("rfl_spr_ort","ort"), + "t": ("cel","cel"), + "a": ("cel","cel"), + "c": ("ndvi_geo","nvi"), #specific dor this time + } + arcpy.env.workspace = gdb + ext=".bsq" #extension of the rasters + buf="plt" #we use the buffered plot features to extract the stats ############# + bw8="sed" #default trial #################################### + ## END:VARIABLES ## + ex, dates,trials = readWhatToExtract(csvExtractThis) + #find the image paths and features to perform the zonal statistics + for f, flightdate in enumerate(ex): + for t,trial in enumerate(flightdate): #skip the date column + for cam in trial.split(): + if cam !="-": + #QuĂ© hacer si está vacĂ­o? + #ZONES FEATURE + #Search for the corresponding grids for this date/trial/cam + #if date is __ad__ the grid is the general for the cycle e.g. ypt__ad__buf + #if date is YYMMDD the grid was adjusted, and needs to have indicated also the camera + # this way we can know at which image the adjustment corresponds. + # grids adjusted will be like bw1160215bufh -> with the date and camera indicated + pattern = str(trials[t])+"("+str(dates[f])+'|__ad__)'+buf+'['+cam+']*$' + arcpy.AddMessage("pattern: "+str(pattern)) + #arcpy.AddMessage("FList: "+str(listFc)) + plotsF = [ft for ft in listFc if re.search(pattern, ft)] + if plotsF: + if len(plotsF)>1: plotsF=plotsF[0] #get just the edited feature if the general exists + plotsF=os.path.join(arcpy.env.workspace, ds, ''.join(plotsF)) + arcpy.AddMessage("Zones: "+plotsF) + #RASTER + #search for the images that match them + # hyper mosaics folder is rfl_spr_ort, for multi is geo, for thermal is cel + mF, sx = mosaicFolder.get(cam,("geo","geo")) #corresponding folder and sfx + imgLocation = imgLocation = imgWs+str(dates[f])+"\\"+cam+"\\"+mF+"\\" + imgName =cam+str(dates[f])+str(trials[t])+sx+ext + img=imgLocation+imgName + if not exists(img): #Use the general mosaic + imgName =cam+str(dates[f])+bw8+sx+ext + img=imgLocation+imgName + arcpy.AddMessage("Raster to use: "+img) + if exists(img): + #PREPARE FOR THE ZS + #Reading header to get Bands + #We assume header file is there and named as the raster + hdr_file = img[:-4]+".hdr" + #Read header to know number and name of bands or set them a priori + #knownBands is optional + bandNames = readHeaderFile(hdr_file, knownBands) + tableBaseName = arcpy.ValidateTableName(cam+str(dates[f])+str(trials[t])+buf,tws) #stats table base name in ws + #arcpy.AddMessage("zs") + #arcpy.AddMessage("tb:"+tableBaseName) + zsm = zonalStatsMultiband(tableBaseName, bandNames, img, plotsF,id_field) + appendListToFile(log,zsm,mode="a") + else: + arcpy.AddMessage("|||No raster to use |||") + appendListToFile(log,str(img),mode="a") + else: + arcpy.AddMessage("|||No features to use|||") + appendListToFile(log,str(plotsF),mode="a") + else: arcpy.AddMessage("No data extracting for this trial on this date") + appendListToFile(log,("Finished",time.strftime("%Y/%m/%d %H:%M:%S")),mode="a") #Write finish time in log +except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)+ " Error " + e.message) \ No newline at end of file diff --git a/ArcGIS/zonalStatsTablesAutoInputsCSV_sam_ad.py b/ArcGIS/zonalStatsTablesAutoInputsCSV_sam_ad.py new file mode 100644 index 0000000..c9c409c --- /dev/null +++ b/ArcGIS/zonalStatsTablesAutoInputsCSV_sam_ad.py @@ -0,0 +1,413 @@ +#Perform zonal statistics tool based on a list of on a specified list of dates and names. +#Automatically calls the appropriate raster and zonal data from within the selected folder. + +#Tuned for extracting data to match with the GreenSeeker +#################################WARNING +#crashes if the csv has just one row + +import numpy +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys +import time + +#Read the file to know which feature-raster to extract +def readWhatToExtract(csvWhatToExtract): + try: + arcpy.AddMessage("will read file: "+csvWhatToExtract) + extractMatrix=numpy.genfromtxt(open(csvWhatToExtract,"rb"), + delimiter=',', + dtype=None, + names=True) + dates = list(extractMatrix['date']) #get the dates + arcpy.AddMessage("Dates: "+str(dates)) + trials=extractMatrix.dtype.names[1:] + arcpy.AddMessage("Trials: "+str(trials)) + extractMatrix = extractMatrix[list(extractMatrix.dtype.names)[1:]]#remove "date" column (1st) + arcpy.AddMessage("What to extract: "+str(extractMatrix)) + return extractMatrix,dates,trials + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + + #Return the matrix of the kind of images acquired on each day on each trial [h m t], + #the list of dates and the list of trials (removing the "date" item) +def readDbf():# read dbf file + print("Algo haremos aquĂ­")# zsFields= ["id","COUNT","MEAN","STD"] + # table="C:\\Users\\usuario\\Documents\\ArcGIS\\m150326pcwbufB1.dbf" + # with arcpy.da.SearchCursor(table, zsFields) as cursor: + # for row in cursor: + # print(('Feature {0} has an area of {1}'.format(row[0], row[1])) +def zonalStatsMultiband(tableBaseName, bandNames, image, plot_polygons,id_field): + try: + tables=list() + #zonalStats iterated in all bands of the raster Multiband + #Return list of the name of the generated tables + arcpy.AddMessage("Iterating the zonal statistics across all bands...") + #Get bands + #Returns: [0]numberOfBands, [1]isBandNamesInteger? + numOfBands = getNumberOfBands(bandNames) + arcpy.AddMessage("Number of bands: "+str(numOfBands[0])) + #If the image has more than one band... + if numOfBands[0] != 1: + #If we only have the number of bands, but no band names (because there was no hdr)... + #We will call the bands by the default way ArcMap does: RasterName + Band_1, Band_2, etc... + #we create the list to iterate it + if numOfBands[1]: bandNames = list('Band_%s' % b for b in range(1, numOfBands[0]+1)) + #Here iterates through the bands and runs the zonal statistics tool + #Get the count with the function "enumerate" + for i, b in enumerate(bandNames, start=1): + #Next we add the band name to the raster basename + band = image + "\\" + b + arcpy.AddMessage("Iterating band # "+ str(i)+" - " + band) + #Set table name + statsTable = tableBaseName+"B" + str(i)+ ".dbf" #We add the band id to the StatsTable name + #arcpy.AddMessage("Willbe stored in table "+str(statsTable)) + #Here we call the method to do the zonal statistics + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, band, statsTable, "DATA", "ALL") + arcpy.AddMessage("resulting stats table: " + str(zs)) + tables.append(plot_polygons+","+band+","+str(zs)) + else: + #If we have just one band we call the raster without specifying any band + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, image, tableBaseName+"B1.dbf", "DATA", "ALL") + tables.append(plot_polygons+","+image+","+str(zs)) + arcpy.AddMessage("||| resulting zs table: " + str(zs)) + return tables + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) +def print_kwinfo(): + if deb==1: + print( "kwinfo se guarda:") + print( kwinfo) + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception as e: + # If an error occurred, print( line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path) else False + return exists + +def write_hdr_file(hdr_filename,assign_bands=1,mode="w"): + try: + hdr_file = open(hdr_filename, mode) + hdr_file.write("HEAD\nbands = "+ str(assign_bands)) + arcpy.AddMessage("writing in hdr file") + hdr_file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: write_hdr_file") + raise e +def appendListToFile(txt_filename,thelist,mode="w"): + try: + file = open(txt_filename, mode) + #arcpy.AddMessage("writing in "+txt_filename+" file") + for item in thelist: + file.write("%s" % item) #################### + file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: appendListToFile") + raise e + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension +#Method to concatenate the band name to the raster basename +#BandNames has or all the list of band names or the number of bands +def getNumberOfBands(bandNames): + try: + #If there was no bandnames or header, a band number was assigned + #This would be an integer + numOfBands = int(bandNames) + isANumber = True + return numOfBands, isANumber + except ValueError: + #If there is a band name as a string we will say it's one band + numOfBands = 1 + isANumber = False + return numOfBands, isANumber + except TypeError: + #If there are band names as list or array we will count them here + numOfBands = len(bandNames) + isANumber = False + return numOfBands, isANumber + except Exception as e: + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print( "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print( in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window +def readHeaderFile(header_file,assign_bands=1): + try: + if not exists(header_file): + write_hdr_file(header_file,assign_bands) + arcpy.AddMessage("Header not found, it was created a basic one. Number of bands assigned: "+str(assign_bands)) + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] #Skip the first "ENVI" letters of the header + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("reading header lines...") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la lĂ­nea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print( str(i)+"-l- "+str(l)) + kwinfo+=l + if deb==1: print( str(i)+"-kwinfo- "+str(kwinfo)) + if ongoing==1: + if "}" in l: + if deb==1: print( "ongoing==se cierra por fin el parentesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print( "ongoing==1 else") + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print( keyw+" attribute found") + if "{" in l: + if "}" in l: + if deb==1: print( "ongoing==parentesis cerrando en linea") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print( "if bracket in l: --- else") + else: + if deb==1: print( "ongoing==sin paretesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print( "fin de ronda de for") + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print( regexpresion.findall(cl)) + for key in dictio: dictio[key]=dictio[key].strip() + print( "Header attributes:") + arcpy.AddMessage("Header attributes read:") + print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + #arcpy.AddMessage(wl) + #arcpy.AddMessage("saved wl") + #Number of Bands + if "bands" in dictio: + hdr_bands=dictio["bands"] + #arcpy.AddMessage(hdr_bands) + #arcpy.AddMessage("saved Number of bands from header") + #Band names + if "band names" in dictio: + #arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + #arcpy.AddMessage("split completed") + bn=replace_in_list(expr_replace,bn) + #arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + #arcpy.AddMessage("Format composed band name") + full_bn=hdr_bands #We assign by default the number of bands in the raster + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + arcpy.AddMessage("wl found") + full_bn= wl + arcpy.AddMessage("Data got from the Hdr"+str(full_bn)) + + if deb==1: + arcpy.AddMessage( full_bn) + arcpy.AddMessage( "Bands descripted in header: "+len(full_bn)) + #CHECK IF the "data ignore value is set", otherwise, set it to 0. + if not "data ignore value" in dictio: + arcpy.AddMessage("Set -data ignore value to 0-") + add=["data ignore value = 0"] + appendListToFile(header_file,add,mode="a") + #arcpy.AddMessage("Finished reading header") + #arcpy.AddMessage(type(full_bn)) #to know the type of variable it was created + return full_bn + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +#^^^^^^^^^^^^^^^^^^^^^^^ Methods ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +try: + # Check out any necessary licenses and Create the Geoprocessor object + arcpy.CheckOutExtension("spatial") + gp = arcgisscripting.create() + ## START:INPUTS ## + ##Hard coded this + csvExtractThis = "C:\\Dropbox\\data\\AD\\ad_sam\\extract_sam_ad_h.csv" ########################## + imgWs="G:\\AD15_16\\" #imageBaseLocation + ##GDB whare the feature classes are stored and where the tables will be written: + #gdb = "C:\\Users\\usuario\\Documents\\ArcGIS\\Default.gdb\\" #Default + gdb = "C:\\Dropbox\\data\\AD\\ad_sam\\shp\\adsam.gdb\\" + ##tws = where to save tables inside the workspace + tws ="C:\\Users\\usuario\\Documents\\ArcGIS\\Default.gdb\\" + #ds="extract" #Use this fro m and t ################ dataset inside GDB ############### + #ds="h" #Use this for hyper + ds = "" #no ds + arcpy.env.workspace = gdb + bandsPerImage = { + #Get the KNOWN NUMBER OF BANDS for the images according to the camera + #camera: NUMBER OF BANDS + "t": ("1"), + "h": ("62"), + "m": ("6"), + } + id_field = "id" ##################### + log= "C:\\Dropbox\\data\\AD\\AD-STARS\\extract_sam_ad_log.txt" ############################ + ## END:INPUTS ## + + ## START:VARIABLES ## + #Get all feature classes gdb/extract dataset + listFc = arcpy.ListFeatureClasses( + feature_type="Polygon", + feature_dataset=ds) + mosaicFolder = { + #Get the folder name used and suffix for the images according to the camera + #camera: folder, suffix + "m": ("geo","geo"), + "t": ("cel","cel"), + "h": ("rfl_spr_ort","ort"), + } + arcpy.env.workspace = gdb + ext=".bsq" #extension of the rasters BSQ | TIF + buf="buf" #we use the buffered plot features to extract the stats ############# + bw8="sam" #default trial #################################### + ## END:VARIABLES ## + ex, dates,trials = readWhatToExtract(csvExtractThis) + #find the image paths and features to perform the zonal statistics + for f, flightdate in enumerate(ex): + for t,trial in enumerate(flightdate): #skip the date column + for cam in trial.split(): + if cam !="-": + #QuĂ© hacer si está vacĂ­o? + #ASSIGN Known number of bands + knownBands = bandsPerImage.get(cam,("1")) + #ZONES FEATURE + #Search for the corresponding grids for this date/trial/cam + #if date is __ad__ the grid is the general for the cycle e.g. ypt__ad__buf + #if date is YYMMDD the grid was adjusted, and needs to have indicated also the camera + # this way we can know at which image the adjustment corresponds. + # grids adjusted will be like bw1160215bufh -> with the date and camera indicated + pattern = str(trials[t])+"("+str(dates[f])+'|__ad__)'+buf+'['+cam+']*$' + arcpy.AddMessage("pattern: "+str(pattern)) + #arcpy.AddMessage("FList: "+str(listFc)) + plotsF = [ft for ft in listFc if re.search(pattern, ft)] + if plotsF: + if len(plotsF)>1: plotsF=plotsF[0] #get just the edited feature if the general exists + plotsF=os.path.join(arcpy.env.workspace, ds, ''.join(plotsF)) + arcpy.AddMessage("Zones: "+plotsF) + #RASTER + #search for the images that match them + # hyper mosaics folder is rfl_spr_ort, for multi is geo, for thermal is cel + mF, sx = mosaicFolder.get(cam,("geo","geo")) #corresponding folder and sfx + imgLocation = imgLocation = imgWs+str(dates[f])+"\\"+cam+"\\"+mF+"\\" + imgName =cam+str(dates[f])+str(trials[t])+sx+ext + img=imgLocation+imgName + if not exists(img): #Use the general mosaic + imgName =cam+str(dates[f])+bw8+sx+ext + img=imgLocation+imgName + arcpy.AddMessage("Raster to use: "+img) + if exists(img): + #PREPARE FOR THE ZS + #Reading header to get Bands + #We assume header file is there and named as the raster + hdr_file = img[:-4]+".hdr" + #Read header to know number and name of bands or set them a priori + #knownBands is optional + bandNames = readHeaderFile(hdr_file, knownBands) + tableBaseName = arcpy.ValidateTableName(cam+str(dates[f])+str(trials[t])+buf,tws) #stats table base name in ws + #arcpy.AddMessage("zs") + #arcpy.AddMessage("tb:"+tableBaseName) + zsm = zonalStatsMultiband(tableBaseName, bandNames, img, plotsF,id_field) + appendListToFile(log,zsm,mode="a") + else: + arcpy.AddMessage("|||No raster to use |||") + appendListToFile(log,(str(img),"\n"),mode="a") + else: + arcpy.AddMessage("|||No features to use|||") + appendListToFile(log,(str(plotsF),"\n"),mode="a") + else: arcpy.AddMessage("No data extracting for this trial on this date") + appendListToFile(log,("Finished",time.strftime("%Y/%m/%d %H:%M:%S"),"\n"),mode="a") #Write finish time in log +except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)+ " Error " + e.message) \ No newline at end of file diff --git a/ArcGIS/zonalStatsTablesAutoInputsCSV_stars_ad.py b/ArcGIS/zonalStatsTablesAutoInputsCSV_stars_ad.py new file mode 100644 index 0000000..6d2fb44 --- /dev/null +++ b/ArcGIS/zonalStatsTablesAutoInputsCSV_stars_ad.py @@ -0,0 +1,412 @@ +#Perform zonal statistics tool based on a list of on a specified list of dates and names. +#Automatically calls the appropriate raster and zonal data from within the selected folder. + +#Tuned for extracting data to match with the GreenSeeker +#################################WARNING +#crashes if the csv has just one row + +import numpy +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys +import time + +#Read the file to know which feature-raster to extract +def readWhatToExtract(csvWhatToExtract): + try: + arcpy.AddMessage("will read file: "+csvWhatToExtract) + extractMatrix=numpy.genfromtxt(open(csvWhatToExtract,"rb"), + delimiter=',', + dtype=None, + names=True) + dates = list(extractMatrix['date']) #get the dates + arcpy.AddMessage("Dates: "+str(dates)) + trials=extractMatrix.dtype.names[1:] + arcpy.AddMessage("Trials: "+str(trials)) + extractMatrix = extractMatrix[list(extractMatrix.dtype.names)[1:]]#remove "date" column (1st) + arcpy.AddMessage("What to extract: "+str(extractMatrix)) + return extractMatrix,dates,trials + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + + #Return the matrix of the kind of images acquired on each day on each trial [h m t], + #the list of dates and the list of trials (removing the "date" item) +def readDbf():# read dbf file + print("Algo haremos aquĂ­")# zsFields= ["id","COUNT","MEAN","STD"] + # table="C:\\Users\\usuario\\Documents\\ArcGIS\\m150326pcwbufB1.dbf" + # with arcpy.da.SearchCursor(table, zsFields) as cursor: + # for row in cursor: + # print(('Feature {0} has an area of {1}'.format(row[0], row[1])) +def zonalStatsMultiband(tableBaseName, bandNames, image, plot_polygons,id_field): + try: + tables=list() + #zonalStats iterated in all bands of the raster Multiband + #Return list of the name of the generated tables + arcpy.AddMessage("Iterating the zonal statistics across all bands...") + #Get bands + #Returns: [0]numberOfBands, [1]isBandNamesInteger? + numOfBands = getNumberOfBands(bandNames) + arcpy.AddMessage("Number of bands: "+str(numOfBands[0])) + #If the image has more than one band... + if numOfBands[0] != 1: + #If we only have the number of bands, but no band names (because there was no hdr)... + #We will call the bands by the default way ArcMap does: RasterName + Band_1, Band_2, etc... + #we create the list to iterate it + if numOfBands[1]: bandNames = list('Band_%s' % b for b in range(1, numOfBands[0]+1)) + #Here iterates through the bands and runs the zonal statistics tool + #Get the count with the function "enumerate" + for i, b in enumerate(bandNames, start=1): + #Next we add the band name to the raster basename + band = image + "\\" + b + arcpy.AddMessage("Iterating band # "+ str(i)+" - " + band) + #Set table name + statsTable = tableBaseName+"B" + str(i)+ ".dbf" #We add the band id to the StatsTable name + #arcpy.AddMessage("Willbe stored in table "+str(statsTable)) + #Here we call the method to do the zonal statistics + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, band, statsTable, "DATA", "ALL") + arcpy.AddMessage("resulting stats table: " + str(zs)) + tables.append(plot_polygons+","+band+","+str(zs)) + else: + #If we have just one band we call the raster without specifying any band + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, image, tableBaseName+"B1.dbf", "DATA", "ALL") + tables.append(plot_polygons+","+image+","+str(zs)) + arcpy.AddMessage("||| resulting zs table: " + str(zs)) + return tables + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) +def print_kwinfo(): + if deb==1: + print( "kwinfo se guarda:") + print( kwinfo) + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception as e: + # If an error occurred, print( line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path) else False + return exists + +def write_hdr_file(hdr_filename,assign_bands=1,mode="w"): + try: + hdr_file = open(hdr_filename, mode) + hdr_file.write("HEAD\nbands = "+ str(assign_bands)) + arcpy.AddMessage("writing in hdr file") + hdr_file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: write_hdr_file") + raise e +def appendListToFile(txt_filename,thelist,mode="w"): + try: + file = open(txt_filename, mode) + #arcpy.AddMessage("writing in "+txt_filename+" file") + for item in thelist: + file.write("%s" % item) #################### + file.close() + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG! Error while in: appendListToFile") + raise e + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension +#Method to concatenate the band name to the raster basename +#BandNames has or all the list of band names or the number of bands +def getNumberOfBands(bandNames): + try: + #If there was no bandnames or header, a band number was assigned + #This would be an integer + numOfBands = int(bandNames) + isANumber = True + return numOfBands, isANumber + except ValueError: + #If there is a band name as a string we will say it's one band + numOfBands = 1 + isANumber = False + return numOfBands, isANumber + except TypeError: + #If there are band names as list or array we will count them here + numOfBands = len(bandNames) + isANumber = False + return numOfBands, isANumber + except Exception as e: + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print( "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print( in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window +def readHeaderFile(header_file,assign_bands=1): + try: + if not exists(header_file): + write_hdr_file(header_file,assign_bands) + arcpy.AddMessage("Header not found, it was created a basic one. Number of bands assigned: "+str(assign_bands)) + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] #Skip the first "ENVI" letters of the header + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("reading header lines...") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la lĂ­nea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print( str(i)+"-l- "+str(l)) + kwinfo+=l + if deb==1: print( str(i)+"-kwinfo- "+str(kwinfo)) + if ongoing==1: + if "}" in l: + if deb==1: print( "ongoing==se cierra por fin el parentesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print( "ongoing==1 else") + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print( keyw+" attribute found") + if "{" in l: + if "}" in l: + if deb==1: print( "ongoing==parentesis cerrando en linea") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print( "if bracket in l: --- else") + else: + if deb==1: print( "ongoing==sin paretesis") + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print( "fin de ronda de for") + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print( regexpresion.findall(cl)) + for key in dictio: dictio[key]=dictio[key].strip() + print( "Header attributes:") + arcpy.AddMessage("Header attributes read:") + print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + #arcpy.AddMessage(wl) + #arcpy.AddMessage("saved wl") + #Number of Bands + if "bands" in dictio: + hdr_bands=dictio["bands"] + #arcpy.AddMessage(hdr_bands) + #arcpy.AddMessage("saved Number of bands from header") + #Band names + if "band names" in dictio: + #arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + #arcpy.AddMessage("split completed") + bn=replace_in_list(expr_replace,bn) + #arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + #arcpy.AddMessage("Format composed band name") + full_bn=hdr_bands #We assign by default the number of bands in the raster + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + arcpy.AddMessage("wl found") + full_bn= wl + arcpy.AddMessage("Data got from the Hdr"+str(full_bn)) + + if deb==1: + arcpy.AddMessage( full_bn) + arcpy.AddMessage( "Bands descripted in header: "+len(full_bn)) + #CHECK IF the "data ignore value is set", otherwise, set it to 0. + if not "data ignore value" in dictio: + arcpy.AddMessage("Set -data ignore value to 0-") + add=["data ignore value = 0"] + appendListToFile(header_file,add,mode="a") + #arcpy.AddMessage("Finished reading header") + #arcpy.AddMessage(type(full_bn)) #to know the type of variable it was created + return full_bn + except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print( "OMG!") + raise e +#^^^^^^^^^^^^^^^^^^^^^^^ Methods ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +try: + # Check out any necessary licenses and Create the Geoprocessor object + arcpy.CheckOutExtension("spatial") + gp = arcgisscripting.create() + ## START:INPUTS ## + ##Hard coded this + csvExtractThis = "C:\\Dropbox\\data\\AD\\AD-STARS\\extract_stars_ad.csv" ########################## + imgWs="G:\\AD15_16\\" #imageBaseLocation + ##GDB whare the feature classes are stored and where the tables will be written: + #gdb = "C:\\Users\\usuario\\Documents\\ArcGIS\\Default.gdb\\" #Default + gdb = "C:\\Dropbox\\data\\AD\\AD-STARS\\stars_ad.gdb\\" + ##tws = where to save tables inside the workspace + tws ="C:\\Users\\usuario\\Documents\\ArcGIS\\Default.gdb\\" + #ds="extract" #Use this fro m and t ################ dataset inside GDB ############### + #ds="h" #Use this for hyper + ds = "" #no ds + arcpy.env.workspace = gdb + bandsPerImage = { + #Get the KNOWN NUMBER OF BANDS for the images according to the camera + #camera: NUMBER OF BANDS + "t": ("1"), + "h": ("62"), + "m": ("6"), + } + id_field = "id" ##################### + log= "C:\\Dropbox\\data\\AD\\AD-STARS\\extract_stars_ad_log.txt" ############################ + ## END:INPUTS ## + + ## START:VARIABLES ## + #Get all feature classes gdb/extract dataset + listFc = arcpy.ListFeatureClasses( + feature_type="Polygon", + feature_dataset=ds) + mosaicFolder = { + #Get the folder name used and suffix for the images according to the camera + #camera: folder, suffix + "m": ("geo","geo"), + "t": ("cel","cel"), + } + arcpy.env.workspace = gdb + ext=".tif" #extension of the rasters BSQ | TIF + buf="buf" #we use the buffered plot features to extract the stats ############# + bw8="xxx" #default trial #################################### + ## END:VARIABLES ## + ex, dates,trials = readWhatToExtract(csvExtractThis) + #find the image paths and features to perform the zonal statistics + for f, flightdate in enumerate(ex): + for t,trial in enumerate(flightdate): #skip the date column + for cam in trial.split(): + if cam !="-": + #QuĂ© hacer si está vacĂ­o? + #ASSIGN Known number of bands + knownBands = bandsPerImage.get(cam,("1")) + #ZONES FEATURE + #Search for the corresponding grids for this date/trial/cam + #if date is __ad__ the grid is the general for the cycle e.g. ypt__ad__buf + #if date is YYMMDD the grid was adjusted, and needs to have indicated also the camera + # this way we can know at which image the adjustment corresponds. + # grids adjusted will be like bw1160215bufh -> with the date and camera indicated + pattern = str(trials[t])+"("+str(dates[f])+'|__ad__)'+buf+'['+cam+']*$' + arcpy.AddMessage("pattern: "+str(pattern)) + #arcpy.AddMessage("FList: "+str(listFc)) + plotsF = [ft for ft in listFc if re.search(pattern, ft)] + if plotsF: + if len(plotsF)>1: plotsF=plotsF[0] #get just the edited feature if the general exists + plotsF=os.path.join(arcpy.env.workspace, ds, ''.join(plotsF)) + arcpy.AddMessage("Zones: "+plotsF) + #RASTER + #search for the images that match them + # hyper mosaics folder is rfl_spr_ort, for multi is geo, for thermal is cel + mF, sx = mosaicFolder.get(cam,("geo","geo")) #corresponding folder and sfx + imgLocation = imgLocation = imgWs+str(dates[f])+"\\"+cam+"\\"+mF+"\\" + imgName =cam+str(dates[f])+str(trials[t])+sx+ext + img=imgLocation+imgName + if not exists(img): #Use the general mosaic + imgName =cam+str(dates[f])+bw8+sx+ext + img=imgLocation+imgName + arcpy.AddMessage("Raster to use: "+img) + if exists(img): + #PREPARE FOR THE ZS + #Reading header to get Bands + #We assume header file is there and named as the raster + hdr_file = img[:-4]+".hdr" + #Read header to know number and name of bands or set them a priori + #knownBands is optional + bandNames = readHeaderFile(hdr_file, knownBands) + tableBaseName = arcpy.ValidateTableName(cam+str(dates[f])+str(trials[t])+buf,tws) #stats table base name in ws + #arcpy.AddMessage("zs") + #arcpy.AddMessage("tb:"+tableBaseName) + zsm = zonalStatsMultiband(tableBaseName, bandNames, img, plotsF,id_field) + appendListToFile(log,zsm,mode="a") + else: + arcpy.AddMessage("|||No raster to use |||") + appendListToFile(log,(str(img),"\n"),mode="a") + else: + arcpy.AddMessage("|||No features to use|||") + appendListToFile(log,(str(plotsF),"\n"),mode="a") + else: arcpy.AddMessage("No data extracting for this trial on this date") + appendListToFile(log,("Finished",time.strftime("%Y/%m/%d %H:%M:%S"),"\n"),mode="a") #Write finish time in log +except Exception as e: + # If an error occurred, print( line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)+ " Error " + e.message) \ No newline at end of file diff --git a/ArcGIS/zonalStatsTables_MultibandImage .py b/ArcGIS/zonalStatsTables_MultibandImage .py new file mode 100644 index 0000000..d730039 --- /dev/null +++ b/ArcGIS/zonalStatsTables_MultibandImage .py @@ -0,0 +1,351 @@ +# -*- coding: utf-8 -*- +# Description: +#This script is to execute the "Zonal statistics" tool in a multiband raster. It saves the resulting table to a specified >workspace<. +# One table per band is generated, they are named based on the raster and feature zone names + the extracted band number. +# To iterate along the bands, the ENVI HDR file is atempted to be read to get the band names. +# If header doesn't exist, a known number of bands can be specified to iterate. +#This script takes 3 important inputs and outputs: +#(input) +# Buffer: zone feature to use as input for zonal statistic tool. +# Standard file name system on the features is espected: tttYYMMDDfff +# Being: +# YYMMDD= date in a YYMMDD format. E.g. 160311 for march 11 of 2016. +# fff = 3 char indicating the features that are represented in the vector shapes. E.g. "gss" for greenseeker sampling, "plt" for field plots. +# ttt = 3 char representing the trial or area covered in the image. E.g. "bwh" for bread wheat trials, "sam" for maize summer trials + +# ID field: Field of the input feature to use as identifier of the different zones for generating the statistics + +# image: data image to use as input for zonal statistic tool. +# Standard file name system on the raster is espected: xYYMMDDtttsss +# Being: +# x = [h,m,t,c,a,r,n] one char representing the camera used to acquire the imagery + # sss = 3 char representing the processing stage of the imagery. E.g. "geo" for georeferenced, "pno" for the multi mosaic +# The band information is read from the envi HDR file + +# Workspace: where to save the statistics tables and where to create the features to save the mean values per plot + +# Known bands: [Optional] Number of bands of the input raster. Necessary if +# the header file doesn't exist -> default is 1 if not specified. + +#(ouput) +# Tables: The full default statistics table +# Table name structure: xYYMMDDtttfffBi +# Being: +# i: the band number from which the statistics was calculated based on the zones of the input feature +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys + + def zonalStatsMultiband(tableBaseName, bandNames, image, plot_polygons,id_field): + #zonalStats iterated in all bands of the raster Multiband + #Return list of the name of the generated tables + tables=list() + arcpy.AddMessage("Iterating the zonal statistics across all bands...") + #Get bands + #Returns: [0]numberOfBands, [1]isBandNamesInteger? + numOfBands = getNumberOfBands(bandNames) + arcpy.AddMessage("Number of bands: "+str(numOfBands[0])) + #If the image has more than one band... + if numOfBands[0] != 1: + #If we only have the number of bands, but no band names (because there was no hdr)... + #We will call the bands by the default way ArcMap does: RasterName + Band_1, Band_2, etc... + #we create the list to iterate it + if numOfBands[1]: bandNames = list('Band_%s' % b for b in range(1, numOfBands[0]+1)) + #Here iterates through the bands and runs the zonal statistics tool + #Get the count with the function "enumerate" + for i, b in enumerate(bandNames, start=1): + #Next we add the band name to the raster basename + band = image + "\\" + b + arcpy.AddMessage("Iterating band # "+ str(i)+" - " + band) + #Set table name + statsTable = tableBaseName+"B" + str(i)#+ ".dbf" #We add the band id to the StatsTable name + #arcpy.AddMessage("Willbe stored in table "+str(statsTable)) + #Here we call the method to do the zonal statistics + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, band, statsTable, "DATA", "ALL") + arcpy.AddMessage("resulting stats table: " + str(zs)) + tables.append(zs) + else: + #If we have just one band we call the raster without specifying any band + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, id_field, image, tableBaseName+"B1.dbf", "DATA", "ALL") + tables.append(zs) + arcpy.AddMessage("resulting stats table: " + str(zs)) + return tables +def print_kwinfo(): + if deb==1: + print "kwinfo se guarda:" + print kwinfo + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception, e: + # If an error occurred, print line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path)else False + return exists + +def write_hdr_file(hdr_filename,assign_bands=1,mode="w"): + try: + hdr_file = open(hdr_filename, mode) + hdr_file.write("HEAD\nbands = "+ str(assign_bands)) + arcpy.AddMessage("writing in hdr file") + hdr_file.close() + except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG! Error while in: write_hdr_file" + raise e +def write_txt_file(hdr_filename,mode="w",txt=""): + try: + hdr_file = open(hdr_filename, mode) + hdr_file.write(txt) + arcpy.AddMessage("writing in "+hdr_filename+" file") + hdr_file.close() + except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG! Error while in: write_txt_file" + raise e + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension +#Method to concatenate the band name to the raster basename +#BandNames has or all the list of band names or the number of bands +def getNumberOfBands(bandNames): + try: + #If there was no bandnames or header, a band number was assigned + #This would be an integer + numOfBands = int(bandNames) + isANumber = True + return numOfBands, isANumber + except ValueError: + #If there is a band name as a string we will say it's one band + numOfBands = 1 + isANumber = False + return numOfBands, isANumber + except TypeError: + #If there are band names as list or array we will count them here + numOfBands = len(bandNames) + isANumber = False + return numOfBands, isANumber + except Exception, e: + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + raise e +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window +def readHeaderFile(header_file,assign_bands=1): + try: + if not exists(header_file): + write_hdr_file(header_file,assign_bands) + arcpy.AddMessage("Header not found, it was created a basic one. Number of bands assigned: "+str(assign_bands)) + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] #Skip the first "ENVI" letters of the header + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("reading header lines...") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la lĂ­nea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print str(i)+"-l- "+str(l) + kwinfo+=l + if deb==1: print str(i)+"-kwinfo- "+str(kwinfo) + if ongoing==1: + if "}" in l: + if deb==1: print "ongoing==se cierra por fin el parentesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print "ongoing==1 else" + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print keyw+" attribute found" + if "{" in l: + if "}" in l: + if deb==1: print "ongoing==parentesis cerrando en linea" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print "if bracket in l: --- else" + else: + if deb==1: print "ongoing==sin paretesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print "fin de ronda de for" + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print regexpresion.findall(cl) + for key in dictio: dictio[key]=dictio[key].strip() + print "Header attributes:" + arcpy.AddMessage("Header attributes read") + print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + arcpy.AddMessage(wl) + arcpy.AddMessage("saved wl") + #Number of Bands + if "bands" in dictio: + hdr_bands=dictio["bands"] + arcpy.AddMessage(hdr_bands) + arcpy.AddMessage("saved Number of bands from header") + #Band names + if "band names" in dictio: + arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + arcpy.AddMessage("split competed") + bn=replace_in_list(expr_replace,bn) + arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + arcpy.AddMessage("Format composed band name") + full_bn=hdr_bands #We assign by default the number of bands in the raster + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + arcpy.AddMessage("wl found") + full_bn= wl + arcpy.AddMessage(full_bn) + if deb==1: + print full_bn + print "Bands descripted in header: "+len(full_bn) + arcpy.AddMessage("Finished reading header") + #arcpy.AddMessage(type(full_bn)) #to know the type of variable it was created + return full_bn + except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + raise e + +##--------------------------------- Starts the script +try: + # Check out any necessary licenses and Create the Geoprocessor object + arcpy.CheckOutExtension("spatial") + gp = arcgisscripting.create() + #START----------------Get Input parameters + #Type: Feature layer -buffer for the zonalStats + plot_polygons = arcpy.GetParameterAsText(0) + arcpy.AddMessage("read b1 " + plot_polygons) + print plot_polygons + arcpy.AddMessage("read " + plot_polygons) + desc = arcpy.Describe(plot_polygons) + gPath = desc.path + gridSource = str(gPath) + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + gridTrial = desc.baseName[0:3]#Framer's Field or trial that this buffer is representing + gridFeatures = desc.baseName[9:12]#What feature of that trial field is the grid representing: plots, buffered plots, dissolved plots, etc + arcpy.AddMessage("Grid basename: " + gridName) + print plot_polygons + #type: image layer + image = arcpy.GetParameterAsText(1) + arcpy.AddMessage("read " + image) + desc = arcpy.Describe(image) + rPath = desc.path + rdate = desc.baseName[1:7] #Get the date from the raster to create the save feature + r_img = desc.baseName[0:1] #Get the image id from the raster to create the save feature + trialName = desc.baseName[7:10] #Get the trial id from the raster to create the save feature + image = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + rname = desc.baseName + arcpy.AddMessage("image source: " + image) + print image + #type: Field - Field for statistics + id_field = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read " + id_field) + #tablesPath: tablesPath - GDB where to save the statistics tables + tablesPath = arcpy.GetParameterAsText(3) + arcpy.AddMessage("GDB where to save the statistics tables: " + tablesPath) + #KnownBands: Known number of bands in case there is no header file + #Optional, but set to default as 1 if there is no header file + knownBands = arcpy.GetParameterAsText(4) + arcpy.AddMessage("known number of Bands: " + str(knownBands)) + #ENDS---------------------Input parameters + #Reading header to get Bands + #We assume header file is there and named as the raster + hdr_file = os.path.join(str(rPath) + "\\" + rname+".hdr") + #Read header to know number and name of bands or set them a priori + #knownBands is optional + bandNames = readHeaderFile(hdr_file, knownBands) + tableBaseName = tablesPath + "\\"+r_img+rdate+gridTrial+gridFeatures #stats table base name + zonalStatsMultiband(tableBaseName, bandNames, image, plot_polygons,id_field) #do the zs + f="Finish" + print f + arcpy.SetParameterAsText(5,f) +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno) + "Error " + e.message) \ No newline at end of file diff --git a/ArcGIS/zonalStats_bsqMultibandImage.py b/ArcGIS/zonalStats_bsqMultibandImage.py new file mode 100644 index 0000000..bde7584 --- /dev/null +++ b/ArcGIS/zonalStats_bsqMultibandImage.py @@ -0,0 +1,475 @@ +# -*- coding: utf-8 -*- +# --------------------------------------------------------------------------- +# joinZonalStats_hyper_BW_pruebas.py +# Created on: 2014-06-07 11:06:16.00000 +# (generated by ArcGIS/ModelBuilder) +# Usage: joinZonalStats_hyper_BW_pruebas +# Description: +# The script is used to perform the zonals statistics tool on a multiband raster. +# The mean values are stored in the input feature (or a copy of it) +#This script takes 3 important inputs: +#Buffer: zone feature to use as input for zonal statistic tool +#Grid: feature whose table will be used to save the mean values of the zonal statistic tool. +# This should contain the same features ID field than the "Buffer" input. +# A field named B1, B2... will be created to store the mean values for each zone for each band. +#image: image to use as input for zonal statistic tool, along with the "Buffer". +# The band information is read from the envi HDR file +#Also +# +#Workspace: where to save the statistics tables and where to create the features to save the mean values per plot +#Decimals: round figure to save the mean on the features +# --------------------------------------------------------------------------- + +# Import arcpy module +import os +import arcpy, arcgisscripting +import itertools +import re +import traceback, sys + +def print_kwinfo(): + if deb==1: + print "kwinfo se guarda:" + print kwinfo + +def create_if_not_exists(path): + try: + if not os.path.exists(path): + os.makedirs(path) + except Exception, e: + # If an error occurred, print line number and error message + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + +def exists(path): + exists = True if os.path.exists(path)else False + return exists + +def write_hdr_file(hdr_filename,assign_bands=1,mode="w"): + try: + hdr_file = open(hdr_filename, mode) + hdr_file.write("HEAD\nbands = "+ str(assign_bands)) + arcpy.AddMessage("writing in hdr file") + hdr_file.close() + except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG! Error while in: write_hdr_file" + raise e +def write_txt_file(hdr_filename,mode="w",txt=""): + try: + hdr_file = open(hdr_filename, mode) + hdr_file.write(txt) + arcpy.AddMessage("writing in "+hdr_filename+" file") + hdr_file.close() + except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG! Error while in: write_txt_file" + raise e + +def replace_in_list(regex,lst): + return [re.sub(regex, '', x).strip() for x in lst] #List comprehension +#Method to concatenate the band name to the raster basename +#BandNames has or all the list of band names or the number of bands +def getNumberOfBands(bandNames): + try: + #If there was no bandnames or header, a band number was assigned + #This would be an integer + numOfBands = int(bandNames) + isANumber = True + return numOfBands, isANumber + except ValueError: + #If there is a band name as a string we will say it's one band + numOfBands = 1 + isANumber = False + return numOfBands, isANumber + except TypeError: + #If there are band names as list or array we will count them here + numOfBands = len(bandNames) + isANumber = False + return numOfBands, isANumber + except Exception, e: + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + raise e +def print_dict(dictio): + #The next line iterates, formats and prints the dictionary, key:value + #print "\n".join('{}={}'.format(k,v) for k,v in dictio.items()) print in console + arcpy.AddMessage("\n".join('{}={}'.format(k,v) for k,v in dictio.items()))#Print to arcmap results window +def joinZonalStatsToTable (band, tableName, bandField): + statsTable = tablesPath + "\\" + tableName + arcpy.AddMessage("Stats_table: " + statsTable) + print statsTable + Field_Name_Calculate_field = gridName + "." + bandField + print Field_Name_Calculate_field + #Expression_Select_layer = tableName+".Mean IS NOT NULL" + # Use this if the stats were saved to a dbf file "\""+tableName+".Mean\" IS NOT NULL" + # Use this if the stats were saved to a table "\""+tableName+":Mean\" IS NOT NULL" + # Use this if the stats were saved to a database table tableName+".Mean IS NOT NULL" + + #We will save the field Mean values of the table into the feature attributes + #The round decimals are an input from the User + Expression_Calculate_field = "!"+tableName+".Mean!" #Not to round + #Expression_Calculate_field = "round(!"+tableName+".Mean!,"+ str(roundDecimals) +")" + #the "!"+tableName+":Mean!" notation (:)is used when the stats are saved to a table + #the "!"+tableName+".Mean!" notation (.)is used when the stats are saved to a dbf file + print Expression_Calculate_field + + # Process: Zonal Statistics as Table + arcpy.AddMessage("Zonal statistics...") + print "Zonal statistics..." + #Perform the zonalstatistics getting only the "MEAN" value of the cells + #Save ALL statistics on table + #"ALL" can be changed to get different statistics: + #ALL,MEAN,MAJORITY,MAXIMUM,MEDIAN,MINIMUM,MINORITY,RANGE,STD,SUM,VARIETY,MIN_MAX,MEAN_STD,MIN_MAX_MEAN  + zs = arcpy.gp.ZonalStatisticsAsTable_sa(plot_polygons, Zone_field_and_join_Field, band, statsTable, "DATA", stats) + arcpy.AddMessage("stats table: " + str(zs)) + fields = gp.ListFields(gridLayer, bandField) + field_found = fields.Next() + if (not field_found): + arcpy.AddField_management(gridLayer, bandField, "FLOAT", 10, 3, "", "", "NULLABLE", "NON_REQUIRED", "") + arcpy.AddMessage("Added field " + str(bandField)) + else: + arcpy.AddMessage("Field found " + str(field_found.name)) + + # Process: Add Join + print "Joining..." + arcpy.AddMessage("grid..."+ gridLayer) + arcpy.AddMessage("field..."+Zone_field_and_join_Field) + arcpy.AddJoin_management(gridLayer, Zone_field_and_join_Field, zs, Zone_field_and_join_Field, "KEEP_ALL") + + # Process: Select Layer By Attribute +## if i==1: +## print "Selecting Layer..." +## gridLayerSelection = arcpy.SelectLayerByAttribute_management(gridLayer, "NEW_SELECTION", Expression_Select_layer) + + # Process: Calculate Field + print "Calculating field" + arcpy.AddMessage("Calculating field...") + arcpy.CalculateField_management(gridLayer, Field_Name_Calculate_field, Expression_Calculate_field, "PYTHON") + + # Process: Remove Join + arcpy.AddMessage("remove Join") + arcpy.RemoveJoin_management(gridLayer, "") + #Erase stats table + if not keep_tables: arcpy.Delete_management(zs) + +def letsgo(header_file,assign_bands=1): + try: + if not exists(header_file): + write_hdr_file(header_file,assign_bands) + arcpy.AddMessage("Header not found, it was created a basic one. Number of bands assigned: "+str(assign_bands)) + arcpy.AddMessage("started reading header file:" + str(header_file)) + envi_header_keywords={"acquisition time","band names","bands", + "bbl","byte order","class lookup","class names", + "classes","cloud cover","complex function", + "coordinate system string","data gain values", + "data ignore value","data offset values", + "data reflectance gain values","data reflectance offset values", + "data type","default bands","default stretch","dem band", + "dem file","description","file type","fwhm","geo points", + "header offset","interleave","lines","map info", + "major frame offsets","minor frame offsets","pixel size", + "product type","projection info","read procedures", + "reflectance scale factor","rpc info","samples","security tag", + "sensor type","solar irradiance","spectra names","sun azimuth", + "sun elevation","wavelength","wavelength units","x start", + "y start","z plot average","z plot range","z plot titles"} + envi_header_keywords_or="|".join(envi_header_keywords) + # Read and Iterate over the lines of the file + with open(header_file, 'rt') as f: + data = f.read()[5:] #Skip the first "ENVI" letters of the header + lines = re.split(r"[\n]", data)#the info corresponding to one line + arcpy.AddMessage("reading header lines...") + dictio = {} + global deb + deb=0 + wl=[]#List to save wavelengths + bn=[]#List to save band names + clines=[]#complete lines with all the info corresponding to one header keyword + ongoing=0 #Variable para marcar si se está buscando el resto de la lĂ­nea de info + #to one header keyword is not in one single line + kwinfo="" + for i,l in enumerate(lines): + if deb==1: print str(i)+"-l- "+str(l) + kwinfo+=l + if deb==1: print str(i)+"-kwinfo- "+str(kwinfo) + if ongoing==1: + if "}" in l: + if deb==1: print "ongoing==se cierra por fin el parentesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + continue + else: + if deb==1: print "ongoing==1 else" + if ongoing==0: + ongoing=1 + for keyw in envi_header_keywords: + if keyw in l: + if deb==1: print keyw+" attribute found" + if "{" in l: + if "}" in l: + if deb==1: print "ongoing==parentesis cerrando en linea" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + else: + if deb==1: print "if bracket in l: --- else" + else: + if deb==1: print "ongoing==sin paretesis" + print_kwinfo() + clines.append(kwinfo) + kwinfo="" + ongoing=0 + if deb==1: print "fin de ronda de for" + for cl in clines: + #expresion to filter how to sepatate the string. + regexpresion = re.compile(r"""(.+?)\s*=\s*(.+)""") + dictio.update(dict(regexpresion.findall(cl))) + if deb==1: print regexpresion.findall(cl) + for key in dictio: dictio[key]=dictio[key].strip() + print "Header attributes:" + arcpy.AddMessage("Header attributes read") + print_dict(dictio) + expr_replace = re.compile(r"{|}") #Expression to remove brackets below + #wavelength + if "wavelength" in dictio: + wl=re.split(r"[,]", dictio["wavelength"]) + wl =replace_in_list(expr_replace,wl) + arcpy.AddMessage(wl) + arcpy.AddMessage("saved wl") + #Number of Bands + if "bands" in dictio: + hdr_bands=dictio["bands"] + arcpy.AddMessage(hdr_bands) + arcpy.AddMessage("saved Number of bands from header") + #Band names + if "band names" in dictio: + arcpy.AddMessage("band names attribute found") + bn=re.split(r"[,]", dictio["band names"]) + arcpy.AddMessage("split competed") + bn=replace_in_list(expr_replace,bn) + arcpy.AddMessage("saved bn") + #Next we add the wl units only if they are defined + arcpy.AddMessage("Format composed band name") + full_bn=hdr_bands #We assign by default the number of bands in the raster + if "wavelength units" in dictio: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln} '+dictio["wavelength units"]+')' if dictio["wavelength units"]!="Unknown" else '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + join_str = '{waveln} '+dictio["wavelength units"] if dictio["wavelength units"]!="Unknown" else '{waveln}' + arcpy.AddMessage("wl found+units") + full_bn= '\n'.join(join_str.format(waveln=w) for w in wl).split('\n') + else: + if "band names" in dictio and "wavelength" in dictio: + join_str = '{bandn} ({waveln})' + arcpy.AddMessage("bn and wl found") + full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') + if not "band names" in dictio and "wavelength" in dictio: + arcpy.AddMessage("wl found") + full_bn= wl + arcpy.AddMessage(full_bn) + if deb==1: + print full_bn + print "Bands descripted in header: "+len(full_bn) + arcpy.AddMessage("Finished reading header") + arcpy.AddMessage(type(full_bn)) #to know the type of variable it was created + return full_bn + except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + raise e +##def save_bn_wl(): +## full_bn= '\n'.join(join_str.format(bandn=b, waveln=w) for b,w in itertools.izip(bn, wl)).split('\n') +## +##def save_wl(): +## full_bn= '\n'.join(join_str.format(waveln=w) for w in itertools.izip(wl)).split('\n') + +##--------------------------------- Starts the script +try: + # Check out any necessary licenses + arcpy.CheckOutExtension("spatial") + + # Create the Geoprocessor object + gp = arcgisscripting.create() + + # Load required toolboxes + print "Start!" + #--------------------------------------- + #start----------------Input parameters + #--------------------------------------- + #Type: Feature layer -buffer for the zonalStats + plot_polygons = arcpy.GetParameterAsText(0) + arcpy.AddMessage("read b1 " + plot_polygons) + print plot_polygons + + #type: image layer + image = arcpy.GetParameterAsText(2) + arcpy.AddMessage("read " + image) + desc = arcpy.Describe(image) + rPath = desc.path + rdate = desc.baseName[1:7] #Get the date from the raster to create the save feature + r_img = desc.baseName[0:1] #Get the image id from the raster to create the save feature + trialName = desc.baseName[7:10] #Get the trial id from the raster to create the save feature + image = str(rPath) + "\\" + desc.baseName+ "." +desc.extension + rname = desc.baseName + arcpy.AddMessage("image source: " + image) + print image + + ####create the feature to extract to + ##type: Feature layer - Feature in whose table the copy of the features will be created to store the Mean stats + wantTocopyInputFeatures = arcpy.GetParameter(10) #Choose if the input feature will be used to sava the stats or a new will be created + if wantTocopyInputFeatures: + folder_storing = arcpy.GetParameterAsText(1) #Where to create the copies + Grid = str(folder_storing)+ "\\"+ r_img + rdate + plot_polygons #location and name of copy + if not exists(Grid): + arcpy.CopyFeatures_management(plot_polygons, Grid)#Copy feature + else: + Grid = plot_polygons ###Save in the input feature when not creting new feature + arcpy.AddMessage("read " + Grid) + desc = arcpy.Describe(Grid) + gPath = desc.path + gridSource = str(gPath) + arcpy.AddMessage("Grid source: " + gridSource) + gridName = desc.baseName + arcpy.AddMessage("Grid basename: " + gridName) + print Grid + + #type: Field - Field for join and statistics + id_field = arcpy.GetParameterAsText(3) + arcpy.AddMessage("read " + id_field) + + #tablesPath: tablesPath - GDB where to save the statistics tables + tablesPath = arcpy.GetParameterAsText(4) + arcpy.AddMessage("tablesPath " + tablesPath) + + #roundDecimals: roundDecimals - number of decimals to round the "Mean" statistics that are joined to the feature's table + roundDecimals = arcpy.GetParameterAsText(5) + arcpy.AddMessage("roundDecimals: " + roundDecimals) + + #SaveStats: SaveStats - wether to save the statistics table or not + keep_tables = arcpy.GetParameter(7) + arcpy.AddMessage("keep_tables: " + str(keep_tables)) + + #stats: stats - a parameter for the "zonal statistics as table" tool in UPPERCASE PLEASE + #TODO: make a selectable list of the options + #ALL,MEAN,MAJORITY,MAXIMUM,MEDIAN,MINIMUM,MINORITY,RANGE,STD,SUM,VARIETY,MIN_MAX,MEAN_STD,MIN_MAX_MEAN + stats = arcpy.GetParameterAsText(8) + arcpy.AddMessage("stats to be computed: " + stats) + + #KnownBands: Known number of bands in case there is no header file + #Optional, but set to default as 1 if there is no header file + knownBands = arcpy.GetParameterAsText(9) + arcpy.AddMessage("known number of Bands: " + str(knownBands)) + #----------------------------------------- + #ENDS---------------------Input parameters + #----------------------------------------- + + #List of band names + # ---------------------Reading header to get Bands + #We assume header file is there and named as the raster + hdr_file = os.path.join(str(rPath) + "\\" + rname+".hdr") + #Read header to know number and name of bands or set them a priori + #knownBands is optional + bandNames = letsgo(hdr_file, knownBands) + #Default GDB to store the tables with the stats if not User input + #tempGdb_path = r"C:\Users\usuario\Documents\ArcGIS" + #tempGdb = r"Default.gdb" + #This is the path + #tablesPath = os.path.join(tempGdb_path, tempGdb) + #Keep the individual stats tables? + #Either way the MEAN is stored to the table of the grid feature selected + #keep_tables=True # Input as user selects + # Execute CreateFileGDB + #create_if_not_exists(tempGdb_path) + #if not exists(tablesPath): + # arcpy.CreateFileGDB_management(tempGdb_path, tempGdb) + print tablesPath + + # Local variables: + arcpy.AddMessage("Local variables") + print "Local variables" + Zone_field_and_join_Field = id_field + gridLayer = "gridLayer" + + + ## Make a layer + print "Make layer" + arcpy.MakeFeatureLayer_management(Grid, "gridLayer") + + i=1 + try: + arcpy.AddMessage("Iterating the zonal statistics across all bands...") + #Returns: [0]numberOfBands, [1]isBandNamesInteger? + numOfBands = getNumberOfBands(bandNames) + arcpy.AddMessage("Number of bands: "+str(numOfBands[0])) + #If the image has more than one band... + if numOfBands[0] != 1: + #If we only have the number of bands, but no band names (because there was no hdr)... + #We will call the bands by the default way ArcMap does: RasterName + Band_1, Band_2, etc... + #we create the list to iterate it + if numOfBands[1]: bandNames = list('Band_%s' % b for b in range(1, numOfBands[0]+1)) + #Here iterates through the bands and runs the zonal statistics tool + for b in bandNames: + #Next we add the band name to the raster basename + band = image + "\\" + b + arcpy.AddMessage("Iterating band # " + band) + bandField = "B" + str(i) + print bandField + #Set table name + tableName = gridName+ trialName + bandField #+ ".dbf" + #Here we call the method to do the zonal statistics and join the mean to the feature table + joinZonalStatsToTable (band, tableName, bandField) + i+=1 + else: + #If we have just one band we call the raster without specifying any band + band = image + bandField = "B1" + tableName = gridName+ trialName + #Here we call the method to do the zonal statistics and join the mean to the feature table + joinZonalStatsToTable (band, tableName, bandField) + + ###Experiment to see which ended well + check=r'C:\\vuelos\\temp\\g.txt' + write= "Finished "+str(band)+" with "+ str(tableName)+"\n" + write_txt_file(check,"a",write) + ##Experiment + except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" + raise e + f="Finish" + print f + arcpy.SetParameterAsText(6,f) + +except Exception, e: + # If an error occurred, print line number and error message + import traceback, sys + tb = sys.exc_info()[2] + arcpy.AddMessage("Line:" + str(tb.tb_lineno)) + arcpy.AddMessage("Error " + e.message) + print "OMG!" \ No newline at end of file diff --git a/ENVI/ENVIProgramGenerator.sav b/ENVI/ENVIProgramGenerator.sav new file mode 100644 index 0000000000000000000000000000000000000000..a7d126d7d8a66309397ae2870d10bbde4c31e16d GIT binary patch literal 455320 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

    HLMIWOM#0S)k5J}gXn3GFIaOas9 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⩔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�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%0D!1+O>?0c3 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

    ^AgM&q00G0{v7q=%=27ekxL*A^lXOJ|jWv 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ෘ|jz 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 z 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 z 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 It;FyD0kq}Y3IG5A literal 0 HcmV?d00001 diff --git a/ENVI/G.exp b/ENVI/G.exp new file mode 100644 index 0000000..487c44b --- /dev/null +++ b/ENVI/G.exp @@ -0,0 +1,4 @@ +ENVI EXPRESSIONS +B550/B670 +B750/B550 +0.5*(120*(B750-B550)-200*(B670-B550)) diff --git a/ENVI/GM1.exp b/ENVI/GM1.exp new file mode 100644 index 0000000..d03c711 --- /dev/null +++ b/ENVI/GM1.exp @@ -0,0 +1,3 @@ +ENVI EXPRESSIONS +B750/B550 +0.5*(120*(B750-B550)-200*(B670-B550)) diff --git a/ENVI/MCARI1.exp b/ENVI/MCARI1.exp new file mode 100644 index 0000000..2a8f8e1 --- /dev/null +++ b/ENVI/MCARI1.exp @@ -0,0 +1,10 @@ +ENVI EXPRESSIONS +1.2*(1.2*(B800-B550)-2.5*(B670-B550)) +(B800/B670-1)/((B800/B670)^0.5)+1 +(1+0.16)*(B800-B670)/(B800+B670+0.16) +(B800-B670)/sqrt(B800+B670) +(B800-B670)/(B800+B670) +B800/B680 +B550/B670 +B750/B550 +0.5*(120*(B750-B550)-200*(B670-B550)) diff --git a/ENVI/MCARI2.exp b/ENVI/MCARI2.exp new file mode 100644 index 0000000..c96fed6 --- /dev/null +++ b/ENVI/MCARI2.exp @@ -0,0 +1,11 @@ +ENVI EXPRESSIONS +1.5*(2.5*(B800-B670)-1.3*(B800-B550))/sqrt((2*B800+1)^2-(6*B800-5*sqrt(B670))-0.5) +1.2*(1.2*(B800-B550)-2.5*(B670-B550)) +(B800/B670-1)/((B800/B670)^0.5)+1 +(1+0.16)*(B800-B670)/(B800+B670+0.16) +(B800-B670)/sqrt(B800+B670) +(B800-B670)/(B800+B670) +B800/B680 +B550/B670 +B750/B550 +0.5*(120*(B750-B550)-200*(B670-B550)) diff --git a/ENVI/MSR.exp b/ENVI/MSR.exp new file mode 100644 index 0000000..e375a2d --- /dev/null +++ b/ENVI/MSR.exp @@ -0,0 +1,9 @@ +ENVI EXPRESSIONS +(B800/B670-1)/((B800/B670)^0.5)+1 +(1+0.16)*(B800-B670)/(B800+B670+0.16) +(B800-B670)/sqrt(B800+B670) +(B800-B670)/(B800+B670) +B800/B680 +B550/B670 +B750/B550 +0.5*(120*(B750-B550)-200*(B670-B550)) diff --git a/ENVI/MTVI1.exp b/ENVI/MTVI1.exp new file mode 100644 index 0000000..2d7a55d --- /dev/null +++ b/ENVI/MTVI1.exp @@ -0,0 +1,12 @@ +ENVI EXPRESSIONS +1.2*(2.5*(B800-B670)-1.3*(B800-B550)) +1.5*(2.5*(B800-B670)-1.3*(B800-B550))/sqrt((2*B800+1)^2-(6*B800-5*sqrt(B670))-0.5) +1.2*(1.2*(B800-B550)-2.5*(B670-B550)) +(B800/B670-1)/((B800/B670)^0.5)+1 +(1+0.16)*(B800-B670)/(B800+B670+0.16) +(B800-B670)/sqrt(B800+B670) +(B800-B670)/(B800+B670) +B800/B680 +B550/B670 +B750/B550 +0.5*(120*(B750-B550)-200*(B670-B550)) diff --git a/ENVI/MTVI2.exp b/ENVI/MTVI2.exp new file mode 100644 index 0000000..6f48c77 --- /dev/null +++ b/ENVI/MTVI2.exp @@ -0,0 +1,13 @@ +ENVI EXPRESSIONS +1.5*(1.2*(B800-B550)-2.5*(B670-B550))/sqrt((2*B800+1)^2-(6*B800-5*sqrt(B670))-0.5) +1.2*(2.5*(B800-B670)-1.3*(B800-B550)) +1.5*(2.5*(B800-B670)-1.3*(B800-B550))/sqrt((2*B800+1)^2-(6*B800-5*sqrt(B670))-0.5) +1.2*(1.2*(B800-B550)-2.5*(B670-B550)) +(B800/B670-1)/((B800/B670)^0.5)+1 +(1+0.16)*(B800-B670)/(B800+B670+0.16) +(B800-B670)/sqrt(B800+B670) +(B800-B670)/(B800+B670) +B800/B680 +B550/B670 +B750/B550 +0.5*(120*(B750-B550)-200*(B670-B550)) diff --git a/ENVI/NDVI.exp b/ENVI/NDVI.exp new file mode 100644 index 0000000..2c58135 --- /dev/null +++ b/ENVI/NDVI.exp @@ -0,0 +1,6 @@ +ENVI EXPRESSIONS +(B800-B670)/(B800+B670) +B800/B680 +B550/B670 +B750/B550 +0.5*(120*(B750-B550)-200*(B670-B550)) diff --git a/ENVI/OSAVI.exp b/ENVI/OSAVI.exp new file mode 100644 index 0000000..236f0f2 --- /dev/null +++ b/ENVI/OSAVI.exp @@ -0,0 +1,8 @@ +ENVI EXPRESSIONS +(1+0.16)*(B800-B670)/(B800+B670+0.16) +(B800-B670)/sqrt(B800+B670) +(B800-B670)/(B800+B670) +B800/B680 +B550/B670 +B750/B550 +0.5*(120*(B750-B550)-200*(B670-B550)) diff --git a/ENVI/PSSRa.exp b/ENVI/PSSRa.exp new file mode 100644 index 0000000..1c028a0 --- /dev/null +++ b/ENVI/PSSRa.exp @@ -0,0 +1,5 @@ +ENVI EXPRESSIONS +B800/B680 +B550/B670 +B750/B550 +0.5*(120*(B750-B550)-200*(B670-B550)) diff --git a/ENVI/RDVI.exp b/ENVI/RDVI.exp new file mode 100644 index 0000000..aba203d --- /dev/null +++ b/ENVI/RDVI.exp @@ -0,0 +1,7 @@ +ENVI EXPRESSIONS +(B800-B670)/sqrt(B800+B670) +(B800-B670)/(B800+B670) +B800/B680 +B550/B670 +B750/B550 +0.5*(120*(B750-B550)-200*(B670-B550)) diff --git a/ENVI/TVI.exp b/ENVI/TVI.exp new file mode 100644 index 0000000..477b129 --- /dev/null +++ b/ENVI/TVI.exp @@ -0,0 +1,2 @@ +ENVI EXPRESSIONS +0.5*(120*(B750-B550)-200*(B670-B550)) diff --git a/ENVI/batch_subset.pro b/ENVI/batch_subset.pro new file mode 100644 index 0000000..123e2d3 --- /dev/null +++ b/ENVI/batch_subset.pro @@ -0,0 +1,14 @@ +; Launch the application +e = ENVI() + +; Open a file +File = FILEPATH('qb_boulder_msi', ROOT_DIR=e.ROOT_DIR, $ + SUBDIRECTORY = ['data']) +Raster = e.OpenRaster(file) + +;coordinates of roi +;MapX, MapY2, MapX2, MapY + +; Define the geographic subset +Subset = ENVISubsetRaster(Raster, SPATIALREF=SpatialRef, $ + SUB_RECT=[MapX, MapY2, MapX2, MapY]) diff --git a/ENVI/kelvin2celsius.pro b/ENVI/kelvin2celsius.pro new file mode 100644 index 0000000..b628ad4 --- /dev/null +++ b/ENVI/kelvin2celsius.pro @@ -0,0 +1,35 @@ +pro kelvin2celsius + compile_opt idl2 + + e = ENVI(); Start ENVI. ENVI help code + + CATCH, theError; Establish error handler. + IF theError NE 0 THEN BEGIN;This statement begins the error handler: + Catch, /Cancel + Help, /Last_Message, Output=theErrorMessage + FOR j=0,N_Elements(theErrorMessage)-1 DO BEGIN + Print, theErrorMessage[j] + ENDFOR + RETURN + ENDIF + + ;Pick file dialog: + fileKelvin = DIALOG_PICKFILE(PATH='E:', $ + TITLE='Select image in kelvin units to convert to celsius', FILTER='*.tif') + print,'File: ' + fileKelvin + rasterKelvin = e.OpenRaster(fileKelvin) + ; Convert from kelvin x 100 to celsius + thermal = ((rasterKelvin.GetData(BANDS=0))/100)-273.15 + + ; Determine an output file + outFile = file_dirname(fileKelvin, /MARK_DIRECTORY)+file_basename(fileKelvin, '.tif') + '_c.bsq' + fileThermal = ENVIRaster(thermal, URI=outFile, NBANDS=1) + ;Save file in celsius degrees + ;The header needs to be created + ;We want to use a ROI to crop the image + fileThermal.Save + ;Save to TIF + ;The header needs to be created + outFileTif = file_dirname(fileKelvin, /MARK_DIRECTORY)+file_basename(fileKelvin, '.tif') + '_c.tif' + WRITE_TIFF, outFileTif,fileThermal,/float +end \ No newline at end of file diff --git a/ENVI/ndvi_float.exp b/ENVI/ndvi_float.exp new file mode 100644 index 0000000..e72c5af --- /dev/null +++ b/ENVI/ndvi_float.exp @@ -0,0 +1,2 @@ +ENVI EXPRESSIONS +float(float(float(B6)-float(B1))/(float(float(B6)+float(B1)))) diff --git a/ENVIMaskRasters.pro b/ENVIMaskRasters.pro new file mode 100644 index 0000000..454ef22 --- /dev/null +++ b/ENVIMaskRasters.pro @@ -0,0 +1,72 @@ + ;+ + ; :Author: Lorena 4/09/2015 + ;- + ;+ + ; :Description: + ; + ; Mask and subset hyper raster +pro ENVIMaskRasters + compile_opt idl2 + ; Start the application + e = ENVI() + ;-------------Inputs and mask---------------- + ;test location + test5 = FILEPATH('test5.bsq', ROOT_DIR='c:\vuelos\', $ + SUBDIRECTORY = ['temp']) + + test4 = FILEPATH('test14.bsq', ROOT_DIR='c:\vuelos\', $ + SUBDIRECTORY = ['temp']) + + test6 = FILEPATH('test10.bsq', ROOT_DIR='c:\vuelos\', $ + SUBDIRECTORY = ['temp']) + + ; Open an input file + PRINT, 'Open the input file.' + filei = FILEPATH('150110_bw2_spr.bsq', ROOT_DIR='E:\150110\h150110\', $ + SUBDIRECTORY = ['ortho_res']) + raster = e.OpenRaster(filei) + + ; Open the mask file + PRINT, 'Open the mask file.' + filem = FILEPATH('150110_bw2msk.tif', ROOT_DIR='E:\150110\h150110\', $ + SUBDIRECTORY = ['mask']) + maskFile = e.OpenRaster(filem) + ;maskRas = (maskFile EQ 1 ) + + +; ; create a masked raster +; PRINT, 'Mask raster' +; rasterWithMask = ENVIMaskRaster(raster, maskFile) +;; +;; PRINT, 'Save masked raster.' +;; rasterWithMask.Export, test5, 'envi' +; +;;-------------Spatial subset---------------- +;; This is the area of interest: +;UpperLeftLat = 27.386274 +;UpperLeftLon = -109.922458 +;LowerRightLat = 27.381419 +;LowerRightLon = -109.915562 +; +;; Get the spatial reference of the raster +;SpatialRef = raster.SPATIALREF +; +;; Convert from Lon/Lat to MapX/MayY +;SpatialRef.ConvertLonLatToMap, UpperLeftLon, UpperLeftLat, MapX, MapY +;SpatialRef.ConvertLonLatToMap, LowerRightLon, LowerRightLat, MapX2, MapY2 +; +;; Define the geographic subset +;subset = ENVISubsetRaster(rasterWithMask, SPATIALREF= SpatialRef, $ +; SUB_RECT=[MapX, MapY2, MapX2, MapY]) +; +;;Save the masked subset of the raster +;;mkdfile = FILEPATH('h150110bw2mkd.bsq', ROOT_DIR='E:\150110\h150110\', $ +; ;SUBDIRECTORY = ['mask']) +; subset.Export, test6, 'envi' + ;------------DISLAY----------------- + ; display the new raster, the masked areas are transparent + viewss = e.GetView() + viewss.Zoom, /FULL_EXTENT + layer1 = viewss.CreateLayer(maskFile) + ; +end \ No newline at end of file diff --git a/Excel_VBAmodule_getAllSheetNames.txt b/Excel_VBAmodule_getAllSheetNames.txt new file mode 100644 index 0000000..7d4c525 --- /dev/null +++ b/Excel_VBAmodule_getAllSheetNames.txt @@ -0,0 +1,15 @@ +Sub ListWorkSheetNamesNewWs() +'Updateby20140624 +Dim xWs As Worksheet +On Error Resume Next +Application.DisplayAlerts = False +xTitleId = "KutoolsforExcel" +Application.Sheets(xTitleId).Delete +Application.Sheets.Add Application.Sheets(1) +Set xWs = Application.ActiveSheet +xWs.Name = xTitleId +For i = 2 To Application.Sheets.Count + xWs.Range("A" & (i - 1)) = Application.Sheets(i).Name +Next +Application.DisplayAlerts = True +End Sub \ No newline at end of file diff --git a/Pix4D/Pix4d_ComandLine.bat b/Pix4D/Pix4d_ComandLine.bat new file mode 100644 index 0000000..e4a90bd --- /dev/null +++ b/Pix4D/Pix4d_ComandLine.bat @@ -0,0 +1,19 @@ + +:: Autor: Gil Thompson +:: Fecha: 09/11/17 +:: Descr: TEST Generador de proyectos en Pix4D desde bash win +:: Falta test Ag Multispectral 3d-maps + +:: Direccion de la carpeta de imgs +set path= "E:\MEDICIONES PHY MATRICE_2017\PHY_SQ_DRIP_REDEDGE_170323\0001SET\000" + +@echo %time% +"C:\Program Files\Pix4dmapper\Pix4dmapper" -c -n --image-dir %path% --template ag-multispectral "E:\MEDICIONES PHY MATRICE_2017\PHY_SQ_DRIP_REDEDGE_170323\PHY_SQ_DRIP_REDEDGE_170323.p4d" +@echo %time% + + +pause + +"C:\Program Files\Pix4dmapper\Pix4dmapper" -c -i "E:\MEDICIONES PHY MATRICE_2017\PHY_SQ_DRIP_REDEDGE_170323\PHY_SQ_DRIP_REDEDGE_170323.p4d" + +exit b \ No newline at end of file diff --git a/TileLayerPugin_GoogleTiles_test.tsv b/TileLayerPugin_GoogleTiles_test.tsv new file mode 100644 index 0000000..213d23c --- /dev/null +++ b/TileLayerPugin_GoogleTiles_test.tsv @@ -0,0 +1 @@ +google local file:///d:/tilemaps/slope/{z}/{x}/{y}.png 0 6 13 130.5 33.6 135.0 36.0 \ No newline at end of file diff --git a/WindowsShell/Replace-0By-1.cmd b/WindowsShell/Replace-0By-1.cmd new file mode 100644 index 0000000..7b18237 --- /dev/null +++ b/WindowsShell/Replace-0By-1.cmd @@ -0,0 +1,3 @@ +@echo off +cls +python C:\Dropbox\Software\Scripts\python\autopanoFile_replace-0By-1frames.py %* \ No newline at end of file diff --git a/WindowsShell/StackMCAAutopanoOutput.cmd b/WindowsShell/StackMCAAutopanoOutput.cmd new file mode 100644 index 0000000..6586c88 --- /dev/null +++ b/WindowsShell/StackMCAAutopanoOutput.cmd @@ -0,0 +1,4 @@ +@echo off +cls +Rscript C:\Dropbox\Software\Scripts\r\stackMCAbandsAsExportedFromAutopano_cmd.R %* +pause \ No newline at end of file diff --git a/WindowsShell/ToASCII.cmd b/WindowsShell/ToASCII.cmd new file mode 100644 index 0000000..e065e06 --- /dev/null +++ b/WindowsShell/ToASCII.cmd @@ -0,0 +1,3 @@ +@echo off +cls +python C:\Dropbox\Software\Scripts\python\csv2pnr.py %* \ No newline at end of file diff --git a/WindowsShell/makeHardlinkOfFileInCompass710folder.bat b/WindowsShell/makeHardlinkOfFileInCompass710folder.bat new file mode 100644 index 0000000..fa4c381 --- /dev/null +++ b/WindowsShell/makeHardlinkOfFileInCompass710folder.bat @@ -0,0 +1,11 @@ +@echo off +cls +REM The selected inputs names will be used to generate the hardlink on the compass 710 AF Folder +REM +for %%f in (%*) do ( +mklink /H C:\Dropbox\AFebee\compass\710\%%~nxf %%f +echo C:\Dropbox\AFebee\compass\710\%%~nxf +echo %%f +) +echo Finished +pause \ No newline at end of file diff --git a/WindowsShell/makeJunctionInDropbox.bat b/WindowsShell/makeJunctionInDropbox.bat new file mode 100644 index 0000000..13c0e79 --- /dev/null +++ b/WindowsShell/makeJunctionInDropbox.bat @@ -0,0 +1,6 @@ +@echo off +cls +set /p var=Name of the Junction folder to be created in Dropbox/NAS/AF Folder +mklink /J c:\Dropbox\NAS\AF\%var% %1 +echo Finished +pause \ No newline at end of file diff --git a/WindowsShell/remove_thisJunction.bat b/WindowsShell/remove_thisJunction.bat new file mode 100644 index 0000000..2a4d3e8 --- /dev/null +++ b/WindowsShell/remove_thisJunction.bat @@ -0,0 +1,7 @@ +@echo off +cls +echo this folder will be removed if it is empty (Junction) +pause +rmdir %1 +echo Finished +pause \ No newline at end of file diff --git a/batch_subset.pro b/batch_subset.pro new file mode 100644 index 0000000..123e2d3 --- /dev/null +++ b/batch_subset.pro @@ -0,0 +1,14 @@ +; Launch the application +e = ENVI() + +; Open a file +File = FILEPATH('qb_boulder_msi', ROOT_DIR=e.ROOT_DIR, $ + SUBDIRECTORY = ['data']) +Raster = e.OpenRaster(file) + +;coordinates of roi +;MapX, MapY2, MapX2, MapY + +; Define the geographic subset +Subset = ENVISubsetRaster(Raster, SPATIALREF=SpatialRef, $ + SUB_RECT=[MapX, MapY2, MapX2, MapY]) diff --git a/batch_subset.pro.crdownload b/batch_subset.pro.crdownload new file mode 100644 index 0000000..e69de29 diff --git a/excel insert rows macro.txt b/excel insert rows macro.txt new file mode 100644 index 0000000..5043c12 --- /dev/null +++ b/excel insert rows macro.txt @@ -0,0 +1,19 @@ +Sub insertrow() +' insertrow Macro + +Application.ScreenUpdating = True +Dim count As Integer +Dim X As Integer + +For count = 1 To 44 +If ActiveCell.Value <> "" Then +ActiveCell.Offset(1, 0).Select +Range(ActiveCell, ActiveCell.Offset(0, 0)).EntireRow.Insert +ActiveCell.Offset(1, 0).Select +For X = 1 To 1 +Next X +Else +ActiveCell.Offset(1, 0).Range("a1").Select +End If +Next count +End Sub \ No newline at end of file diff --git a/excel table to one row formula.txt b/excel table to one row formula.txt new file mode 100644 index 0000000..10939c1 --- /dev/null +++ b/excel table to one row formula.txt @@ -0,0 +1,3 @@ +=INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1) + +the table name here is MyData \ No newline at end of file diff --git a/kelvin2celsius.pro b/kelvin2celsius.pro new file mode 100644 index 0000000..b628ad4 --- /dev/null +++ b/kelvin2celsius.pro @@ -0,0 +1,35 @@ +pro kelvin2celsius + compile_opt idl2 + + e = ENVI(); Start ENVI. ENVI help code + + CATCH, theError; Establish error handler. + IF theError NE 0 THEN BEGIN;This statement begins the error handler: + Catch, /Cancel + Help, /Last_Message, Output=theErrorMessage + FOR j=0,N_Elements(theErrorMessage)-1 DO BEGIN + Print, theErrorMessage[j] + ENDFOR + RETURN + ENDIF + + ;Pick file dialog: + fileKelvin = DIALOG_PICKFILE(PATH='E:', $ + TITLE='Select image in kelvin units to convert to celsius', FILTER='*.tif') + print,'File: ' + fileKelvin + rasterKelvin = e.OpenRaster(fileKelvin) + ; Convert from kelvin x 100 to celsius + thermal = ((rasterKelvin.GetData(BANDS=0))/100)-273.15 + + ; Determine an output file + outFile = file_dirname(fileKelvin, /MARK_DIRECTORY)+file_basename(fileKelvin, '.tif') + '_c.bsq' + fileThermal = ENVIRaster(thermal, URI=outFile, NBANDS=1) + ;Save file in celsius degrees + ;The header needs to be created + ;We want to use a ROI to crop the image + fileThermal.Save + ;Save to TIF + ;The header needs to be created + outFileTif = file_dirname(fileKelvin, /MARK_DIRECTORY)+file_basename(fileKelvin, '.tif') + '_c.tif' + WRITE_TIFF, outFileTif,fileThermal,/float +end \ No newline at end of file diff --git a/python/autopanoFile_replace-0By-1frames.py b/python/autopanoFile_replace-0By-1frames.py new file mode 100644 index 0000000..a01f85c --- /dev/null +++ b/python/autopanoFile_replace-0By-1frames.py @@ -0,0 +1,32 @@ +##Script para separar el archivo CSV en el formato separado por espacio y con los headers por separado. +import sys, os +import numpy +import re +import fileinput +import shutil +##Leer archivo y remplaza los Frames que terminan en -0.tif con -1.tif +##Para tener el archivo de mosaico autopano con las Ăşltimas 3 bandas +def replace(thefile): + src=thefile #Get the input file name + dst=thefile.replace("-0", "-1") #Copy fila and rename + thefile1=shutil.copy(src, dst) #File to replace + with fileinput.FileInput(thefile1, inplace=True) as file: + for line in file: + print(line.replace("-0.tif", "-1.tif"), end='') + +#Script +for f in sys.argv[1:]: replace(f) + +#######Opening XML files +# from xml.dom import minidom +# Test_file = open('C:/test_file.xml','r') +# xmldoc = minidom.parse(Test_file) + +# Test_file.close() + +# def printNode(node): +# print node +# for child in node.childNodes: +# printNode(child) + +# printNode(xmldoc.documentElement) \ No newline at end of file diff --git a/python/createFolderIfDoesntExists_hardcoded.py b/python/createFolderIfDoesntExists_hardcoded.py new file mode 100644 index 0000000..4d165e1 --- /dev/null +++ b/python/createFolderIfDoesntExists_hardcoded.py @@ -0,0 +1,26 @@ +import arcpy +from os.path import exists, join +from os import makedirs +#Folder which will be checked if exists +dates= ['160505','160509','160514','160520','160525'] +img= 'm' +d= ['msk','ndvi'] +drive_path= 'G:\\AD15_16' + +def checkCreateFolder(f): + print("path to check: " + str(f)) + #Method to Create folder if it doesn't exist + try: + if arcpy.os.path.exists(f): + print('exists') + else: + arcpy.os.makedirs(f) + print('created') + except: + print('error') + +#Iterate method to several dates +for date in dates: + for i in d: + folder = arcpy.os.path.join(drive_path,date,img,i) + checkCreateFolder(folder) \ No newline at end of file diff --git a/python/csv2txt_space_delimited_HEADERSCMD.py b/python/csv2txt_space_delimited_HEADERSCMD.py new file mode 100644 index 0000000..90ae12c --- /dev/null +++ b/python/csv2txt_space_delimited_HEADERSCMD.py @@ -0,0 +1,33 @@ +##Script para separar el archivo CSV en el formato separado por espacio y con los headers por separado. +import sys, os +import numpy +import re +##Leer archivo +def toPNR(thefile): + with open(thefile, 'rb') as f: + contents=numpy.genfromtxt(f,delimiter=',',dtype=None,names=True) + headers = contents.dtype.names + print ('headers: {} '.format(headers)) + #print ('input file {}'.format(thefile)) + #print ('file {}'.format(str(contents))) + basename = os.path.basename(thefile) + print ('input basename {}'.format(basename)) + name =os.path.splitext(basename)[0] + #Salvar datos con la extension . txt + saveFile = os.path.join(os.getcwd(),name+'.txt') + expr = re.compile("^b'|'$") #expresion + with open(saveFile, 'w') as spaceFile: + for i,line in enumerate(contents): #archivos con 1 solo registro? + for item in line: + #escribir linea y quitar los indicadores de tipo de dato "byte" + spaceFile.write('%-25s' % (re.sub(expr, "", str(item)))) + #escribir nueva linea excepto al final + if i!=(len(contents)-1): spaceFile.write('\n') + #Salvar headers con la extension . pnr + saveHeaders = os.path.join(os.getcwd(),name+'_HEADERS.txt') + with open(saveHeaders, 'w') as spaceFile: + for item in headers: + spaceFile.write('%-25s' % (item)) + +#Script +for f in sys.argv[1:]: toPNR(f) diff --git a/python/polygonbisector2wayfc.py b/python/polygonbisector2wayfc.py new file mode 100644 index 0000000..022e2bd --- /dev/null +++ b/python/polygonbisector2wayfc.py @@ -0,0 +1,264 @@ +'''------------------------------------------------------------------------------------------- + Tool Name: Polygon Bisector + Source Name: polygonbisector.py + Version: ArcGIS 10.0 + Author: ESRI, Inc. + Required Arguments: + Input Features (Feature Layer) + Output Feature Class (Feature Class) + Optional Arguments: + Axis (X|Y) + Group Field(s) (Field) + Acceptable Error Percent (Double) + + Description: Computes a line that bisects, or divides in half, a polygon area along a line + of constant latitude or longitude. Half of each input polygon's area will be + on either side of the bisecting line. +----------------------------------------------------------------------------------------------''' + +# Import system modules +import arcpy +import os +import sys +import math + +# Main function, all functions run in GravityModel +def PolygonBisector(in_features, out_fc, axis="x", groupfields=[], error=0.001): + # Error if sufficient license is not available + if arcpy.ProductInfo().lower() not in ['arcinfo']: + arcpy.AddError("An ArcInfo/Advanced license is required.") + sys.exit() + + # Set geoprocessing environments + arcpy.env.overwriteOutput = True + arcpy.env.qualifiedFieldNames = False + + shapefield = arcpy.Describe(in_features).shapeFieldName + rounder = GetRounder(in_features) + + # If group fields are specified, dissolve by them + if groupfields: + in_features = arcpy.management.Dissolve(in_features, "in_memory/grouped", groupfields) + else: + groupfields = [arcpy.Describe(in_features).OIDFieldName] + fields = [shapefield] + groupfields + + # Create output feature class and set up cursor + icur = irow = scur = None + arcpy.management.CreateFeatureclass(os.path.dirname(out_fc), os.path.basename(out_fc), "POLYLINE", "", "", "", arcpy.Describe(in_features).spatialReference) + arcpy.management.AddField(out_fc, "Group_", "TEXT", "", "", "", "Group: {0}".format(", ".join(groupfields))) + icur = arcpy.InsertCursor(out_fc) + scur = arcpy.SearchCursor(in_features, "", "", ";".join(fields)) + count = int(arcpy.management.GetCount(in_features).getOutput(0)) + arcpy.SetProgressor("step", "Processing polygons...", 0, count, 1) + bigi = 1 + + # Begin processing + try: + for row in scur: + minx = miny = float("inf") + maxx = maxy = float("-inf") + totalarea = 0 + feat = row.getValue(shapefield) + totalarea = row.getValue(shapefield).area + group = [] + for field in groupfields: + group.append(str(row.getValue(field))) + partnum = 0 + # Get the min and max X and Y + for part in feat: + for point in feat.getPart(partnum): + if point: + minx = point.X if point.X < minx else minx + miny = point.Y if point.Y < miny else miny + maxx = point.X if point.X > maxx else maxx + maxy = point.Y if point.Y > maxy else maxy + partnum += 1 + + # Process the polygon + # Some variables + conditionmet = False + difference = 0 + lastdifference = float("inf") + differences = {} + itys = {} + i = 1 + strike = 0 + + # The starting bisector (half the distance from min to max) + if axis == "x": + ity = (miny + maxy)/2.0 + else: + ity = (minx + maxx)/2.0 + + while not conditionmet: + # Construct a line through the middle + if axis == "x": + line = MakeBisector(minx, maxx, ity, in_features, axis) + else: + line = MakeBisector(miny, maxy, ity, in_features, axis) + # The FeatureToPolygon function does not except a geometry object, so make a temporary feature class + templine = arcpy.management.CopyFeatures(line, "in_memory/templine") + temppoly = arcpy.management.CopyFeatures(feat, "in_memory/temppoly") + # Intersect then Feature To Polygon + bisected = arcpy.management.FeatureToPolygon([temppoly, templine], "in_memory/bisected") + clip = arcpy.analysis.Clip(bisected, in_features, "in_memory/clip") + + # Group bisected polygons according to above or below the bisector + arcpy.management.AddField(clip, "FLAG", "SHORT") + ucur = arcpy.UpdateCursor(clip, "", "") + flag = 0 + try: + for urow in ucur: + ufeat = urow.getValue(arcpy.Describe(clip).shapeFieldName) + partnum = 0 + for upart in ufeat: + for upoint in ufeat.getPart(partnum): + if upoint: + if axis == "x": + if round(upoint.Y, rounder) > round(ity, rounder): + flag = 1 + break + elif round(upoint.Y, rounder) < round(ity, rounder): + flag = -1 + break + else: + if round(upoint.X, rounder) > round(ity, rounder): + flag = 1 + break + elif round(upoint.X, rounder) < round(ity, rounder): + flag = -1 + break + partnum += 1 + urow.setValue("FLAG", flag) + ucur.updateRow(urow) + except: + raise + finally: + if ucur: + del ucur + + # Check if the areas are halved + dissolve = arcpy.management.Dissolve(clip, "in_memory/dissolve", "FLAG") + scur2 = arcpy.SearchCursor(dissolve) + try: + for row2 in scur2: + firstarea = row2.getValue(arcpy.Describe(dissolve).shapeFieldName).area + firstflag = row2.getValue("FLAG") + break + except: + raise + finally: + if scur2: + del scur2 + + # ################################################################# + # Modify the Y of the line (move it up or down) to resize the split + # ################################################################# + difference = abs(firstarea - (totalarea/2.0)) + differences[i] = difference + itys[i] = ity + print round(100*(difference/(totalarea/2.0)),5) + #arcpy.AddWarning(round(100*(difference/(totalarea/2.0)),5)) + # Stop if tolerance is achieved + if (difference/(totalarea/2.0))*100 <= error: + conditionmet = True + break + # Moving the line in the wrong direction? due to coordinate system origins or over-compensation + if difference > lastdifference: + firstflag = firstflag*-1.0 + # If we're not improving + if abs(difference) > min(differences.values()): + strike+=1 + # Or if the same values keep appearing + if differences.values().count(difference) > 3 or strike >=3: + arcpy.AddWarning("Tolerance could not be achieved. Output will be the closest possible.") + # Reconstruct the best line + if axis == "x": + line = MakeBisector(minx, maxx, itys[min(differences,key = lambda a: differences.get(a))], in_features, axis) + else: + line = MakeBisector(miny, maxy, itys[min(differences,key = lambda a: differences.get(a))], in_features, axis) + break + # Otherwise move the bisector so that the areas will be more evenly split + else: + if firstflag == 1: + if axis == "x": + ity = ((ity-miny)/((totalarea/2.0)/firstarea)) + miny + else: + ity = ((ity-minx)/((totalarea/2.0)/firstarea)) + minx + elif firstflag == -1: + if axis == "x": + ity = ((ity-miny)*math.sqrt((totalarea/2.0)/firstarea)) + miny + else: + ity = ((ity-minx)*math.sqrt((totalarea/2.0)/firstarea)) + minx + lastdifference = difference + i +=1 + irow = icur.newRow() + irow.setValue(arcpy.Describe(out_fc).shapeFieldName, line) + irow.setValue("Group_", ", ".join(group)) + icur.insertRow(irow) + arcpy.SetProgressorPosition() + arcpy.AddMessage("{0}/{1}".format(bigi, count)) + bigi +=1 + + except: + if arcpy.Exists(out_fc): + arcpy.management.Delete(out_fc) + raise + finally: + if scur: + del scur + if icur: + del icur + if irow: + del irow + for data in ["in_memory/grouped", temppoly, templine, clip, bisected, dissolve]: + if data: + try: + arcpy.management.Delete(data) + except: + "" + +def MakeBisector(min,max,constant, templatefc, axis): + if axis == "x": + array = arcpy.Array() + array.add(arcpy.Point(min, constant)) + array.add(arcpy.Point(max, constant)) + else: + array = arcpy.Array() + array.add(arcpy.Point(constant, min)) + array.add(arcpy.Point(constant, max)) + line = arcpy.Polyline(array, arcpy.Describe(templatefc).spatialReference) + return line + +def GetRounder(in_features): + try: + unit = arcpy.Describe(in_features).spatialReference.linearUnitName.lower() + except: + unit = "dd" + if unit.find("foot") > -1: + rounder = 1 + elif unit.find("kilo") > -1: + rounder = 3 + elif unit.find("meter") > -1: + rounder = 1 + elif unit.find("mile") > -1: + rounder = 3 + elif unit.find("dd") > -1: + rounder = 5 + else: + rounder = 3 + return rounder + +# Run the script +if __name__ == '__main__': + # Get Parameters + in_features = arcpy.GetParameterAsText(0) or r"C:\PolygonBisector\Data\Sample.gdb\Poly" + out_fc = arcpy.GetParameterAsText(1) or r"C:\PolygonBisector\Data\Sample.gdb\Poly_xbisector2" + axis = arcpy.GetParameterAsText(2).lower() or "x" + groupfields = arcpy.GetParameterAsText(3).split(";") if arcpy.GetParameterAsText(3) else [] + error = float(arcpy.GetParameter(4)) if arcpy.GetParameter(4) else 0.001 + + # Run the main script + PolygonBisector(in_features, out_fc, axis, groupfields, error) + print "finished" diff --git a/python/pycharm/.idea/misc.xml b/python/pycharm/.idea/misc.xml new file mode 100644 index 0000000..3c79a6a --- /dev/null +++ b/python/pycharm/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/python/pycharm/.idea/modules.xml b/python/pycharm/.idea/modules.xml new file mode 100644 index 0000000..24b1219 --- /dev/null +++ b/python/pycharm/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/python/pycharm/.idea/pycharm.iml b/python/pycharm/.idea/pycharm.iml new file mode 100644 index 0000000..6711606 --- /dev/null +++ b/python/pycharm/.idea/pycharm.iml @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/python/pycharm/.idea/workspace.xml b/python/pycharm/.idea/workspace.xml new file mode 100644 index 0000000..6fe3853 --- /dev/null +++ b/python/pycharm/.idea/workspace.xml @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1477349674863 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/python/pycharm/calendario.html b/python/pycharm/calendario.html new file mode 100644 index 0000000..e69de29 diff --git a/python/pycharm/dataManager.xml b/python/pycharm/dataManager.xml new file mode 100644 index 0000000..3d36c49 --- /dev/null +++ b/python/pycharm/dataManager.xml @@ -0,0 +1,212 @@ + + + + +Empire Burlesque +Bob Dylan +USA +Columbia +10.90 +1985 + + +Hide your heart +Bonnie Tyler +UK +CBS Records +9.90 +1988 + + +Greatest Hits +Dolly Parton +USA +RCA +9.90 +1982 + + +Still got the blues +Gary Moore +UK +Virgin records +10.20 +1990 + + +Eros +Eros Ramazzotti +EU +BMG +9.90 +1997 + + +One night only +Bee Gees +UK +Polydor +10.90 +1998 + + +Sylvias Mother +Dr.Hook +UK +CBS +8.10 +1973 + + +Maggie May +Rod Stewart +UK +Pickwick +8.50 +1990 + + +Romanza +Andrea Bocelli +EU +Polydor +10.80 +1996 + + +When a man loves a woman +Percy Sledge +USA +Atlantic +8.70 +1987 + + +Black angel +Savage Rose +EU +Mega +10.90 +1995 + + +1999 Grammy Nominees +Many +USA +Grammy +10.20 +1999 + + +For the good times +Kenny Rogers +UK +Mucik Master +8.70 +1995 + + +Big Willie style +Will Smith +USA +Columbia +9.90 +1997 + + +Tupelo Honey +Van Morrison +UK +Polydor +8.20 +1971 + + +Soulsville +Jorn Hoel +Norway +WEA +7.90 +1996 + + +The very best of +Cat Stevens +UK +Island +8.90 +1990 + + +Stop +Sam Brown +UK +A and M +8.90 +1988 + + +Bridge of Spies +T`Pau +UK +Siren +7.90 +1987 + + +Private Dancer +Tina Turner +UK +Capitol +8.90 +1983 + + +Midt om natten +Kim Larsen +EU +Medley +7.80 +1983 + + +Pavarotti Gala Concert +Luciano Pavarotti +UK +DECCA +9.90 +1991 + + +The dock of the bay +Otis Redding +USA +Atlantic +7.90 +1987 + + +Picture book +Simply Red +EU +Elektra +7.20 +1985 + + +Red +The Communards +UK +London +7.80 +1987 + + +Unchain my heart +Joe Cocker +USA +EMI +8.20 +1987 + + \ No newline at end of file diff --git a/python/pycharm/dataManager.xsl b/python/pycharm/dataManager.xsl new file mode 100644 index 0000000..024b500 --- /dev/null +++ b/python/pycharm/dataManager.xsl @@ -0,0 +1,34 @@ + + + + + + + +

    My CD Collection

    + + + + + + +

    + + +

    +
    + + + Title: + +
    +
    + + + Artist: + +
    +
    + + \ No newline at end of file diff --git a/python/pycharm/loadCalendar.php b/python/pycharm/loadCalendar.php new file mode 100644 index 0000000..4f0c4aa --- /dev/null +++ b/python/pycharm/loadCalendar.php @@ -0,0 +1,24 @@ + + + + +load('dataManager.xml'); + +// Load XSL file +$xsl = new DOMDocument; +$xsl->load('dataManager.xsl'); + +// Configure the transformer +$proc = new XSLTProcessor; + +// Attach the xsl rules +$proc->importStyleSheet($xsl); + +echo $proc->transformToXML($xml); +?> + + + \ No newline at end of file diff --git a/python/replaceCerosByOneMultispecPano.py b/python/replaceCerosByOneMultispecPano.py new file mode 100644 index 0000000..210e724 --- /dev/null +++ b/python/replaceCerosByOneMultispecPano.py @@ -0,0 +1,33 @@ +import fileinput, sys, os + +#Replace text in file +def replaceInFile(file,searchText,replaceText): + for line in fileinput.input(file, inplace=True): + line = line.replace(searchText, replaceText) + # sys.stdout is redirected to the file + sys.stdout.write(line) +#Copy the file +def copyFile(inputFile, copy): + #Copy the file + with open(inputFile) as f: + with open(copy, "w") as f1: + for line in f: + f1.write(line) + +################ INPUTS ###################### +############################################## +date="160204" +file = "m160204bw8-0.pano" # make if finish in "-0.pano" + +folder=os.path.normpath(r"G:/AD15_16/"+date+"/m/pno/") +############################################## +fileToSearch=os.path.join(folder,file) +textToSearch="-0.tif" +textToReplace="-1.tif" +copiedfile=fileToSearch.replace("-0.pano", "-1.pano") + +print ("start") +#Copy the file +copyFile(fileToSearch, copiedfile) +#Replace +replaceInFile(copiedfile,textToSearch,textToReplace) diff --git a/python/stackMCAPairImagesFolder.py b/python/stackMCAPairImagesFolder.py new file mode 100644 index 0000000..de6df83 --- /dev/null +++ b/python/stackMCAPairImagesFolder.py @@ -0,0 +1,47 @@ +#Script to stack the Multispectra bands from the Autopano mosaic +#Names should be like: +# m[date][trial]pno-0.tif +# m[date][trial]pno-1.tif +# e.g. m160204bw8pno-1.tif +# The required input is: date and trial and the working directory +#This is assuming the name formatting of the greenplane +#0. First step : load packages +#install.packages(c("rgdal","raster")) +require(raster) +require(rgdal) +library(stringr) + +#Function multibandStack +multibandStack <- function(imgBasename, wd) +{ + tryCatch({ + setwd(wd) + #Input file with bands 1,2,3 + img_basename<-imgBasename + img_0<-paste(img_basename,'-0.tif',sep = "") + imported_raster_0=raster(img_0) + #Input file with bands 4,5,6 + img_1<-paste(img_basename,'-1.tif',sep = "") + imported_raster_1=raster(img_1) + #plot(imported_raster_0) #see image just to test + #stack 6 bands in one pile + img=stack(list(img_0,img_1)) + #Write the tif to disk + writeRaster(img, file=paste(imgBasename,".tif",sep = ""),datatype='INT2U',format="GTiff",overwrite=FALSE) + }) +} +########### START ########################## +#Working directory +wd="G:\\AD15_16\\160525\\m\\rfl" +setwd(wd) + +imgFilesList <-list.files(pattern="\\.tif$") +##Next the names of the images, collapse to get one entry per pair(-0.tif and -1.tif) +#imgsPairNames <- unique(str_extract(imgFilesList, "TTC[:digit:]{5}")) #For individual frames +imgsPairNames <- unique(str_extract(imgFilesList, ".{0,8}")) #For mosaics {0,13} +## Sets the pattern of name in files to be stacked +for (i in imgsPairNames){ + print(paste("Image:",i)) + multibandStack(i, wd) +} +paste(print("Finished merging",toString(length(imgsPairNames)),"images")) \ No newline at end of file diff --git a/r/.Rhistory b/r/.Rhistory new file mode 100644 index 0000000..2aaacaf --- /dev/null +++ b/r/.Rhistory @@ -0,0 +1,512 @@ +#add date info in column +#For every sampling date +for (s in 1:samplings) { +df.list[[s]]<-df.list[[s]][df.list[[s]]$id<=maxsp,] #Exclude points above 40 FOR ESCAMILLA etc +sPoints = length(df.list[[s]]$id) #total samples per date +for (i in 1:sPoints) { +print(paste("sampling",sheets[s],"sample",df.list[[s]]$id[i])) +df.list[[s]]$date[i] <- as.character(sheets[s]) #add date info in column +} +} +return (list(df.list,sheets)) +} +##Replace something in a column of a df list +replaceInCol <- function(df_list,col,txt_orig,txt_replace){ +r_df_list<-df_list +for(i in 1:length(df_list)){ +print(i) +l <- length (r_df_list[[i]][,col]) +for(j in 1:l){ +print(j) +print(df_list[[i]][j,col]) +r_df_list[[i]][j,col] <- gsub(txt_orig, txt_replace, df_list[[i]][j,col]) +} +} +return(r_df_list) +} +################################# EXECUTE SCRIPT +############# INPUTS +file="C://Dropbox//data//AD//AD-STARS//ros//ad_ros_ceptometer.xlsx" +trial <- "ros" +whatData <- "par" #What does this data represent +col_names<-c('id', +'par', +'par_time', +'par_ref', +'ref_time') +colTypes <- c('numeric', 'numeric', 'character','numeric','character') +maxsp<-25 +##Edit next +##getMoistreFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsamplepointID) +mData <- getCeptometerFromExcel(file, 2,5,26,colTypes,col_names,maxsp) #get the moisture data[[1]] and sheetnames[[2]] +############# END INPUTS +##Resulting data +dates<-mData[[2]] +mData <-mData[[1]] +##Replace the data "wrong date" in column 3 to keep the time only +#mData <- replaceInCol(mData,5,"1899-12-31 ","") +##Connecto to local Database +mydb = dbConnect(MySQL(), user='root', password='cimmyt', dbname='ac_stars', host='localhost') +#dbListFields(mydb, 'ros') #List fields on table +#Save moisture data to DB +for(i in 1:length(dates)){ +##Check if table already exists... +tExists = dbSendQuery(mydb, paste("SHOW TABLES LIKE '", dates[[i]],"'",sep="")) ##ask if the table exists +data = dbFetch(tExists, n=-1) #get results. The n=-1 is to get all the results, can be used to set a MAX +if(length(row.names(data))==0){ #If the table doesnt exists +print(dates[[i]]) +#withe df to DB +dbWriteTable(mydb, value = mData[[i]], name = paste(trial,dates[[i]],whatData,sep=""), row.names = FALSE) #THere is an issue vs append and autoincrement index +} +} +require(rgdal) +require(raster) +get_roi <- function(trial_roi) {readOGR(dsn=fgdb,layer=trial_roi)} +fgdb = "C:\\Dropbox\\data\\AE\\physio\\ae_fisio.gdb" +roi <- get_roi("hap__ae__bry") +dsm <- raster("G:/AE/161026/r161026fis/r161026hap/3_dsm_ortho/1_dsm/r161026hap_dsm.tif") +r_crop<-crop(dsm, extent(roi), snap="out") +roi +dsm +plot(dsm) +install.packages("shiny") +require(shiny) +runExample("01_hello") +setwd("C:/Dropbox/Software/Scripts/r") +runApp("shiny_extractPhysio") +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio',display.mode = "showcase") +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +install.packages(c("maps", "mapproj")) +percent_map <- function(var, color, legend.title, min = 0, max = 100) { +# generate vector of fill colors for map +shades <- colorRampPalette(c("white", color))(100) +# constrain gradient to percents that occur between min and max +var <- pmax(var, min) +var <- pmin(var, max) +percents <- as.integer(cut(var, 100, +include.lowest = TRUE, ordered = TRUE)) +fills <- shades[percents] +# plot choropleth map +map("county", fill = TRUE, col = fills, +resolution = 0, lty = 0, projection = "polyconic", +myborder = 0, mar = c(0,0,0,0)) +# overlay state borders +map("state", col = "white", fill = FALSE, add = TRUE, +lty = 1, lwd = 1, projection = "polyconic", +myborder = 0, mar = c(0,0,0,0)) +# add a legend +inc <- (max - min) / 4 +legend.text <- c(paste0(min, " % or less"), +paste0(min + inc, " %"), +paste0(min + 2 * inc, " %"), +paste0(min + 3 * inc, " %"), +paste0(max, " % or more")) +legend("bottomleft", +legend = legend.text, +fill = shades[c(1, 25, 50, 75, 100)], +title = legend.title) +} +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +runApp('shiny_extractPhysio') +library(reshape2) +library(plyr) +df +myFile = file.path("C:","Dropbox", "data","AE","ae_stars","ae_data_extract.csv", fsep = .Platform$file.sep) +dat = read.csv(myFile, stringsAsFactors = FALSE) +date <- dat$date +#Formatear como fechas las fechas +date <- as.Date(as.character(date),format = "%y%m%d") +# range_date <- range(date) +# all_dates <- seq(range_date[1],range_date[2],1) +# length(all_dates) +# length(date) +# which(all_dates %in% date) +#Vector lĂłgico checando cuales fechas son en enero +if_enero <- date >= as.Date("2017-01-01") & date <= as.Date("2017-1-31") +#porcentaje de las mediciones que fueron hechas en enero +#Todas / las de enero +sum(if_enero)/length(if_enero) +#subset las fechas que pertenecen a enero en base al vector lĂłgico +mediciones_enero <- date [if_enero] +#plot(date, 1:13, type = "l") ## ejemplo de plot lĂ­nea con fecha de mediciones +#### Otro tema +## Data frames +##CREate one +df = data.frame( +num = 1:4, +lower = c("a","b","c","d"), +upper = c("A","B","C","D"), stringsAsFactors = FALSE) +##Examine the object +str(df) +##Subset a column of the data Frame, but always keep the data frame class +df[ ,3, drop = FALSE] +#Subset with another method, including a conditional, and the names of columns +df[df$lower %in% c("a","d"), c("lower","upper")] ##x %in% table +# Exclude rows that are not complete +df[complete.cases(df),] +##Create a column based on a specific value of a cell (row) +df$word[df$num == 2] <- "two" +## create another column mixing the others +df$mix <- paste(df$num,df$lower,df$upper, sep="") +##Use of ifElse +ifelse(df >= 2, ">2", "menor") +"a" > 2 +as.numeric("a") +#####Another subject +###Apply family +#tapply : apply a function across subsets +#data +df$categories <- c("1","1","2","2") +#Get the mean vakue of a column, by groups +#An array is returned +df$mean <- tapply(df$num,df$categories, mean) ##tapply(values, categories, function) +#Eliminate that just created column from the df "mean" +df <- df[, which(!(colnames(df) %in% "mean"))] #From the logical vector we get the indexes of the columns not named "mean" +#Check for missing values AKA NA's, an array is returned with its names +na_values <- tapply(df$word, df$upper, function (x) any(is.na(x))) +#columns with NA values +names(na_values[na_values]) +##use the function apply. It can apply across rows or columns the functions +# parameter with value 1 or 2 refers if it should aggregate rows or columns +#Get the max from num and categories column +apply( df[, c("num","categories")], 2, max, na.rm =TRUE) +#paste values in the row +apply(df, 1, paste) +df +long_table <- melt(df, id.vars ="num") +long_table +dcast(long_table, ... ~ variable) +df +dcast(long_table, var1 ~ variable) +dcast(long_table, num+value ~ variable) +dcast(long_table, value ~ variable) +dcast(long_table, value+num ~ variable) +dcast(long_table, num ~ variable) +df = dcast(long_table, num ~ variable) +df +melt(df, id.vars =c("num","categories") +) +df <- dcast(long_table, num ~ variable) +df +long_table <- melt(df, id.vars =c("num","categories")) +df <- dcast(long_table, num ~ variable) +df +df <- dcast(long_table, ... ~ variable) +df +means_df <- dcast(long_table, categories ~ variable, mean) +means_df <- dcast(long_table, categories ~ variable, mean, na.rm = TRUE) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num)) +df_summ +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num), +mix_nonums = gsub("","",mix,fixed = TRUE)) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num), +mix_nonums = gsub("[:alpha:]","",mix,fixed = FALSE)) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num), +mix_nonums = gsub("[a-z]","",mix,fixed = FALSE)) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num), +mix_nonums = gsub("a","",mix,fixed = FALSE)) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num)) +df_summ +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num)) +df_summ +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix)) +df_summ +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +other = paste(mix)) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +other = c(mix)) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +other = mix) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +other = mix[which.max(mix)]) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +NAs_index_word = which(is.na(word))) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +NAs_index_word = which(word[is.na(word)])) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +NAs_index_word = which(is.na(word))) +is.na(df$word) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +NAs_index_word = which(is.na(df$word))) +is.na(df$word) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +NAs_index_word = which(!(is.na(word))) +df_summ +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +NAs_index_word = which(!(is.na(word)))) +!(is.na(word)) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix)) +df_summ +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +word_something = word[1]) +df_summ +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +word_something = word[2]) +df_summ +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +word_something = word[2], +sum_or_mean <- ifelse(categories == 1, sum(num),mean(num))) +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +word_something = word[2], +sum_or_mean <- ifelse(categories[1] == 1, sum(num),mean(num))) +df_summ +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +word_ish = word[2], +sum_or_mean <- ifelse(categories[1] == 1, sum(num),mean(num))) +df_summ +df_summ <- ddply(df, .(categories), summarize, +nums_mean = mean(num), +nums_max = max(num*num), +l = length(mix), +word_ish = word[2], +sum_mean <- ifelse(categories[1] == 1, sum(num),mean(num))) +df_summ +df_summ <- ddply(df, .(categories), summarize, +nums_max = max(num*num), +l = length(mix), +word_ish = word[2], +sum_mean <- ifelse(categories[1] == 1, sum(num),mean(num))) +df_summ +season = rep(c("winter","spring","summer","fall"), each = 3) +season +combined = join(df, +df, +by = "num", type = "left", match="all") +combined +combined = join(df, +df_summ, +by = "categories", type = "left", match="all") +combined +combined = join(df, +df_summ, +by = "categories", type = "right", match="all") +combined +combined = join(df, +df_summ, +by = "categories", type = "left", match="all") +matrix(1:9,ncol=3) +matrix(1:9,ncol=3, byrow=TRUE) +m <- matrix(1:9,ncol=3, byrow=TRUE) +m +matrix(1:8,ncol=3, byrow=TRUE) +m <- matrix(1:8,ncol=4, byrow=TRUE) +m +matrix(12:1, ncol = 4, nrow = 2) +matrix(12:1, ncol = 4) +matrix(12:1, ncol = 8) +matrix(12:1, ncol = 8, nrow = 5) +mx <- matrix(12:1, ncol = 8, nrow = 5) +mx +ghdfg +length(m) +dim(m) #get dimensions +m +m <- matrix(1:8,ncol=4, byrow=TRUE) +length(m) #Get lenght +nrow(m) #Get num of rows +ncol(m) #Get num of columns +dim(m) #get dimensions +as.vector(x) +as.vector(m) +as.vector(m) # get as linear vector ordered by columns +m[2, , drop = FALSE] +class(m) +matrix(1:4, nrow = 2) +m[2:3, 1:2] +m <- matrix(1:9,ncol=3, byrow=TRUE) +m +m[2:3, 1:2] +m[2:3, 1:2] = matrix(22:19, nrow = 2) +m +m[2:3, 1:2] = matrix(-1:-4, nrow = 2) +m +colMeans(m) +apply(m,2,mean) +a = array(1:24, c(2,2,3)) +a +a = array(1:24, c(2,2,3,2)) +a +a = array(1:24, c(2,2,3,2,3)) +a +a = array(1:24, c(2,2,3,2)) +a +a = array(1:24, c(2,2,3)) +a +time_array = array(NA, c(12,4,7,24))##Array that can store months of year, weeks, days, and hours of each day. Idea taken from Quora ask. +time_array +time_array = array(NA, c(4,7,12,24))##Array that can store months of year, weeks, days, and hours of each day. Idea taken from Quora ask. +time_array +time_array = array(NA, c(4,12,7,24))##Array that can store months of year, weeks, days, and hours of each day. Idea taken from Quora ask. +time_array +time_array = array(NA, c(12,4,7,24))##Array that can store months of year, weeks, days, and hours of each day. Idea taken from Quora ask. +time_array +colnames(time_array) <- c(rep("a",each = 12)) +dimnames(time_array) +rep("a",each = 12) +colnames(time_array) <- c(rep("a",each = 4)) +time_array +colnames(time_array) <- c("semana1","semana2", "semana3","semana4") +time_array +rownames(time_array) <- c(1:12) +time_array +lapply(1:12,paste, sep="_") +lapply(1:12,paste, "mes") +lapply(1:12,paste, "mes", sep="") +rownames(time_array) <- lapply(1:12,paste, "mes", sep="") +time_array +rownames(time_array) <- lapply("mes",paste, 1:12, sep="") +lapply("mes",paste, 1:12, sep="") +lapply("mes",paste, 1:12, sep=" ") +time_array +dimnames(time_array)[[3]] +dimnames(time_array) +dimnames(time_array)[[3]] <- c("Lun", "Mar", "Mier","Jue","sab","dom") +dimnames(time_array)[[3]] <- c("Lun", "Mar", "Mier","Jue","vier", "sab","dom") +dimnames(time_array)[[3]] <- c("Lun", "Mar", "Mier","Jue","vier", "sab","dom") #Set names for the 3 dimension +time_array +dimnames(time_array)[[4]] <- lapply(1:12,paste, "hora", sep="") #Set names for the 4th dimension +dimnames(time_array)[[4]] <- lapply(1:24,paste, "hora", sep="") #Set names for the 4th dimension +time_array +time_array = array(NA, c(7,24,4,12))##Array that can store values for months of year, weeks, days, and hours of each day. Idea taken from Quora ask. +time_array +time_array = array(NA, c(24,7,4,12))##Array that can store values for months of year, weeks, days, and hours of each day. Idea taken from Quora ask. +time_array +rownames(time_array) <- lapply(1:24,paste, "hora", sep="") #set rownames +colnames(time_array) <- c("Lun", "Mar", "Mier","Jue","vier", "sab","dom") #set column names +dimnames(time_array)[[3]] <- c("semana1","semana2", "semana3","semana4") #Set names for the 3 dimension +dimnames(time_array)[[4]] <- lapply(1:12,paste, "mes", sep="") +time_array +r1 = raster(m) +library(raster) +r1 = raster(m) +r1 +plot(m) +plot(r1) +stack(r1, r1) +stack(r1, r1) +s <- stack(r1, r1) +s +s[[1:2]] +writeRaster(s,"C:\\vuelos\\temp\\img.tif", +format = "Gtiff", +overwrite = FALSE) +writeRaster(s,"C:\\vuelos\\temp\\img.tif", +format = "tiff", +overwrite = FALSE) +writeRaster(s,"C:\\vuelos\\temp\\img.tif", +format = "Gtif", +overwrite = FALSE) +nrows(s) +nrow(s) +nlayers(l_00) ## Get number of bands +nlayers(s) ## Get number of bands +dims(s) ##get dimensions +dim(s) ##get dimensions +res(s) ## get the spatial resolution +extent(s) ## get the bounds +proj4string(s) +CRS(proj4string(s)) ## Get the spatial reference, as a Coordinate Reference System Class CRS +names(s) #get the band names +rownames(time_array) <- paste("hora", 1:24, sep = "_") #set rownames +time_array +rownames(time_array) <- paste(1:24,":00", sep = "") +time_array +dimnames(time_array)[[4]] <- paste("mes",1:12, sep = "_") #Set names for the 4th dimension +time_array +names (s) <- c("band1","band2") +names (s) +writeRaster(s,"C:\\vuelos\\temp\\img.tif", +format = "GTiff", +overwrite = FALSE) +proj4string(s) <- CRS("+proj=utm +zone=36 +ellps=WGS84 +units=m +no_defs") +writeRaster(s,"C:\\vuelos\\temp\\img.tif", +format = "GTiff", +overwrite = FALSE) +writeRaster(s,"C:\\vuelos\\temp\\img.tif", +format = "GTiff", +overwrite = FALSE) +hist(s) diff --git a/r/EM38cleaning.R b/r/EM38cleaning.R new file mode 100644 index 0000000..239b3d4 --- /dev/null +++ b/r/EM38cleaning.R @@ -0,0 +1,118 @@ +####### +##Clean EM38 data: normalize and Standardize +## Input format: CSV file with columns: "x_utm" "y_utm" "elev" "CV_1" "CV_05" "IV_1" "IV_05" +####### + +#Libraries used +library(pastecs) +library(tools) + +##INPUTS########################################################### +##Set working drectory +setwd("C:\\Dropbox\\data\\AF\\bw\\em38\\blockD171121\\raw") +##Input file CSV +name_file_data<- "bw_d_171121_withoutTurns_cleaned.csv" + +##Script########################################################### +basename_file_data <- strsplit(name_file_data, "\\.")[[1]]#name without extension +basename_file_data<-basename_file_data[1] +##Name to store the cleaned data CSV +output_name<- paste(basename_file_data,"_cleaned.csv", sep="") +data<-read.csv(name_file_data, header = TRUE) +#standardize column name +cols <- c('x_utm', 'y_utm', 'CV_1', 'CV_05', 'IV_1', 'IV_05') #without elev +#cols <- c('x_utm', 'y_utm','elev', 'CV_1', 'CV_05', 'IV_1', 'IV_05') #with elev +#cols <- c('x_utm', 'y_utm','CV_1', 'CV_05') #without elev IV nor elev +colnames(data) <- cols +#get statistics for all data +data_stats<-stat.desc(data,basic=TRUE, desc=TRUE, norm=FALSE, p=0.95) +# Values it returns: +#1 nbr.val (the count of values) +#2 nbr.null (the count of null values) +#3 nbr.na (the count of missing values) +#4 min +#5 max +#6 range +#7 sum +#8 median +#9 mean +#10 SE.mean +#11 CI.mean +#12 var +#13 std.dev +# coef.var +# skewness ##need to enable norm = TRUE +# skew.2SE +# kurtosis +# kurt.2SE +# normtest.W +# normtest.p + +### clean CV_1m ### +cv1m_mean<-data_stats$CV_1[9] #Get the mean for the CV at 1m +cv1m_min<-data_stats$CV_1[4] #Get the min for the CV at 1m +cv1m_max<-data_stats$CV_1[5] #Get the max for the CV at 1m +cv1m_std<-data_stats$CV_1[13] #Get the std.dev for the CV at 1m +#Normalize formula:reading - mean / std +for (i in 1:length(data$CV_1)) { + #Normalize CV_1m + data$CV_1_norm[i] <- (data$CV_1[i]-cv1m_mean)/cv1m_std +} + +### clean CV_05m ### +cv05m_mean<-data_stats$CV_05[9] #Get the mean for the CV at 1m +cv05m_min<-data_stats$CV_05[4] #Get the min for the CV at 1m +cv05m_max<-data_stats$CV_05[5] #Get the max for the CV at 1m +cv05m_std<-data_stats$CV_05[13] #Get the std.dev for the CV at 1m +#Normalize formula:reading - mean / std +for (i in 1:length(data$CV_05)) { + #Normalize CV_05m + data$CV_05_norm[i] <- (data$CV_05[i]-cv05m_mean)/cv05m_std +} + +### clean IV_1m ### +iv1m_mean<-data_stats$IV_1[9] #Get the mean for the CV at 1m +iv1m_min<-data_stats$IV_1[4] #Get the min for the CV at 1m +iv1m_max<-data_stats$IV_1[5] #Get the max for the CV at 1m +iv1m_std<-data_stats$IV_1[13] #Get the std.dev for the CV at 1m +#Normalize formula:reading - mean / std +for (i in 1:length(data$IV_1)) { + #Normalize CV_1m + data$IV_1_norm[i] <- (data$IV_1[i]-iv1m_mean)/iv1m_std +} + +### clean IV_05m ### +iv05m_mean<-data_stats$IV_05[9] #Get the mean for the CV at 1m +iv05m_min<-data_stats$IV_05[4] #Get the min for the CV at 1m +iv05m_max<-data_stats$IV_05[5] #Get the max for the CV at 1m +iv05m_std<-data_stats$IV_05[13] #Get the std.dev for the CV at 1m +#Normalize formula:reading - mean / std +for (i in 1:length(data$IV_05)) { + #Normalize CV_05m + data$IV_05_norm[i] <- (data$IV_05[i]-iv05m_mean)/iv05m_std +} + +#keep values of 1m normalization beteen 3 and -3 +data_cleaned1<-subset(data, data$CV_05_norm<=3 & data$CV_05_norm>=-3) +data_cleaned1<-subset(data, data$CV_1_norm<=3 & data$CV_1_norm>=-3) +data_cleaned1<-subset(data, data$IV_05_norm<=3 & data$IV_05_norm>=-3) +data_cleaned1<-subset(data, data$IV_1_norm<=3 & data$IV_1_norm>=-3) + +### Graphics ### +#Graphics to save to PDF +pdf(file=paste("hist",basename_file_data,".pdf", sep="")) +par(mfrow=c(2,1)) +#hist(data$CV_05_norm, main =paste("Histogram data$CV_05_norm"),xlab = "data$CV_05_norm", nclass = 20) +hist(data$CV_05, main =paste("Histogram data$CV_05"),xlab = "data$CV_05", nclass = 20) +hist(data$CV_1, main =paste("Histogram data$CV_1"),xlab = "data$CV_1", nclass = 20) +#hist(data$CV_1_norm, main =paste("Histogram data$CV_1_norm"),xlab = "data$CV_1_norm", nclass = 20) + +#now the normalized ones +hist(data_cleaned1$CV_05, main =paste("Histogram data$CV_05"),xlab = "data_cleaned1$CV_05", nclass = 20) +hist(data_cleaned1$CV_1, main =paste("Histogram data$CV_1"),xlab = "data_cleaned1$CV_1", nclass = 20) +dev.off() +#Finish saving to PDF + +##Write result to text file +data_cleaned1 <- subset(data_cleaned1, select=cols) +write.csv(data_cleaned1, file = output_name,row.names=FALSE) diff --git a/r/JM_Extract_pixel_values_from_raster_firstEdition.R b/r/JM_Extract_pixel_values_from_raster_firstEdition.R new file mode 100644 index 0000000..38a6c7e --- /dev/null +++ b/r/JM_Extract_pixel_values_from_raster_firstEdition.R @@ -0,0 +1,80 @@ +#This procedure use the raster file and shapefile_buffer file to extract the mean pixeles values without outliers into a CSV file +#Author: Jose Manuel Mendoza Reyes +library (sp) +library (raster) +library(rgdal) + +#Select the work directory wich are the raster file and shp +setwd(choose.dir(getwd(), "Selecciona tu archivo")) + +#select the raster file (NDVI or thermal mosaic) +raster <-raster(list.files(pattern = "\\.tif$")) +#select the shapefile (a shp with buffer genereted in Arcgis) +shp <- shapefile(list.files(pattern = "\\.shp$")) + +#plot(raster) +#plot(shp, add= TRUE) + +#Set the name of the outut csv table +name<-list.files(pattern = "\\.shp$") +name<-gsub(".shp", "", name) + + +#Overlap and extract the pixel value in each polygon +pixelval <- extract(raster,shp) + + +#Add the plot name to the pixel value list +names(pixelval)<- shp$Name + +#check the list +#str(pixelval) + +#function to eliminate soil pixels or high temperature values +#NDVI +soil.mask <- function(p){ + p.1 = subset(p,p >0.39) + return(p.1) +} +#TEMPERATURA +# soil.mask <- function(p){ +# p.1 = subset(p,p <6691) +# return(p.1) +# } + +#Apply the mask to the list +massk <- lapply(pixelval,soil.mask) + + +#function to calculate and eliminate outliers +outliers <- function(dat){ +n=2 +a=median(dat) +b=sd(dat) +limitesuperior=(a+n*b) +limiteinferior=(a-n*b) +dat1= subset(dat,dat <= limitesuperior & dat >= limiteinferior) +return(dat1) +} + +#extract the outliers +f.t = lapply(massk,outliers) + + +str(f.t) +#Calculate the mean of the new list without outliers and convert it in a data base +output.table = lapply(f.t,mean) +output.table<-data.frame(names(output.table), unlist(output.table)) + +#add the name of the columns +colnames(output.table)<-c("Plot", "mean_") + +#this step is to average rows with the same name (double plots and bordos) +csv=aggregate(mean_ ~ Plot, output.table, mean) + + +#write the final table +write.csv(csv,paste(name,"_final.csv", sep=""), row.names=FALSE) + + + diff --git a/r/MCAbands_separateBandsIntoIndividualRasters.R b/r/MCAbands_separateBandsIntoIndividualRasters.R new file mode 100644 index 0000000..8393806 --- /dev/null +++ b/r/MCAbands_separateBandsIntoIndividualRasters.R @@ -0,0 +1,61 @@ +#Script to separate the Multispectra bands from the iMapQ processing result that stacks them in 2 rasters of 3 bands. +#Names should be like: +# TTC[name]-0.tif +# TTC[name]-1.tif +# e.g. TTC07016-1.tif +# The required input is: the working directory +#The output is written in the same folder + +#0. First step : load packages +#install.packages(c("rgdal","raster")) +require(raster) +require(rgdal) +library(stringr) + +########### Functions ########################## +#Function multibandUnStack +multibandUnStack <- function(img3Band) +{ + tryCatch({ + ##img3Band <- "TTC07016-0.tif" ## %%%% ! HARDCODED TO TEST + + #Truncate string to Get base name of frame + basename <- substr(toString(img3Band), 1, 8) + #Truncate string to Get if the sufix of the filename is 0 or 1 + sx <- substr(toString(img3Band), 10, 10) + # If it is 0 we will name the bands 1, 2, 3 otherwise 4, 5, 6 + # So fix will be used to use the index to asign the correct bandnumber + fix <- if(sx==0) 0 else 3 + #separate Input file into 3 separate rasters + for (i in 1:3){ + b <- raster(img3Band, band=i) + rSave(b, paste(basename,"-b",i+fix,sep = "")) + } + + ##plot(b1) #see image just to test + + }) +} + +#function to plot save image to disk +rSave <- function(img, name) +{ + tryCatch({ + #Write the tif to disk + writeRaster(img, file=paste(name,".tif",sep = ""),datatype='INT2U',format="GTiff",overwrite=FALSE) + }) +} + +########### START ########################## +#Working directory +wd="G:\\AE\\170531\\m\\rfl" +setwd(wd) +## Sets the pattern of name files to be processed (-0.tif and -1.tif) and process each one +imgFilesList <-list.files(wd, pattern="-{1}0*1*.tif$") +for (i in seq_along(imgFilesList)){ + print(paste("Image:",i,"of",toString(length(imgFilesList)),":",imgFilesList[i])) + multibandUnStack(imgFilesList[i]) +} + +#Notify that it finished +print(paste("Finished merging",toString(length(imgFilesList)),"images")) \ No newline at end of file diff --git a/r/NDVIFromMCA-6Images.R b/r/NDVIFromMCA-6Images.R new file mode 100644 index 0000000..a75307a --- /dev/null +++ b/r/NDVIFromMCA-6Images.R @@ -0,0 +1,42 @@ +#Script to calculate the NDVI from a folder of MCA-6 images BSQ format +#Files should be named as follows: +# [camera(1 char)]yymmdd[AOI(3 char)][imageProcessingStage(3 char)].bsq +#Example: m151216jfxgeo.bsq +# The required input is: the working directory +#0. First step : load packages +#install.packages(c("rgdal","raster")) +require(raster) +require(rgdal) +#NDVI function on a 6 band multispectral image +f_NDVI <- function(r,n) { + (n-r)/(n+r) +} + +#Function multibandStack (folder, nband_red, nband_nir) +nDVIFromMCA6 <- function(wd,red_band=2,nir_band=6) +{ + tryCatch({ + setwd(wd) + #Make a list of all files in the wd + im <- list.files(wd, full.names=TRUE) + #Select the *geo.bsq files + im.bsq <- im[grep("geo.bsq$", im)] + #generate NDVI of all rasters + for (img in im.bsq) { + img="C:/vuelos/temp/ad_nut_MCA/m151216jfxgeo.bsq" #Fixed testing + r_red=raster(img, band=red_band) + r_nir=raster(img, band=nir_band) + NDVI <- f_NDVI(r_red,r_nir) + #plot(NDVI) plot if we want to see it + #Save the NDVI replacing the suffix of the images + writeRaster(NDVI, file=gsub("geo.bsq$", "nvi.tif$", img),datatype='FLT4S', format="GTiff",overwrite=FALSE) + } + }) + +} + +#Working directory +wd = "C:/vuelos/temp/ad_nut_MCA" +#Call NDV maker +n = nDVIFromMCA6(wd,2,6) +print ("Finished generating the NDVI for all the images") diff --git a/r/Plant_height_code.R b/r/Plant_height_code.R new file mode 100644 index 0000000..738b8c1 --- /dev/null +++ b/r/Plant_height_code.R @@ -0,0 +1,143 @@ +#Protocol to evaluate Plant height +#Authors: Jose Manuel Mendoza Reyes and Lorena Gonzalez Perez + +#Coments specific to make it work in obregón marked as #L# + +library (sp) +library (raster) +library(rgdal) +library(data.table) +library(plyr) +library(dplyr) + + +# Load the raster base (DTM) +rasterBase<- raster("G:/AE/161026/r161026fis/r161026hap/3_dsm_ortho/1_dsm/r161026hap_dsm.tif") + +#Select the work directory wich are the raster file and shp +setwd(choose.dir(getwd(), "Selecciona tu archivo")) + +#select the raster file (DSM) +raster <-raster(list.files(pattern = "\\.tif$")) + +#L# raster<- raster("G:/AE/161026/r161026fis/r161026hap/3_dsm_ortho/1_dsm/r161026hap_dsm.tif") + +#Cut the DSM base on the DTM extent +r_crop<-crop(raster, extent(rasterBase), snap="out") +#L# r_crop<-raster + +#Change the spatial resolution of DTM (if it is necessary) +rasrecla <- resample(rasterBase, r_crop, resample='ngb') +#L# rasrecla <- r_crop + +#Geoidal height for the area of interest (checked it on INEGI web) +n=-32.37 + +#Get Geoidal height base on the ellipsoidal height +r_croph <- (r_crop-n) + +#Check that the two raster have the same attributes + +#DTM +show(rasrecla) +#DSM +show(r_croph) + +rest <-function(r1,base){(r1-base)} +plant.height <- rest(r_croph, rasrecla) +#L# plant.height <- rasterBase + +# show(plant.height) +# plot(plant.height) + +#select the shapefile (a shp with buffer genereted in Arcgis) +shp <- shapefile(list.files(pattern = "\\.shp$")) +#L# Select one file interactively +#L# shp <-shapefile(file.choose(new = FALSE)) + +#plot(plant.height) +#plot(shp, add= TRUE) + +#Set the name of the outut csv table +name<-list.files(pattern = "\\.shp$") +name<-gsub(".shp", "", name) + + +#Write the new plant height raster (DSM) +writeRaster(plant.height, filename= paste(name, "heightRaster_2.tif"), format = "GTiff") + +#Overlap and extract the pixel value in each polygon +pixelval <- extract(plant.height,shp) + +#Add the plot name to the pixel value list +names(pixelval)<- shp$Name + + +#check the list +#str(pixelval) + +#function to eliminate soil pixels +soil.mask <- function(p){ + p.1 = subset(p,p >0.05) + return(p.1) +} + +#Apply the mask to the list +PlantsValue <- lapply(pixelval,soil.mask) + + +#function to calculate and eliminate outliers +outliers <- function(dat){ +n=2 +a=median(dat) +b=sd(dat) +limitesuperior=(a+n*b) +limiteinferior=(a-n*b) +dat1= subset(dat,dat <= limitesuperior & dat >= limiteinferior) +return(dat1) +} + +#extract the outliers +Tableclean = lapply(PlantsValue,outliers) + + +str(Tableclean) + + +#Calculate the descriptive statistics of the new list without outliers and convert it in a data base + +allstats = lapply(Tableclean,summary) +sd = lapply(Tableclean, sd) +n = lapply(Tableclean, length) + +#Join all the statistics calculated in one table +desc.stats.t = mapply(c,allstats,sd, n) + +# Transpose the matrix +desc.stats <- t(desc.stats.t) + + +#Convert to data frame +df <- as.data.frame(desc.stats) + +# Add the rownames as a new column +setDT(df, keep.rownames = TRUE)[] + +#Rename the columns +colnames(df)[1:9]<-c("Plot", "Min", "Q1", "Median", "Mean", "Q3", "Max", "SD", "n") + +#Rewrite again the data frame +df<-data.frame(df) + +# Average the values using the unique ID (Plot names) +final.df=aggregate(cbind(Min, Q1, Median, Mean, Q3, Max, SD, n)~Plot,df, mean) + +#write the final table +write.csv(final.df,paste(name,"_plant_Height.csv", sep=""), row.names=FALSE) + + + + + + + diff --git a/r/Plant_height_code_Obregon.R b/r/Plant_height_code_Obregon.R new file mode 100644 index 0000000..3306ce2 --- /dev/null +++ b/r/Plant_height_code_Obregon.R @@ -0,0 +1,152 @@ +#Protocol to evaluate Plant height +#Authors: Jose Manuel Mendoza Reyes and Lorena Gonzalez Perez + +#Coments specific to make it work in obregón marked as #L# + +library (sp) +library (raster) +library(rgdal) +library(data.table) +library(plyr) +library(dplyr) + +#L# +date <- "170127" + +note <- "check treshhold" + +# Load the raster base (DTM) +rasterBase<- raster("G:/AE/161026/r161026fis/r161026hap/3_dsm_ortho/1_dsm/r161026hap_dsm.tif") + +#Select the work directory wich are the raster file and shp +#setwd(choose.dir(getwd(), "Selecciona tu archivo")) +#L# +setwd("C:/Dropbox/data/AE/physio/data") + +#select the raster file (DSM) +#raster <-raster(list.files(pattern = "\\.tif$")) +#L# +raster<- raster(file.choose(new = FALSE)) #interactive +print(raster) + +#Cut the DSM base on the DTM extent +r_crop<-crop(raster, extent(rasterBase), snap="out") +#plot(r_crop) + +#Change the spatial resolution of DTM (if it is necessary) +rasrecla <- resample(rasterBase, r_crop, resample='ngb') + +#Geoidal height for the area of interest (checked it on INEGI web) +#n=-32.37 +#L# we have the units in mamsl + +#Get Geoidal height base on the ellipsoidal height +#r_croph <- (r_crop-n) +#L# that is why we dont perform this operation + +#Check that the two raster have the same attributes + +#DTM +#show(rasrecla) +#DSM +#show(r_croph) + +rest <-function(r1,base){(r1-base)} +#plant.height <- rest(r_croph, rasrecla) +#L# +plant.height <- rest(r_crop, rasrecla) #because didnt convert to Geoidal + +# show(plant.height) +# plot(plant.height) +#hist(plant.height) + +#select the shapefile (a shp with buffer genereted in Arcgis) +#shp <- shapefile(list.files(pattern = "\\.shp$")) +#L# Select one file interactively +#shpName <- file.choose(new = FALSE) +shpName <- "C:/Dropbox/data/AE/physio/shp/Hibap_RGB_170308.shp" +shp <-shapefile(shpName) + +#plot(plant.height) +#plot(shp, add= TRUE) + +#Set the name of the outut csv table +name<-shpName +name<-gsub(".shp", "", name) + + +#Write the new plant height raster (DSM) +writeRaster(plant.height, filename= paste(date, "_heightRaster.tif",sep=""), format = "GTiff") + +#Overlap and extract the pixel value in each polygon +#pixelval <- extract(plant.height,shp) +#L# To re-do with the fixed shp +pixelval <- extract(plant.height,shp) #L# Temporal + +#Add the plot name to the pixel value list +names(pixelval)<- shp$Name + + +#check the list +#str(pixelval) +#min(pixelval) + +#Just to tremember to check threshold +#L# if you want to create a "Popup" on windows, as a notification +system('CMD /C "ECHO Just to remember to check threshold"', + invisible=FALSE, wait=FALSE) +print("ll") +#Write the threshold used +x = "Expression used in the soil Masking: pixel > 0.0 = plant" +write(x, file = paste("Read me - ",date,".txt",sep=""), + append = FALSE, sep = ",") + +#function to eliminate soil pixels +soil.mask <- function(p){ + p.1 = subset(p,p >0.0) + return(p.1) +} + +#Apply the mask to the list +PlantsValue <- lapply(pixelval,soil.mask) + +#function to calculate and eliminate outliers +outliers <- function(dat){ +n=2 +a=median(dat) +b=sd(dat) +limitesuperior=(a+n*b) +limiteinferior=(a-n*b) +dat1= subset(dat,dat <= limitesuperior & dat >= limiteinferior) +return(dat1) +} + +#extract the outliers +Tableclean = lapply(PlantsValue,outliers) + + +str(Tableclean) + + +#Calculate the descriptive statistics of the new list without outliers and convert it in a data base + +allstats = lapply(Tableclean,summary) +sd = lapply(Tableclean, sd) +n = lapply(Tableclean, length) +#Join all the statistics calculated in one table +desc.stats.t = mapply(c,allstats,sd, n) +# Transpose the matrix +desc.stats <- t(desc.stats.t) +#Convert to data frame +df <- as.data.frame(desc.stats) +# Add the rownames as a new column +setDT(df, keep.rownames = TRUE)[] +#Rename the columns +colnames(df)[1:9]<-c("Plot", "Min", "Q1", "Median", "Mean", "Q3", "Max", "SD", "n") +#Rewrite again the data frame +df<-data.frame(df) +# Average the values using the unique ID (Plot names) +final.df=aggregate(cbind(Min, Q1, Median, Mean, Q3, Max, SD, n)~Plot,df, mean) + +#write the final table +write.csv(final.df,paste(date,"_plant_Height.csv", sep=""), row.names=FALSE) diff --git a/r/ScatterPlotsGS_Y16-17.R b/r/ScatterPlotsGS_Y16-17.R new file mode 100644 index 0000000..fc23c7b --- /dev/null +++ b/r/ScatterPlotsGS_Y16-17.R @@ -0,0 +1,86 @@ +## To show the histogram of selected plots in shapefile +## ONGOING WORK!!!! + +require(raster) +require(rgdal) + +###################### DEFINED FUNCTIONS (no need to edit) +# Read the feature class +get_roi <- function(trial_roi) {readOGR(dsn=fgdb,layer=trial_roi)} + + +######################## DEFINE VARIABLES (Enter your variables) +# #Working directory +wd="G:\\AD15_16\\" +setwd(wd) +ext<-".tif" +shp_name<- "__ad__buf" +sx<-"cel" #input sufix +fgdb = "C:\\Dropbox\\data\\AD\\ad_sam\\shp\\adsam.gdb" + +#Select individual image instead of loop all + cam<-"t" + d<-"160804" + t<-"sam" + +######################### STARTs SCRIPT +tryCatch({ + + + + imgLocation = paste(wd,d,"\\",cam,"\\",sx,"\\",sep="") #Look into cel folder + name = paste(cam,d,t,sx,ext,sep="") + rasterName= paste(imgLocation,name,sep="") + r<-raster(rasterName) + plt <- get_roi(paste(t,shp_name,sep="")) + ids <- data.frame(plt$id) + + ##Graphics to save to PDF + pdf(file=paste(name," plots.pdf", sep="")) + par(mar = rep(2, 4),mfrow=c(4,4)) + + #Iterate the plots + for(i in 1:3){ ###length(ids[,1]) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ##Select every plot polygon + roi <- plt[plt@data["id"]==ids[i,1]] #%%%%%%%%%%%%%%%%%% WTFFF %%%%%%%%%%%%%%%% + print(ids[i,1]) + ##roi <- plt[plt$id=="thanda 264 rows /131",] + ##Crop the image to get what is inside the plot + r_selected <-crop(r, extent(roi), snap="out") + plot(r_selected,col=heat.colors(8,0.8)) # Plot the image cropped + #Get histogram of that piece of image + hist(r_selected,main=paste(t,cam,d,"plot= [",ids[i,1],"]"),breaks=20) + + # KMEANS + #assume bimodal distribution in clipped raster + #Use K means to filter Soil (hotter pixels) + #The group 1 is the cooler (vegetation?) and the 2 is the hotter (Soil?) + v<-data.frame(getValues(r_selected)) + km <- kmeans(v,centers=2) + v$clust <- as.factor(km$cluster) + hist(v[v$clust==1,1]) + #Store mean plot value in table + ids$d[i] <- mean(v[v$clust==1,1]) + + #NIBLACK???? + #Filter soil with this filter + #pixel = ( pixel > mean + k * standard_deviation - c) ? object : background +# sd(r_selected) +# r_mean <- focal(r_selected, w=matrix(1/9,nrow=5,ncol=5)) + ##How to calculate focal std ? +# sd(x, na.rm = FALSE) +# zonal(x, z, stat='mean', digits=0, na.rm=TRUE, ...) +# focal(r_selected, w=3, fun=, na.rm=TRUE) +# sd2 <- sqrt(sum((x - mean(x))^2) / (n - 1)) +# +# #r_sd <- cellStats(r_selected,'sd') # Returns a value, not raster +# add=TRUE +# plot(r_mean) +# plot(r_sd) + } + + dev.off() + ##Finish saving to PDF + +}) + diff --git a/r/VIs_Calculation.R b/r/VIs_Calculation.R new file mode 100644 index 0000000..f78fdd2 --- /dev/null +++ b/r/VIs_Calculation.R @@ -0,0 +1,313 @@ +##################################################################### +# Title: ENVI_Indices +# Name: Francisco Manuel Rodriguez Huerta +# Date: 9 Abril 2014 +# Description: Compute Indices +##################################################################### + +#Load required libraries +require(raster) +require(rgdal) + +### nos posicionamos en el directorio de trabajo ### +rm(list = ls()) + +work.dir <- "I:\\CIMMYT\\YQ_Variability\\Data\\Images_PAexp\\1200m\\Resampled" ### Change the input directory + +setwd(work.dir) +getwd() + +#set filename +filename<-"H140507_PA_1m_62bands.dat" ### check file name + + +#create rasterstack object +r1 <- raster(filename, band=1) +rs <- stack(r1) +index <- r1@file@nbands +rm(r1) +for (i in 2:index){ + r1 <- raster(filename, band=i) + rs <- stack(rs,r1) + rm(r1) +} +show(rs) + +#numbers of rows and columns +nr <- nrow(rs) +nc <- ncol(rs) +nlayers(rs) + +#get values + +R <- getValuesBlock(rs, row=1, nrows=nr, col=1, ncols=nc)/10000 +dim(R) + +#read identifier of bands and wavelengths + +#setwd("H:\\CIMMYT\\YQ_Variability\\Data\\Images_PAexp\\") +#getwd() + + +bands <- read.table("bands62.csv",sep=",",header=TRUE) + +setwd("I:\\CIMMYT\\YQ_Variability\\Data\\Images_PAexp\\1200m\\VIs\\140507") ### Output folder to VI maps +getwd() + + +#Important bands +R400 <- R[,bands[which.min(abs(bands[,2]-400)),1]] +R445 <- R[,bands[which.min(abs(bands[,2]-445)),1]] +R450 <- R[,bands[which.min(abs(bands[,2]-450)),1]] +R470 <- R[,bands[which.min(abs(bands[,2]-470)),1]] +R500 <- R[,bands[which.min(abs(bands[,2]-500)),1]] +R510 <- R[,bands[which.min(abs(bands[,2]-510)),1]] +R513 <- R[,bands[which.min(abs(bands[,2]-513)),1]] +R515 <- R[,bands[which.min(abs(bands[,2]-515)),1]] +R530 <- R[,bands[which.min(abs(bands[,2]-530)),1]] +R550 <- R[,bands[which.min(abs(bands[,2]-550)),1]] +R570 <- R[,bands[which.min(abs(bands[,2]-570)),1]] +R635 <- R[,bands[which.min(abs(bands[,2]-635)),1]] +R670 <- R[,bands[which.min(abs(bands[,2]-670)),1]] +R675 <- R[,bands[which.min(abs(bands[,2]-675)),1]] +R680 <- R[,bands[which.min(abs(bands[,2]-680)),1]] +R700 <- R[,bands[which.min(abs(bands[,2]-700)),1]] +R710 <- R[,bands[which.min(abs(bands[,2]-710)),1]] +R720 <- R[,bands[which.min(abs(bands[,2]-720)),1]] +R740 <- R[,bands[which.min(abs(bands[,2]-740)),1]] +R746 <- R[,bands[which.min(abs(bands[,2]-746)),1]] +R750 <- R[,bands[which.min(abs(bands[,2]-750)),1]] +R760 <- R[,bands[which.min(abs(bands[,2]-760)),1]] +R770 <- R[,bands[which.min(abs(bands[,2]-770)),1]] +R800 <- R[,bands[which.min(abs(bands[,2]-800)),1]] + +hist(R500) +hist(R800) +################### +### Get indices ### +################### +date <- strsplit(filename,split="_")[[1]][1] + +#Structural Indices +NDVI <- (R800-R670)/(R800+R670) +Rastout <- raster(ncol=nc,nr=nr) +Rastout[] <- NDVI +Rastout@extent <- rs@extent +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout, filename=paste(date,"NDVI.tif",sep="_"), format="GTiff") +hist(NDVI) + + +RDVI <- (R800-R670)/sqrt(R800+R670) +Rastout[] <- RDVI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"RDVI.tif",sep="_"),format="GTiff") + +OSAVI <- (1+0.16)*(R800-R670)/(R800+R670+0.16) +Rastout[] <- OSAVI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"OSAVI.tif",sep="_"),format="GTiff") + +SR <- R800/R670 +Rastout[] <- SR +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"SR.tif",sep="_"),format="GTiff") + +MSR <- (SR-1)/sqrt(SR)+1 +Rastout[] <- MSR +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"MSR.tif",sep="_"),format="GTiff") + +MTVI1 <- 1.2*(1.2*(R800-R550)-2.5*(R670-R550)) +Rastout[] <- MTVI1 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"MTVI1.tif",sep="_"),format="GTiff") + +MCARI1 <- 1.2*(2.5*(R800-R670)-1.3*(R800-R550)) +Rastout[] <- MCARI1 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"MCARI1.tif",sep="_"),format="GTiff") + +deno <- sqrt((2*R800+1)^2-(6*R800-5*sqrt(R670))-0.5) +MCARI2 <- (1.5/1.2)*MCARI1/deno +Rastout[] <- MCARI2 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"MCARI2.tif",sep="_"),format="GTiff") + +MTVI2 <- (1.5/1.2)*MTVI1/deno +Rastout[] <- MTVI2 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"MTVI2.tif",sep="_"),format="GTiff") + +#Chlorophyll indices +TVI <- 0.5*(120*(R750-R550)-200*(R670-R550)) +Rastout[] <- TVI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"TVI.tif",sep="_"),format="GTiff") + +MCARI <- ((R700-R670)-0.2*(R700-R550))*(R700/R670) +Rastout[] <- MCARI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"MCARI.tif",sep="_"),format="GTiff") + +TCARI <- 3*MCARI +Rastout[] <- TCARI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"TCARI.tif",sep="_"),format="GTiff") + +TCARI_OSAVI <- TCARI/OSAVI +Rastout[] <- TCARI_OSAVI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"TCARI_OSAVI.tif",sep="_"),format="GTiff") + +MCARI_OSAVI <- MCARI/OSAVI +Rastout[] <- MCARI_OSAVI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"MCARI_OSAVI.tif",sep="_"),format="GTiff") + +GM1 <- R750/R550 +Rastout[] <- GM1 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"GM1.tif",sep="_"),format="GTiff") + +GM2 <- R750/R700 +Rastout[] <- GM2 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"GM2.tif",sep="_"),format="GTiff") + + +#Red edge ratios +#ZM +CI <- R750/R710 +Rastout[] <- CI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"CI.tif",sep="_"),format="GTiff") + +R750_R700 <- R750/R700 +Rastout[] <- R750_R700 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"R750_R700.tif",sep="_"),format="GTiff") + +R750_R670 <- R750/R670 +Rastout[] <- R750_R670 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"R750_R670.tif",sep="_"),format="GTiff") + +R710_R700 <- R710/R700 +Rastout[] <- R710_R700 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"R710_R700.tif",sep="_"),format="GTiff") + +R710_R670 <- R710/R670 +Rastout[] <- R710_R670 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"R710_R670.tif",sep="_"),format="GTiff") + +#RGB Indices +R700_R670 <- R700/R670 +Rastout[] <- R700_R670 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"R700_R670.tif",sep="_"),format="GTiff") + +G <- R550/R670 +Rastout[] <- G +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"G.tif",sep="_"),format="GTiff") + +#Indices PDF +CAR <- R515/R570 +Rastout[] <- CAR +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"CAR.tif",sep="_"),format="GTiff") + +PRI <- (R570-R530)/(R570+R530) +Rastout[] <- PRI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"PRI.tif",sep="_"),format="GTiff") + +PRIn <- PRI*R670/(RDVI*R700) +Rastout[] <- PRIn +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"PRIn.tif",sep="_"),format="GTiff") + +SIPI <- (R800-R445)/(R800+R680) +Rastout[] <- SIPI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"SIPI.tif",sep="_"),format="GTiff") + +RARS <- R746/R513 +Rastout[] <- RARS +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"RARS.tif",sep="_"),format="GTiff") + +PSSRa <- R800/R680 +Rastout[] <- PSSRa +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"PSSRa.tif",sep="_"),format="GTiff") + +PSSRb <- R800/R635 +Rastout[] <- PSSRb +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"PSSRb.tif",sep="_"),format="GTiff") + +PSSRc <- R800/R470 +Rastout[] <- PSSRc +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"PSSRc.tif",sep="_"),format="GTiff") + +PSNDc <- (R800-R470)/(R800+R470) +Rastout[] <- PSNDc +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"PSNDc.tif",sep="_"),format="GTiff") + +RNIRxCRI550 <- (1/R510)-(1/R550)*R770 +Rastout[] <- RNIRxCRI550 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"RNIRxCRI550.tif",sep="_"),format="GTiff") + +RNIRxCRI700 <- (1/R510)-(1/R700)*R770 +Rastout[] <- RNIRxCRI700 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"RNIRxCRI700.tif",sep="_"),format="GTiff") + +PRI515 <- (R515-R530)/(R515+R530) +Rastout[] <- PRI515 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"PRI515.tif",sep="_"),format="GTiff") + +PRIxCI <- PRI*((R760/R700)-1) +Rastout[] <- PRIxCI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"PRIxCI.tif",sep="_"),format="GTiff") + +PSRI <- (R680-R500)/R750 +Rastout[] <- PSRI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"PSRI.tif",sep="_"),format="GTiff") + +VOG <- R740/R720 +Rastout[] <- PSRI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"VOG.tif",sep="_"),format="GTiff") + +BGI1 <- R400/R550 +Rastout[] <- BGI1 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"BGI1.tif",sep="_"),format="GTiff") + +BGI2 <- R450/R550 +Rastout[] <- BGI2 +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"BGI2.tif",sep="_"),format="GTiff") + +EVI <- 2.5*(R800-R670)/(R800+6*R670-7.5*R400+1) +Rastout[] <- EVI +proj4string(Rastout) <- CRS("+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") +writeRaster(Rastout,filename=paste(date,"EVI.tif",sep="_"),format="GTiff") + + + + + + + diff --git a/r/VIs_Calculation_Multispec4C.R b/r/VIs_Calculation_Multispec4C.R new file mode 100644 index 0000000..28840f5 --- /dev/null +++ b/r/VIs_Calculation_Multispec4C.R @@ -0,0 +1,134 @@ +##################################################################### +# Title: ENVI_Indices for Multispec 4C images +# Name: Francisco Manuel Rodriguez Huerta, edited by Lorena GP +# Date: 9 Abril 2014. Sep 13 2016 +# Description: Compute Indices +##################################################################### + +#Load required libraries +require(raster) +require(rgdal) + +### nos posicionamos en el directorio de trabajo ### +rm(list = ls()) +work.dir <- "G:\\AD15_16\\AF\\Processed\\CompB_geo\\" ### Change the input directory +setwd(work.dir) +getwd() + +#set filename +filename<-"c160407_afgeo.bsq" ### check file name + +#create rasterstack object +r1 <- raster(filename, band=1) +rs <- stack(r1) +index <- r1@file@nbands +rm(r1) +for (i in 2:index){ + r1 <- raster(filename, band=i) + rs <- stack(rs,r1) + rm(r1) +} +show(rs) + +#numbers of rows and columns +nr <- nrow(rs) +nc <- ncol(rs) +nlayers(rs) + +#get values +R <- getValuesBlock(rs, row=1, nrows=nr, col=1, ncols=nc) +dim(R) + +#read identifier of bands and wavelengths +bands <- read.table("bands_multispec4c.csv",sep=",",header=TRUE) #### Bands + +setwd("C:\\Dropbox\\data\\AD\\AD-AF\\img\\vi") ### Output folder to VI maps +getwd() + +#Important bands +R550 <- R[,1] +R670 <- R[,2] +R680 <- R[,2] +R750 <- R[,3] +R800 <- R[,4] + +################### +### Calculate indices ### +################### +date <- strsplit(filename,split="_")[[1]][1] +#Define coordinate system to be applied +coord_sys = CRS("+proj=utm +zone=14 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0") + +#Structural Indices +NDVI <- (R800-R670)/(R800+R670) +Rastout <- raster(ncol=nc,nr=nr) +Rastout[] <- NDVI +Rastout@extent <- rs@extent +proj4string(Rastout) <- coord_sys +writeRaster(Rastout, filename=paste(date,"NDVI.tif",sep="_"), format="GTiff") +#hist(NDVI) + +RDVI <- (R800-R670)/sqrt(R800+R670) +Rastout[] <- RDVI +proj4string(Rastout) <- coord_sys +writeRaster(Rastout,filename=paste(date,"RDVI.tif",sep="_"),format="GTiff") + +OSAVI <- (1+0.16)*(R800-R670)/(R800+R670+0.16) +Rastout[] <- OSAVI +proj4string(Rastout) <- coord_sys +writeRaster(Rastout,filename=paste(date,"OSAVI.tif",sep="_"),format="GTiff") + + SR <- R800/R670 +# Rastout[] <- SR +# proj4string(Rastout) <- coord_sys +# writeRaster(Rastout,filename=paste(date,"SR.tif",sep="_"),format="GTiff") + +MSR <- (SR-1)/sqrt(SR)+1 +Rastout[] <- MSR +proj4string(Rastout) <- coord_sys +writeRaster(Rastout,filename=paste(date,"MSR.tif",sep="_"),format="GTiff") + +MTVI1 <- 1.2*(1.2*(R800-R550)-2.5*(R670-R550)) +Rastout[] <- MTVI1 +proj4string(Rastout) <- coord_sys +writeRaster(Rastout,filename=paste(date,"MTVI1.tif",sep="_"),format="GTiff") + +MCARI1 <- 1.2*(2.5*(R800-R670)-1.3*(R800-R550)) +Rastout[] <- MCARI1 +proj4string(Rastout) <- coord_sys +writeRaster(Rastout,filename=paste(date,"MCARI1.tif",sep="_"),format="GTiff") + +deno <- sqrt((2*R800+1)^2-(6*R800-5*sqrt(R670))-0.5) +MCARI2 <- (1.5/1.2)*MCARI1/deno +Rastout[] <- MCARI2 +proj4string(Rastout) <- coord_sys +writeRaster(Rastout,filename=paste(date,"MCARI2.tif",sep="_"),format="GTiff") + +MTVI2 <- (1.5/1.2)*MTVI1/deno +Rastout[] <- MTVI2 +proj4string(Rastout) <- coord_sys +writeRaster(Rastout,filename=paste(date,"MTVI2.tif",sep="_"),format="GTiff") + +#Chlorophyll indices +TVI <- 0.5*(120*(R750-R550)-200*(R670-R550)) +Rastout[] <- TVI +proj4string(Rastout) <- coord_sys +writeRaster(Rastout,filename=paste(date,"TVI.tif",sep="_"),format="GTiff") + +GM1 <- R750/R550 +Rastout[] <- GM1 +proj4string(Rastout) <- coord_sys +writeRaster(Rastout,filename=paste(date,"GM1.tif",sep="_"),format="GTiff") + + +G <- R550/R670 +Rastout[] <- G +proj4string(Rastout) <- coord_sys +writeRaster(Rastout,filename=paste(date,"G.tif",sep="_"),format="GTiff") + +#Indices PDF + +PSSRa <- R800/R680 +Rastout[] <- PSSRa +proj4string(Rastout) <- coord_sys +writeRaster(Rastout,filename=paste(date,"PSSRa.tif",sep="_"),format="GTiff") \ No newline at end of file diff --git a/r/applyNiblackFilteronImage.R b/r/applyNiblackFilteronImage.R new file mode 100644 index 0000000..76043a9 --- /dev/null +++ b/r/applyNiblackFilteronImage.R @@ -0,0 +1,11 @@ +#Apply the niblack filter on an image +# february 2018 +# !!!!!!!!!!!!!!! !# ongoing work + +library (raster) + +getTop5percInsideROIandRemoveFR <- function (i,fgdb,roi_name){ + + meanImg <- cellStats(img95, stat='mean', na.rm=TRUE) + + focal(x, w, fun, filename='', na.rm=FALSE, pad=FALSE, padValue=NA, NAonly=FALSE, ...) diff --git a/r/arrangeAFextractedData2017DBF.R b/r/arrangeAFextractedData2017DBF.R new file mode 100644 index 0000000..73c261a --- /dev/null +++ b/r/arrangeAFextractedData2017DBF.R @@ -0,0 +1,94 @@ +#Arrange tables from zonalStatistics Extraction +#Take all the tables from a date-cam and put in one Excel table +# Used Packages +options(java.parameters = "-Xmx30000m") #available RAM for JAVA +library(foreign) +library(xlsx) +library(stringr) +library(plyr) +library(gtools) + +### FUNCTIONS +###############InputInputInputInputInputInputInputInputInputInputInput +#InputInputInputInputInputInputInputInput +#Input should be a dbf file + +id = "Name" # For most of the cases +feature = "buf" ##buf for the BW trials + +####################################################### + +addBandToColumn <- function (f){ + t <- read.dbf(f) + t <- subset(t, select=c(id,"MEAN")) + band <- str_extract(f, "B[0-9][0-9]*[0-9]*") #Get the band # + origFields <- colnames(t) + colnamesB <- origFields + #Next put the band number in the column but not in the id column + for (i in 1:length(colnamesB) ){ + if (colnamesB[i] != id) + colnamesB[i]<- paste(colnamesB[i],"_",band,feature, sep="") + } + colnames(t)<- colnamesB + return (t) +} +#Merge to use with reduce sucessively by "id" +merge.all <- function(x, y) { + merge(x, y, all=TRUE, by=id) +} +#stack by-band-dbf statistics in excel +arrangeDbf <- function(pattern) { + #Name of the workbook will be the camera+date + cam_date <- substr(pattern, 1, 7) + wbookName <- paste(cam_date,".xlsx",sep="") + wbook <- createWorkbook() + wbSheet <- createSheet(wb = wbook, sheetName = toString(cam_date)) + file_list = list.files(pattern=pattern)#list and filter dbf from ws + #get mentioned trial names to group them + trials <- unique(lapply(file_list, function(x) substr(x,8,10))) + t1=TRUE + for (tr in trials){ + patt_tr = paste(cam_date,tr,feature,".*",sep="") + fileListTr <- grep(patt_tr, file_list, value=TRUE) + fileListTr <- mixedsort(fileListTr)#Natural sorting + # batch read all into a list + t.list = lapply(fileListTr, addBandToColumn) + #merge them into a single data frame + tables <- Reduce(merge.all, t.list) + #Next remove the duplicate "id" column + tables <- tables[,!duplicated(colnames(tables), fromLast = TRUE)] + if (t1==TRUE){ + startRow<-1 + print(paste("Escribiendo",nrow(tables),"registros en",tr)) + addDataFrame(x=tables, sheet=wbSheet,row.names=FALSE,startRow = startRow) + t1<-FALSE + startRow = startRow+nrow(tables) + 1 #We count that we printed the header line + }else{ + print(paste("Escribiendo",nrow(tables),"registros en",tr)) + addDataFrame(x=tables,sheet=wbSheet, + row.names=FALSE,col.names=FALSE,startRow=startRow) + startRow = startRow+nrow(tables) + } + } + saveWorkbook(wbook, wbookName) + print(paste("Se guardó el archivo",wbookName)) + return (wbook) +} +#read tables +################# Check these inputs######################### +wd<-("C:\\Users\\usuario\\Documents\\ArcGIS\\") +setwd(wd) +getwd() + +#change inputs on top + +#Get the unique date and camera to stack the tables +allDbfFiles <-list.files(pattern="\\.dbf$") +date_and_cam <- unique(str_extract(allDbfFiles, "[:alpha:]{1}[:digit:]{6}")) +## Sets the pattern of name in files to be stacked +for (i in date_and_cam){ + print(paste("Fecha y cámara:",i)) + pattern= paste(i,".*dbf$",sep="") + xlsx <-arrangeDbf(pattern) +} + diff --git a/r/arrangeBWtables.R b/r/arrangeBWtables.R new file mode 100644 index 0000000..70c260d --- /dev/null +++ b/r/arrangeBWtables.R @@ -0,0 +1,94 @@ +#Arrange tables from zonalStatistics Extraction +#Take all the tables from a date-cam and put in one Excel table +# Used Packages +options(java.parameters = "-Xmx30000m") #available RAM for JAVA +library(foreign) +library(xlsx) +library(stringr) +library(plyr) +library(gtools) + +### FUNCTIONS +###############InputInputInputInputInputInputInputInputInputInputInput +#InputInputInputInputInputInputInputInput +#Input should be a dbf file + +id = "id" # For most of the cases +feature = "buf" ##buf for the BW trials + +####################################################### + +addBandToColumn <- function (f){ + t <- read.dbf(f) + t <- subset(t, select=c("id","COUNT","MEAN","STD")) + band <- str_extract(f, "B[0-9][0-9]*[0-9]*") #Get the band # + origFields <- colnames(t) + colnamesB <- origFields + #Next put the band number in the column but not in the id column + for (i in 1:length(colnamesB) ){ + if (colnamesB[i] != id) + colnamesB[i]<- paste(colnamesB[i], band, sep="") + } + colnames(t)<- colnamesB + return (t) +} +#Merge to use with reduce sucessively by "id" +merge.all <- function(x, y) { + merge(x, y, all=TRUE, by=id) +} +#stack by-band-dbf statistics in excel +arrangeDbf <- function(pattern) { + #Name of the workbook will be the camera+date + cam_date <- substr(pattern, 1, 7) + wbookName <- paste(cam_date,".xlsx",sep="") + wbook <- createWorkbook() + wbSheet <- createSheet(wb = wbook, sheetName = toString(cam_date)) + file_list = list.files(pattern=pattern)#list and filter dbf from ws + #get mentioned trial names to group them + trials <- unique(lapply(file_list, function(x) substr(x,8,10))) + t1=TRUE + for (tr in trials){ + patt_tr = paste(cam_date,tr,feature,".*",sep="") + fileListTr <- grep(patt_tr, file_list, value=TRUE) + fileListTr <- mixedsort(fileListTr)#Natural sorting + # batch read all into a list + t.list = lapply(fileListTr, addBandToColumn) + #merge them into a single data frame + tables <- Reduce(merge.all, t.list) + #Next remove the duplicate "id" column + tables <- tables[,!duplicated(colnames(tables), fromLast = TRUE)] + if (t1==TRUE){ + startRow<-1 + print(paste("Escribiendo",nrow(tables),"registros en",tr)) + addDataFrame(x=tables, sheet=wbSheet,row.names=FALSE,startRow = startRow) + t1<-FALSE + startRow = startRow+nrow(tables) + 1 #We count that we printed the header line + }else{ + print(paste("Escribiendo",nrow(tables),"registros en",tr)) + addDataFrame(x=tables,sheet=wbSheet, + row.names=FALSE,col.names=FALSE,startRow=startRow) + startRow = startRow+nrow(tables) + } + } + saveWorkbook(wbook, wbookName) + print(paste("Se guardó el archivo",wbookName)) + return (wbook) +} +#read tables +################# Check these inputs######################### +wd<-("C:\\Users\\usuario\\Documents\\ArcGIS\\") +setwd(wd) +getwd() + +#change inputs on top + +#Get the unique date and camera to stack the tables +allDbfFiles <-list.files(pattern="\\.dbf$") +date_and_cam <- unique(str_extract(allDbfFiles, "[:alpha:]{1}[:digit:]{6}")) +## Sets the pattern of name in files to be stacked +for (i in date_and_cam){ + print(paste("Fecha y cámara:",i)) + pattern= paste(i,".*dbf$",sep="") + xlsx <-arrangeDbf(pattern) +} + diff --git a/r/arrangeBWtables2017.R b/r/arrangeBWtables2017.R new file mode 100644 index 0000000..dc7f2bd --- /dev/null +++ b/r/arrangeBWtables2017.R @@ -0,0 +1,94 @@ +#Arrange tables from zonalStatistics Extraction +#Take all the tables from a date-cam and put in one Excel table +# Used Packages +options(java.parameters = "-Xmx30000m") #available RAM for JAVA +library(foreign) +library(xlsx) +library(stringr) +library(plyr) +library(gtools) + +### FUNCTIONS +###############InputInputInputInputInputInputInputInputInputInputInput +#InputInputInputInputInputInputInputInput +#Input should be a dbf file + +id = "Name" # For most of the cases +feature = "buf" ##buf for the BW trials + +####################################################### + +addBandToColumn <- function (f){ + t <- read.dbf(f) + t <- subset(t, select=c(id,"MEAN")) + band <- str_extract(f, "B[0-9][0-9]*[0-9]*") #Get the band # + origFields <- colnames(t) + colnamesB <- origFields + #Next put the band number in the column but not in the id column + for (i in 1:length(colnamesB) ){ + if (colnamesB[i] != id) + colnamesB[i]<- paste(colnamesB[i], band, sep="") + } + colnames(t)<- colnamesB + return (t) +} +#Merge to use with reduce sucessively by "id" +merge.all <- function(x, y) { + merge(x, y, all=TRUE, by=id) +} +#stack by-band-dbf statistics in excel +arrangeDbf <- function(pattern) { + #Name of the workbook will be the camera+date + cam_date <- substr(pattern, 1, 7) + wbookName <- paste(cam_date,".xlsx",sep="") + wbook <- createWorkbook() + wbSheet <- createSheet(wb = wbook, sheetName = toString(cam_date)) + file_list = list.files(pattern=pattern)#list and filter dbf from ws + #get mentioned trial names to group them + trials <- unique(lapply(file_list, function(x) substr(x,8,10))) + t1=TRUE + for (tr in trials){ + patt_tr = paste(cam_date,tr,feature,".*",sep="") + fileListTr <- grep(patt_tr, file_list, value=TRUE) + fileListTr <- mixedsort(fileListTr)#Natural sorting + # batch read all into a list + t.list = lapply(fileListTr, addBandToColumn) + #merge them into a single data frame + tables <- Reduce(merge.all, t.list) + #Next remove the duplicate "id" column + tables <- tables[,!duplicated(colnames(tables), fromLast = TRUE)] + if (t1==TRUE){ + startRow<-1 + print(paste("Escribiendo",nrow(tables),"registros en",tr)) + addDataFrame(x=tables, sheet=wbSheet,row.names=FALSE,startRow = startRow) + t1<-FALSE + startRow = startRow+nrow(tables) + 1 #We count that we printed the header line + }else{ + print(paste("Escribiendo",nrow(tables),"registros en",tr)) + addDataFrame(x=tables,sheet=wbSheet, + row.names=FALSE,col.names=FALSE,startRow=startRow) + startRow = startRow+nrow(tables) + } + } + saveWorkbook(wbook, wbookName) + print(paste("Se guardó el archivo",wbookName)) + return (wbook) +} +#read tables +################# Check these inputs######################### +wd<-("C:\\Users\\usuario\\Documents\\ArcGIS\\") +setwd(wd) +getwd() + +#change inputs on top + +#Get the unique date and camera to stack the tables +allDbfFiles <-list.files(pattern="\\.dbf$") +date_and_cam <- unique(str_extract(allDbfFiles, "[:alpha:]{1}[:digit:]{6}")) +## Sets the pattern of name in files to be stacked +for (i in date_and_cam){ + print(paste("Fecha y cámara:",i)) + pattern= paste(i,".*dbf$",sep="") + xlsx <-arrangeDbf(pattern) +} + diff --git a/r/arrangeSTARStables.R b/r/arrangeSTARStables.R new file mode 100644 index 0000000..7b427a7 --- /dev/null +++ b/r/arrangeSTARStables.R @@ -0,0 +1,101 @@ +#Arrange tables from zonalStatistics Extraction +#Take all the tables from a date-cam and put in one Excel table +# Used Packages +options(java.parameters = "-Xmx30000m") #available RAM for JAVA +library(foreign) +library(xlsx) +library(stringr) +library(plyr) +library(gtools) + +### FUNCTIONS +###############InputInputInputInputInputInputInputInputInputInputInput +#InputInputInputInputInputInputInputInput +#Input should be a dbf file + +id = "Id" # For most of the cases +feature = "buf" ##buf for the BW trials + +####################################################### + +addBandToColumn <- function (f){ + ##read dbFfile + t <- read.dbf(f) + ##know date and cam + idate <- str_extract(f, "[:alpha:]{1}[:digit:]{6}") + ##t <- subset(t, select=c("Id","COUNT","MEAN","STD")) + t <- subset(t, select=c("Id","MEAN")) ##Keep only mean column + band <- str_extract(f, "B[0-9][0-9]*[0-9]*") #Get the band # + origFields <- colnames(t) + colnamesB <- origFields + #Next put the band number in the column but not in the id column + for (i in 1:length(colnamesB) ){ + if (colnamesB[i] != id) + #here we did not include the word "mean" in the field name, to make it shorter. + colnamesB[i]<- paste(toString(idate), band, sep="") + } + colnames(t)<- colnamesB + return (t) +} +#Merge to use with reduce sucessively by "id" +merge.all <- function(x, y) { + merge(x, y, all=TRUE, by=id) +} +#stack by-band-dbf statistics in excel +arrangeDbf <- function(pattern) { + #Name of the workbook will be the camera+date+trial + cam_date_trial <- substr(pattern, 1, 10) + wbookName <- paste(cam_date_trial,".xlsx",sep="") + wbook <- createWorkbook() + wbSheet <- createSheet(wb = wbook, sheetName = toString(cam_date_trial)) + file_list = list.files(pattern=pattern)#list and filter dbf from ws + #get mentioned trial names to group them + trials <- unique(lapply(file_list, function(x) substr(x,8,10))) + t1=TRUE + for (tr in trials){ + patt_tr = paste(cam_date_trial,feature,".*",sep="") + fileListTr <- grep(patt_tr, file_list, value=TRUE) + fileListTr <- mixedsort(fileListTr)#Natural sorting + # batch read all into a list + t.list = lapply(fileListTr, addBandToColumn) + #merge them into a single data frame + tables <- Reduce(merge.all, t.list) + #Next remove the duplicate "id" column + tables <- tables[,!duplicated(colnames(tables), fromLast = TRUE)] + ##remove decimal values from reflectance values * 100 000 + #tables <- round(tables[,],0) + if (t1==TRUE){ + startRow<-1 + print(paste("Escribiendo",nrow(tables),"registros en",tr)) + addDataFrame(x=tables, sheet=wbSheet,row.names=FALSE,startRow = startRow) + t1<-FALSE + startRow = startRow+nrow(tables) + 1 #We count that we printed the header line + }else{ + print(paste("Escribiendo",nrow(tables),"registros en",tr)) + addDataFrame(x=tables,sheet=wbSheet, + row.names=FALSE,col.names=FALSE,startRow=startRow) + startRow = startRow+nrow(tables) + } + } + saveWorkbook(wbook, wbookName) + print(paste("Se guardó el archivo",wbookName)) + return (wbook) +} +#read tables +################# Check these inputs######################### +wd<-("C:\\Users\\usuario\\Documents\\ArcGIS\\") +setwd(wd) +getwd() + +#change inputs on top + +#Get the unique date and camera to stack the tables +allDbfFiles <-list.files(pattern="\\.dbf$") +date_and_cam_trial <- unique(str_extract(allDbfFiles, "[:alpha:]{1}[:digit:]{6}[:alpha:]{3}")) +## Sets the pattern of name in files to be stacked +for (i in date_and_cam_trial){ + print(paste("Fecha y cámara:",i)) + pattern= paste(i,".*dbf$",sep="") + xlsx <-arrangeDbf(pattern) +} + diff --git a/r/arrangeVItables.R b/r/arrangeVItables.R new file mode 100644 index 0000000..2d24fd0 --- /dev/null +++ b/r/arrangeVItables.R @@ -0,0 +1,73 @@ +#Arrange tables from zonalStatistics Extraction +#Take all the tables from a date-cam and put in one Excel table + +# NOT FINISHEDDDDDDDDDDDD + +# Used Packages +options(java.parameters = "-Xmx30000m") #available RAM for JAVA +library(foreign) +library(xlsx) +library(stringr) +library(plyr) +library(gtools) + +### FUNCTIONS +#Input should be a dbf file + +id="Name" #for AF trials +#id = "id" # For most of the cases +#feature = "buf" ##buf for the BW trials +#feature= "(bfs|b2s)" # for AF trials +feature= "buf" # for AF trials + +addFileNameToColumn <- function (f){ + t <- read.dbf(f) + t <- subset(t, select=c(id,"MEAN")) #select only the MEAN column of the table + vi <- strsplit(f,split="_")[[1]][2] #Get the VI name from the table name# + date <- strsplit(f,split="_")[[1]][1] #date + feature <- strsplit(f,split="_")[[1]][3] #feature + vi_datefeature <- paste(vi,"_",date,feature, sep="") + origFields <- colnames(t) + colnamesB <- origFields + #Next put the VI name and date in the column but not in the id column + for (i in 1:length(colnamesB) ){ + if (colnamesB[i] != id) + colnamesB[i]<- paste(colnamesB[i], vi_datefeature, sep="") + } + colnames(t)<- colnamesB + return (t) +} +#Merge to use with reduce sucessively by "id" +merge.all <- function(x, y) { + merge(x, y, all=TRUE, by=id) +} +#stack by-band-dbf statistics in excel +arrangeDbf <- function(pattern) { + wbookName <- paste(feature,".xlsx",sep="") + wbook <- createWorkbook() + wbSheet <- createSheet(wb = wbook, sheetName = toString(feature)) + file_list = list.files(pattern=pattern)#list and filter dbf from ws + fileList <- mixedsort(file_list)#Natural sorting + # batch read all into a list + t.list = lapply(fileList, addFileNameToColumn) + #merge them into a single data frame + tables <- Reduce(merge.all, t.list) + #Next remove the duplicate "id" column + tables <- tables[,!duplicated(colnames(tables), fromLast = TRUE)] + startRow<-1 + print(paste("Escribiendo",nrow(tables),"registros")) + addDataFrame(x=tables, sheet=wbSheet,row.names=FALSE,startRow = startRow) + + saveWorkbook(wbook, wbookName) + print(paste("Se guardó el archivo",wbookName)) + return (wbook) +} +#read tables +################# Check these inputs######################### +wd<-("C:\\Users\\usuario\\Documents\\ArcGIS\\") +setwd(wd) +getwd() + +## Sets the pattern of name in files to be stacked +pattern= ".*dbf$" #it will iterate all the tables +xlsx <-arrangeDbf(pattern) \ No newline at end of file diff --git a/r/commandine_test.R b/r/commandine_test.R new file mode 100644 index 0000000..02aa53e --- /dev/null +++ b/r/commandine_test.R @@ -0,0 +1,17 @@ +#Function test +#To be run in CMD: +#example +#Rscript commandine_test.R "hi lola" 456 + +#Function +printer <- function(input1,input2=2) +{ + tryCatch({ + print(input1) + print(input2) + }) +} + +#Call function +args <- commandArgs(TRUE) +printer(args[1],args[2]) \ No newline at end of file diff --git a/r/cropTiffsInsideFolder.R b/r/cropTiffsInsideFolder.R new file mode 100644 index 0000000..bb46452 --- /dev/null +++ b/r/cropTiffsInsideFolder.R @@ -0,0 +1,53 @@ +######### Crop images (Tif) in a folder based on a ROI +######## the roi is read from a GDB + +#0. First step : load packages +#install.packages(c("rgdal","raster")) +require(raster) +require(rgdal) + +###################### DEFINED FUNCTIONS (no need to edit) + +#Function to select the apropriate roi for each trial +# Read the feature class +get_roi <- function(trial_roi) {readOGR(dsn=fgdb,layer=trial_roi)} + +######################## DEFINE VARIABLES (Enter your variables) +# #Working directory +wd="C:\\Dropbox\\New folder\\temp\\Franz\\AE\\" #For images, the root folder +setwd(wd) +## What kind of files to seach +pattern="\\.tif$" +roi_name<- "d30__ae__roi" +#Feature geodatabase to get ROIS +fgdb = "C:\\Dropbox\\data\\AE\\nut\\ae_nut.gdb" +#prefix to add to theOutput name of the crop file +pfx <- "crp_" + +######################### STARTs SCRIPT (No need to edit) + +#Error handling try +tryCatch({ + #list all imagery in the folder + imgs <-list.files(pattern=pattern) + print(imgs) #for debugging + #get roi + roi <- get_roi(roi_name) + print(paste("roi")) #for debugging + + #loop for the images to crop + for (i in imgs){ + #Read raster + r <- raster(i) + #crop + r_cr<-crop(r, extent(roi), snap="out") #execute script, crop by roi + print(paste("cropped")) #for debugging + #name for outpul file + #outFile <- paste0("t",i,"_q21cel") + outFile <- paste0(pfx,i) + #Save file + writeRaster(r_cr, file=outFile,datatype='FLT4S',format="GTiff",overwrite=FALSE) + #inform about saving + print(paste("saved raster:",outFile," Succesfully")) + } +}) \ No newline at end of file diff --git a/r/descriptiveStatistics_manyColumns.R b/r/descriptiveStatistics_manyColumns.R new file mode 100644 index 0000000..da2cf72 --- /dev/null +++ b/r/descriptiveStatistics_manyColumns.R @@ -0,0 +1,137 @@ +##Script to get the descriptive statistics of a table of data +##Reads may csv in working directory with cerain pattern +## Saves the statistics in a TXT in the same location as the data file +##July 2015 + +################# Check these inputs######################### +##Set working directory to avoid giving the absolute path of files +##IMPORTANT: use the / slash instead of the backslash \ in the paths +##Or use double backslash \\ +wd<-("C:/vuelos/ab2014/Marco/") +setwd(wd) +## Sets the pattern of name in CSV files to be read +data_set = list.files(pattern="vis[0-9]*.csv") +dir.create(paste(wd,"stats/",sep="")) #Creates a directory to store statistics + +#NOTE:#In this script the columns used to get the statistics go from[,6:46] +## because the first 5 have other data like coordinates and lenght +################# END Check these inputs######################### +#dir() # Lists files in the working directory +#dir.create("C:/test") #Creates a directory + +#Libraries used +library(pastecs) +library(tools) +library(Hmisc) +library(PerformanceAnalytics) + +##Load data in CSV format +# name_file_data<- file.choose() #Choose file, save name +# path_wo_extension<-file_path_sans_ext(name_file_data) #save path without extension +# data_basename<-basename(path_wo_extension) #save filename + +######### Load protein data ############# +##Fixed way, writing the name of file +protein_data_name<- "AB-Marco-protein.csv" +#Next read the data from the protein results file +##the parameter colClasses specifies to skip the second column of this data +protein_data<-read.csv(protein_data_name, header = TRUE, row.names = 1,colClasses = c("character","NULL","numeric")) +######### END Load protein data ############# + +### READ VIS data +##Here read for a CSV with headers and the ID of the entry on the first column +for (i in 1:length(data_set)) { + #Get names of vis + vis<-sub("[A-z]*[0-9]*_?","",x=colnames(get(data_set[i]))) + #assigns to variables each of the CSV + #Select the columns after the 6th one, because the firsts have ancillary data + assign(data_set[i], read.csv(data_set[i], + header = TRUE, row.names = 1, + colClasses = c("character",rep("NULL",5),rep("numeric",41)))) + ##Descriptive statistics on the data + data_stats<-stat.desc(get(data_set[i]),basic=TRUE, desc=TRUE, norm=TRUE, p=0.95) + # Values it returns: + # nbr.val (the count of values) + # nbr.null (the count of null values) + # nbr.na (the count of missing values) + # min + # max + # range + # sum + # median + # mean + # SE.mean + # CI.mean + # var + # std.dev + # coef.var + # skewness + # skew.2SE + # kurtosis + # kurt.2SE + # normtest.W + # normtest.p + + file_name<-file_path_sans_ext(data_set[i]) + ########### Graphs ############## + pdf(file=paste("stats/",file_name," plots.pdf", sep="")) + + #Correlation from Hmisc package: protein vs all vis + #merge protein & vis tables + col_to_compare<-merge(data.matrix(protein_data),data.matrix(get(data_set[i])),by="row.names") + rownames(col_to_compare)<-t(col_to_compare[1])#Set the rownames. traspose the column of rownames to make it match + col_to_compare<-col_to_compare[,2:length(col_to_compare)]#remove the first column with the rownames + data_corr<-rcorr(data.matrix(col_to_compare), type="pearson") + #Chart from PerformanceAnalytics Package + chart.Correlation(data_corr$r, histogram=FALSE,method = c("pearson")) + for (j in 1:length(vis)) { + + currcolumn_name<-colnames(get(data_set[i])[j]) + currcolumn <-get(data_set[i])[,j] + par(mfrow=c(2,1)) + #Boxplot + boxplot(currcolumn, main =paste("Boxplot ",currcolumn_name)) + #histogram + hist(currcolumn, main =paste("Histogram ",currcolumn_name),xlab = paste(currcolumn_name), nclass = 10) + #Get median and mean from calculated stats to draw in histogram + median<-data_stats[8,j] #median. + abline(v=median,lty=2,lwd=2,col="blue") + mean<-data_stats[9,j] #median. + abline(v=mean,lty=3,lwd=2, col="red") + legend("topleft", legend=c("median","mean"), col=c("blue","red"), lty=c(2,3),lwd=c(2,1)) + + } + dev.off();#Finish saving to PDF + ########### END Graphs ############## + + ##Write stats and correlation result to text file + output_name<- paste(wd, "stats/",file_name, "stats.csv", sep="") + write.csv(data_stats, file = output_name) + + write.csv(data_corr$r, file = paste(wd,"stats/", file_name, "corr.csv", sep="")) + write.csv(data_corr$r, file = paste(wd,"stats/", file_name, "corr_p.csv", sep="")) +} + +# #Example of a function +# f1 <- function(param1,param2){ +# param1*param1+param2 +# } +# a<-f1(param2=2,param1=3) + +##Add Quantile data +#data_quantile<-quantile(data$protein) +#write.table(data_quantile, file = output_name, sep = ",", +# col.names = FALSE, append=TRUE) + +#histogram +#hist(data$protein,xlab = "protein (%)", nclass = 18) + +##This is to create an histogram with normal curve from random data +# x <- rnorm(100) +# hist(x, freq=F) +# curve(dnorm(x), add=T) +# +# h <- hist(x, plot=F) +# ylim <- range(0, h$density, dnorm(0)) +# hist(x, freq=F, ylim=ylim) +# curve(dnorm(x), add=T) diff --git a/r/descriptiveStatistics_protein.R b/r/descriptiveStatistics_protein.R new file mode 100644 index 0000000..9b1cad3 --- /dev/null +++ b/r/descriptiveStatistics_protein.R @@ -0,0 +1,92 @@ +##Script to get the descriptive statistics of a table of data +##the column used to get the statistics is called "protein" +##You can replace "protein" to get the statistics from a different value in the table +## Saves the statistics in a TXT in the same location as the data file +##July 2015 + +##Set working directory to avoid giving the absolute path of files +##IMPORTANT: use the / slash instead of the backslash \ in the paths +##Or use double backslash \\ +setwd("C:/vuelos/ab2014/Marco") +#dir() # Lists files in the working directory +#dir.create("C:/test") #Creates a directory + +#Libraries used +library(pastecs) +library(tools) + +##Load data in CSV format +#name_file_data<- file.choose()#Interactive choose file +data_basename<-basename(file_path_sans_ext(name_file_data)) +##Fixed way, writing the name of file +name_file_data<- "AB-Marco-protein.csv" +##Here is for a CSV with headers and the ID of the entry on the first column +#data<-read.csv(file = name_file_data, header = TRUE, row.names = 1) +##Interactive way where you can select the file +data<-read.csv(name_file_data, header = TRUE, row.names = 1,colClasses = c("character","NULL","numeric")) + + +##Descriptive statistics on the data +data_stats<-stat.desc(data,basic=TRUE, desc=TRUE, norm=TRUE, p=0.95) +data_stats +# Values it returns: +# nbr.val (the count of values) +# nbr.null (the count of null values) +# nbr.na (the count of missing values) +# min +# max +# range +# sum +# median +# mean +# SE.mean +# CI.mean +# var +# std.dev +# coef.var +# skewness +# skew.2SE +# kurtosis +# kurt.2SE +# normtest.W +# normtest.p + +##Quantile +data_quantile<-quantile(data$protein) + +#Graphics to save to PDF +pdf(file=paste("stats/",file_name," plots.pdf", sep="")) +par(mfrow=c(2,1)) +#Boxplot +boxplot(data, main =paste("Boxplot ","protein")) +#histogram +hist(data, main =paste("Histogram protein"),xlab = "protein (%)", nclass = 20) +#Get median and mean from calculated stats to draw in histogram +median<-data_stats[8,1] #median. +abline(v=median,lty=2,lwd=2,col="blue") +mean<-data_stats[9,1] #median. +abline(v=mean,lty=3,lwd=2, col="red") +legend("topleft", legend=c("median","mean"), col=c("blue","red"), lty=c(2,3),lwd=c(2,1)) +dev.off(); +#Finish saving to PDF + +##Write result to text file +output_name<- paste(data_basename, "stats.csv", collapse = NULL) +write.csv(data_stats, file = output_name) +#Add quartile data to previous file +q<-c("value") +names(q)<-c("Quantiles_perc") +write.table(q, file = output_name, sep = ",", + col.names = FALSE, append=TRUE) +write.table(data_quantile, file = output_name, sep = ",", + col.names = FALSE, append=TRUE) + +##This is to create an histogram with normal curve from random data +# x <- rnorm(100) +# hist(x, freq=F) +# curve(dnorm(x), add=T) +# +# h <- hist(x, plot=F) +# ylim <- range(0, h$density, dnorm(0)) +# hist(x, freq=F, ylim=ylim) +# curve(dnorm(x), add=T) diff --git a/r/excel_to_row_column_CSV.R b/r/excel_to_row_column_CSV.R new file mode 100644 index 0000000..340aa85 --- /dev/null +++ b/r/excel_to_row_column_CSV.R @@ -0,0 +1,25 @@ +# Get field maps by trial in excel format and converto to the format to input in athena's script csv to kml. +##################################### WORK IN PROGRESSSSS + +#Libraries +#library("XLConnect") #For the excels +#library(reshape2) #for the melt + +source(file.path("C:","Dropbox","Software","Scripts","r","io_methods.R", fsep = .Platform$file.sep)) + +####### INPUTS + +#Field maps Excels location +fm_folder <- file.path("C:","Dropbox","data","AF","bw","BWOBREGON Y17-18","MAPAS DE SIEMBRA Y17-18", fsep = .Platform$file.sep) +setwd(fm_folder) +#trial to get all sections. Starts with... +trial <- "EYTBWBLHT" + +####### SCRIPT + +#Get all the excels in the wd that starts with the trial name +xlsx_list <-list.files(pattern= paste0("^",trial,".*\\.xlsx$")) # The \\. is escaping the .'s special char +#Get all the Excel fieldmaps in a table in the "row | col | plot" format +fieldmap_rowcol <- readFieldMapsExcel(xlsx_list) + +write.csv(fieldmap_rowcol,file.path("C:","vuelos","temp","fieldmap_rowcol.csv", fsep = .Platform$file.sep), row.names=FALSE) diff --git a/r/exercises_data_frames.R b/r/exercises_data_frames.R new file mode 100644 index 0000000..255d643 --- /dev/null +++ b/r/exercises_data_frames.R @@ -0,0 +1,230 @@ +####### Michael%20Dorman-Learning%20R%20for%20Geospatial%20Analysis +setwd("C:\\vuelos\\temp\\") #working directory for tests +myFile = file.path("C:","Dropbox", "data","AE","ae_stars","ae_data_extract.csv", fsep = .Platform$file.sep) +#Get only the file name from a path (with extension) +basename(myFile) +#without extension +library(tools) +tools::file_path_sans_ext("ABCD.csv") +dat = read.csv(myFile, stringsAsFactors = FALSE) +date <- dat$date +#Formatear como fechas las fechas +date <- as.Date(as.character(date),format = "%y%m%d") + # range_date <- range(date) + # all_dates <- seq(range_date[1],range_date[2],1) + # length(all_dates) + # length(date) + # which(all_dates %in% date) +#Vector lĂłgico checando cuales fechas son en enero +if_enero <- date >= as.Date("2017-01-01") & date <= as.Date("2017-1-31") +#porcentaje de las mediciones que fueron hechas en enero +#Todas / las de enero +sum(if_enero)/length(if_enero) +#subset las fechas que pertenecen a enero en base al vector lĂłgico +mediciones_enero <- date [if_enero] +#plot(date, 1:13, type = "l") ## ejemplo de plot lĂ­nea con fecha de mediciones + +#### Otro tema +## Data frames +##CREate one +df = data.frame( + num = 1:4, + lower = c("a","b","c","d"), + upper = c("A","B","C","D"), stringsAsFactors = FALSE) +##Examine the object +str(df) +##Subset a column of the data Frame, but always keep the data frame class +df[ ,3, drop = FALSE] +#Subset with another method, including a conditional, and the names of columns +df[df$lower %in% c("a","d"), c("lower","upper")] ##x %in% table +# Exclude rows that are not complete +df[complete.cases(df),] +##Create a column based on a specific value of a cell (row) +df$word[df$num == 2] <- "two" +## create another column mixing the others +df$mix <- paste(df$num,df$lower,df$upper, sep="") +##Use of ifElse +ifelse(df >= 2, ">2", "menor") +"a" > 2 +as.numeric("a") +#get the duplicated values of the vector +u[duplicated(u)] + +#####Another subject +###Apply family +#tapply : apply a function across subsets +#data +df$categories <- c("1","1","2","2") +#Get the mean vakue of a column, by groups +#An array is returned +df$mean <- tapply(df$num,df$categories, mean) ##tapply(values, categories, function) +#Eliminate column named "mean" +df <- df[, which(!(colnames(df) %in% "mean"))] #From the logical vector we get the indexes of the columns not named "mean" +#Check for missing values AKA NA's, an array is returned with its names, by group +na_values <- tapply(df$word, df$upper, function (x) any(is.na(x))) +#columns with NA values +names(na_values[na_values]) +##use the function apply. It can apply across rows or columns the functions +# parameter with value 1 or 2 refers if it should aggregate rows or columns +#Get the max from num and categories column +apply( df[, c("num","categories")], 2, max, na.rm =TRUE) +#paste values in the row +apply(df, 1, paste) + +####Another topic +##Changing between wide and long tables +##Wide tables are the ones which store in columns the different traits measured +## Long tables have format like: a ID / variables / value +library(reshape2) +#Change from wide to long table +long_table <- melt(df, id.vars =c("num","categories")) +#Change back from long to wide table +# a "formula object" is used in the form: varDependent ~ varIndependent +df <- dcast(long_table, ... ~ variable) # ... means all other variables + +#stack dataframes from a list +#Now put all the different fieldmaps in one table +length(do.call("rbind", list.of.df)) +rowcol_xlsxs <- mapply(rbind, list.of.df, SIMPLIFY=FALSE) #este creo que no hace eso... + +##### CHECK OUT dplyr and tidyr !!!!! ##### + +library(plyr) +##Summarize +## Create new columns by group and making operations +## Transform would append to the same table +df_summ <- ddply(df, .(categories), summarize, + nums_max = max(num*num), + l = length(mix), + word_ish = word[2], + sum_mean <- ifelse(categories[1] == 1, sum(num),mean(num))) +##repeat something several times +season = rep(c("winter","spring","summer","fall"), each = 3) +##MAKE A DATA JOIN !!!!!! +combined = join(df, + df_summ, + by = "categories", type = "left", match="all") +#Summarize the reps 1,2,3 to get just the mean value +ts <- aggregate(wlayer ~ noRep+depth+date, data=wLTable, FUN=mean) +##MATRIX +################################# +##create a matrix (2 dimensions) +m <- matrix(1:9,ncol=3, byrow=TRUE) +length(m) #Get lenght +nrow(m) #Get num of rows +ncol(m) #Get num of columns +dim(m) #get dimensions +as.vector(m) # get as linear vector ordered by columns +m[2, , drop = FALSE] #subset second row of the matix and keep the class Matrix +m[2:3, 1:2] = matrix(-1:-4, nrow = 2) #REplace values inside matrix +colMeans(m) # Get the mean values of each column of the matix +apply(m,2,mean) # Get the mean values of each column of the matix, again + +##ARRAY N -dimensions!! +##################################### +##Create an array (3 dimensions) +a = array(1:24, c(2,2,3)) +##Create Array that can store values for months of year, weeks, days, and hours of each day. Idea taken from Quora ask. +time_array = array(NA, c(24,7,4,12)) +rownames(time_array) <- paste(1:24,":00", sep = "") #set rownames +colnames(time_array) <- c("Lun", "Mar", "Mier","Jue","vier", "sab","dom") #set column names +dimnames(time_array)[[3]] <- c("semana1","semana2", "semana3","semana4") #Set names for the 3 dimension +dimnames(time_array)[[4]] <- paste("mes",1:12, sep = "_") #Set names for the 4th dimension + +##Raster!! +###################### +library(raster) +#Create a raster +r1 = raster(m) ## the input can be the filepath to an image, the parameter band= n selects a band other than the first +##the function brick can read directly a multiband raster +#Create a raster stack (multispectral raster) +s <- stack(r1, r1) +#Select a susbet of the bands from the stack +s[[1:2]] +nrow(s) ##Get number of rows from layer +nlayers(s) ## Get number of bands +dim(s) ##get dimensions +res(s) ## get the spatial resolution on X and Y +extent(s) ## get the bounds +CRS(proj4string(s)) ## Get the spatial reference, as a Coordinate Reference System Class CRS +##assign Reference system +proj4string(s) <- CRS("+proj=utm +zone=36 +ellps=WGS84 +units=m +no_defs") +names(s) #get the band names +#change band names +names (s) <- c("band1","band2") +hist(s) ## Get the histogram of the bands +writeRaster(s,"C:\\vuelos\\temp\\img.tif", + format = "GTiff", + overwrite = FALSE) +## VISUALIZE RASTER +library(rasterVis) +levelplot(s) #plot raster +library(plotKML) +plotKML(s[[1]]) #Export to KML from R +shp <- shapefile("C:\\Dropbox\\data\\AE\\nut\\shp\\521__ae__plt.shp") +plotKML(shp) #Export shapefile to KML from R +## Access raster values as a matrix +s[[1]][1, 1:3] ## raster[[band]][row,column] +## do something with the values +mean(s[[1]][]) ##get the mean of all layer 1 +sd(s[[1:2]][]) ##get the sd of all the 2 layers +s[2,2] ##Get all values of a pixel along the bands (matrix) +s[2,2][1,] ## ...in a vector format +## TRansform Raster to matrix or vector +as.matrix(s[[1]]) +as.array(s[[1:2]]) +## Operations +min(s, na.rm = TRUE) ## Raster of the min values along the bands +min(s[[1]][], na.rm = TRUE) ## value with the min value of first band + +######### CHECK CALC(operations on bands) and OVERLAY(between different rasters) functions +ndvi = function(x) (x[2] - x[1]) / (x[2] + x[1]) ##Formula to get NDVI +ndvi_00 = calc(s, fun = ndvi) ## get NDVI from multiband raster with CALC + +##Get number of null values in raster band +sum(is.na(s[[1]])[]) #thevalues are transformed to a vector with the [] +# Logical rasters can be used as masks and to apply values selectively +temp <- s[[1]] +temp[is.na(temp)] = mean(temp[], na.rm = TRUE) ##Replace NA with the mean value of all +temp[temp < 2] <- 2.5 ## USe a treshold to reassign a value in a raster +#Reclassify values on raster +##Directtly +temp1 <- temp +temp1[temp1 < 5] = -9 +temp1[temp1 >= 5] = 1 +#plot(temp1) +#hist(temp1) +##Using the reclassify function +temp2 = reclassify(temp, c(-Inf, 4.999, -9, 5, Inf, 1)) ## the ranges are passed as triplets: from, to , newValue + +## READ ENVI file as array +library("caTools") +envi <- read.ENVI("h170110escgeo.bsq", headerfile="h170110escgeo.hdr") +asRaster <- brick(envi) +levelplot(asRaster) + +#Order the data +dataFrame <- dataFrame[order(dataFrame$column),] + +###EGRAPH +# ggplot(data=tableSum, aes(x=date, y=wlayer,group=interaction(id, depth))) + +# geom_line(aes(color=depth))+ +# geom_point(aes(color=depth))+ +# labs(title = "Soil water content", x = "Date", y = "water layer (mm)")+ +# geom_col(aes(x=date, y=moisture,group=interaction(id, depth)))+ +# scale_y_continuous(sec.axis = sec_axis(~.*2, name = "Moisture (%)")) + +###SPRINTF +#thanks https://www.rdocumentation.org/packages/base/versions/3.4.1/topics/sprintf +## re-cycle arguments +sprintf("%s %d", "test", 1:3) + +## Using arguments out of order +sprintf("second %2$1.0f, first %1$1.2f, third %s", pi, 2, "3rd") #2f indica los decimales mostrados + +sprintf("min 10-char string '%10s'", + c("this", "that", "and an even longer one")) + +########## +#ggplot +# to match the secondary axis, the data is "transformed" and then adapted (divide and *) diff --git a/r/extract/AF_extract_with_mask2016.R b/r/extract/AF_extract_with_mask2016.R new file mode 100644 index 0000000..e34c69c --- /dev/null +++ b/r/extract/AF_extract_with_mask2016.R @@ -0,0 +1,155 @@ +#This script is a copy of the Protocol to evaluate Plant height +#Authors: Jose Manuel Mendoza Reyes and Lorena Gonzalez Perez +# this vas adapted to extract multispectral data from Aguafria 2016 +#Coments specific to make it work in obregón marked as #L# + +library (sp) +library (raster) +library(rgdal) +library(data.table) +library(plyr) +library(dplyr) + + +#L# Fixed parameters that should be edited each time +date<-"160511" + +############################## Funciones definidas + +### zonalStatsByPlot (Raster extracted by shapefile) and return a raster +zonalStatsByPlot <- function(shp,raster,fun){ +#Calculate Function by plot on raster, we get a data frame +shp_fun <- extract(raster,shp,df=TRUE, fun = fun, sp=TRUE) #sp=TRUE appends results to the shp table +#Put the Function label on the generated column +#toString and substitute are nedded to convert from "function" to "character" class +setnames(shp_fun@data, old="layer",new= toString(substitute(fun))) +#Rasterize Function +r_fun <- raster +r_fun <- rasterize(shp_fun, r_fun, field= toString(substitute(fun))) + +return(r_fun) +} +############################ Funciones definidas (END) + +#Select the work directory wich are the raster file and shp +setwd(choose.dir(getwd(), "Selecciona tu archivo")) + +#select the raster file +#L# +rfile<- file.choose(new = FALSE) +raster<- stack(rfile) +#Count bands +numBands <- dim(raster)[3] + +#select band X +#raster <- raster [[4]] +#plot(raster) + +#Calculate NDVI +NIR <- raster [[4]] +RED <- raster [[2]] +ndvi = (NIR - RED)/(NIR + RED) +plot(ndvi) +#Manipulate values below x ndvi value +#this may replaace the UDF function "soil.mask" directly on a raster +#ndvi_trshld <- ndvi +#ndvi_trshld[ndvi_trshld<=0.65] = NA +#plot(ndvi_trshld) + +#select the shapefile (a shp with buffer genereted in Arcgis) +#shp <- shapefile(list.files(pattern = "\\.shp$")) +#L# Select one file interactively +#shpName <- file.choose(new = FALSE) +shpName <- "C:/Dropbox/data/AD/AD-AF/shp/ad_af_bfs_UTM14.shp" +shp <-shapefile(shpName) +#Add colimn with simple numeric ID +shp$ID<-1:nrow(shp) +#plot(shp, add= TRUE) + +#Mask ndvi raster against the plots to get histogram +r_ndviPlots <- mask(ndvi, shp) +#plot(r_ndviPlots) +#hist(r_ndviPlots) + +#-----------STV filter +#Calculate STANDARD deviation by plot, return as raster +r_sd <- zonalStatsByPlot(shp,r_ndviPlots,fun=sd) +#plot(r_sd) +#Calculate MEAN by plot, return as raster +r_mean <- zonalStatsByPlot(shp,r_ndviPlots,fun=mean) +#plot(r_mean) +#Apply conditional funtion to exclude what is outside 2-SD by plot +lim_sup <- r_mean + r_sd*2 +lim_inf <- r_mean - r_sd*2 +r_ndviMasked <- overlay(r_ndviPlots, lim_sup, lim_inf, + fun=function(r,lim_sup,lim_inf){ + ifelse(r< lim_sup & r> lim_inf, r, NA)}) +#-----------STV filter (END) + +#-----------quantiles filter +# #Calculate Qs by plot +# shp_Q <- extract(r_ndviPlots,shp,df=TRUE, fun = quantile, sp=TRUE) #sp=TRUE appends results to the shp table +# #Put the Function label on the generated column +# #Rename the column names +# colnames(shp_Q@data)[5:9] <- c("Q0", "Q1", "Q2","Q3","Q4") +# #Rasterize Function and get the interquantile range and limits that define outliers +# r_Q1 <- r_ndviPlots +# r_Q3 <- r_ndviPlots +# r_Q1 <- rasterize(shp_Q, r_Q1, field= "Q1") +# r_Q3 <- rasterize(shp_Q, r_Q3, field= "Q3") +# r_RIC <- r_Q3 - r_Q1 +# r_lim_supQ <- r_Q3 + r_RIC * 1.5 +# r_lim_infQ <- r_Q1 - r_RIC * 1.5 +# +# maskSupQ <- (r_ndviPlots < r_lim_supQ) +# maskInfQ <- (r_ndviPlots > r_lim_infQ) +# maskQ <- maskSupQ * maskInfQ +# +# r_ndviPlotsMaskedQ <- mask(r_ndviPlots, maskQ, maskvalue=0) + +#-----------quantiles filter (END) + +#Save view to pdf +pdf(file=paste("masked ndvi stdv",date," plots.pdf", sep="")) +par(mfrow=c(1,1)) +plot(r_ndviMasked) +hist(r_ndviMasked) +dev.off(); + +#Save to WD +writeRaster(r_ndviMasked, filename= paste(date, "ndvi_maskSTDV.tif"), format = "GTiff") + +#Overlap and extract the pixel value in each polygon +Tableclean <- extract(r_ndviPlotsMaskedQ,shp, na.rm=TRUE) + + +#Calculate the descriptive statistics of the new list without outliers and convert it in a data base + +allstats = lapply(Tableclean,summary) +sd = lapply(Tableclean, sd) +n = lapply(Tableclean, length) + +#Join all the statistics calculated in one table +desc.stats.t = mapply(c,allstats,sd, n) + +# Transpose the matrix +desc.stats <- t(desc.stats.t) + + +#Convert to data frame +df <- as.data.frame(desc.stats) + +# Add the rownames as a new column +setDT(df, keep.rownames = TRUE)[] + +#Rename the columns +colnames(df)[1:9]<-c("Plot", "Min", "Q1", "Median", "Mean", "Q3", "Max", "SD", "n") + +#Rewrite again the data frame +df<-data.frame(df) + +# Average the values using the unique ID (Plot names) +#final.df=aggregate(cbind(Min, Q1, Median, Mean, Q3, Max, SD, n)~Plot,df, mean) + +#write the final table +write.csv(df,paste(date,"_ndviMaskedQ.csv", sep="")) diff --git a/r/extract/AF_extract_with_mask2016_test_Dataframe.R b/r/extract/AF_extract_with_mask2016_test_Dataframe.R new file mode 100644 index 0000000..239a08f --- /dev/null +++ b/r/extract/AF_extract_with_mask2016_test_Dataframe.R @@ -0,0 +1,230 @@ +#This script is a copy of the Protocol to evaluate Plant height +#Authors: Jose Manuel Mendoza Reyes and Lorena Gonzalez Perez +# this vas adapted to extract multispectral data from Aguafria 2016 +#Coments specific to make it work in obregón marked as #L# + +library (sp) +library (raster) +library(rgdal) +library(data.table) +library(plyr) +library(dplyr) + + +#L# Fixed parameters that should be edited each time +date<-"160407" +band <- "B1" + +############################## Funciones definidas + +### zonalStatsByPlot (Raster extracted by shapefile) and return a raster +zonalStatsByPlot <- function(shp,raster,fun){ +#Calculate Function by plot on raster, we get a data frame +shp_fun <- extract(raster,shp,df=TRUE, fun = fun, sp=TRUE) #sp=TRUE appends results to the shp table +#Put the Function label on the generated column +#toString and substitute are nedded to convert from "function" to "character" class +setnames(shp_fun@data, old="layer",new= toString(substitute(fun))) +#Rasterize Function +r_fun <- raster +r_fun <- rasterize(shp_fun, r_fun, field= toString(substitute(fun))) + +return(r_fun) +} +############################ Funciones definidas (END) + +#Select the work directory wich are the raster file and shp +setwd(choose.dir(getwd(), "Selecciona tu archivo")) + +#select the raster file +#L# +rfile<- file.choose(new = FALSE) +raster<- stack(rfile) +#Count bands +numBands <- dim(raster)[3] + +#select band X +#raster <- raster [[4]] +#plot(raster) + +#Calculate NDVI +NIR <- raster [[4]] +RED <- raster [[2]] +ndvi = (NIR - RED)/(NIR + RED) +plot(ndvi) +#Manipulate values below x ndvi value +#this may replaace the UDF function "soil.mask" directly on a raster +#ndvi_trshld <- ndvi +#ndvi_trshld[ndvi_trshld<=0.65] = NA +#plot(ndvi_trshld) + +#select the shapefile (a shp with buffer genereted in Arcgis) +#shp <- shapefile(list.files(pattern = "\\.shp$")) +#L# Select one file interactively +#shpName <- file.choose(new = FALSE) +shpName <- "C:/Dropbox/data/AD/AD-AF/shp/ad_af_bfs_UTM14.shp" +shp <-shapefile(shpName) +#Add colimn with simple numeric ID +shp$ID<-1:nrow(shp) +#plot(shp, add= TRUE) + +#Mask ndvi raster against the plots to get histogram +r_ndviPlots <- mask(ndvi, shp) +#plot(r_ndviPlots) +#hist(r_ndviPlots) + +#-----------STV filter +#Calculate STANDARD deviation by plot, return as raster +# r_sd <- zonalStatsByPlot(shp,r_ndviPlots,fun=sd) +# #plot(r_sd) +# #Calculate MEAN by plot, return as raster +# r_mean <- zonalStatsByPlot(shp,r_ndviPlots,fun=mean) +# #plot(r_mean) +# #Apply conditional funtion to exclude what is outside 2-SD by plot +# lim_sup <- r_mean + r_sd*2 +# lim_inf <- r_mean - r_sd*2 +# r_ndviMasked <- overlay(r_ndviPlots, lim_sup, lim_inf, +# fun=function(r,lim_sup,lim_inf){ +# ifelse(r< lim_sup & r> lim_inf, r, NA)}) +#-----------STV filter (END) + +#-----------quantiles filter +#Calculate Qs by plot +shp_Q <- extract(r_ndviPlots,shp,df=TRUE, fun = quantile, sp=TRUE) #sp=TRUE appends results to the shp table +#Put the Function label on the generated column +#Rename the column names +colnames(shp_Q@data)[5:9] <- c("Q0", "Q1", "Q2","Q3","Q4") +#Rasterize Function and get the interquantile range and limits that define outliers +r_Q1 <- r_ndviPlots +r_Q3 <- r_ndviPlots +r_Q1 <- rasterize(shp_Q, r_Q1, field= "Q1") +r_Q3 <- rasterize(shp_Q, r_Q3, field= "Q3") +r_RIC <- r_Q3 - r_Q1 +r_lim_supQ <- r_Q3 + r_RIC * 1.5 +r_lim_infQ <- r_Q1 - r_RIC * 1.5 + +maskSupQ <- (r_ndviPlots < r_lim_supQ) +maskInfQ <- (r_ndviPlots > r_lim_infQ) +maskQ <- maskSupQ * maskInfQ + +r_ndviPlotsMaskedQ <- mask(r_ndviPlots, maskQ, maskvalue=0) + +#-----------quantiles filter (END) + +#Save view to pdf +pdf(file=paste("masked ndvi quantiles",date," plots.pdf", sep="")) +par(mfrow=c(1,1)) +plot(r_ndviPlotsMaskedQ) +hist(r_ndviPlotsMaskedQ) +dev.off(); + +#Save to WD +writeRaster(r_ndviPlotsMaskedQ, filename= paste(date, "ndvi_maskQuantiles.tif"), format = "GTiff") + + +#Overlap and extract the pixel value in each polygon +#pixelval <- extract(plant.height,shp) +#L save as date.frame +#pixelval <- extract(raster,shp,df=TRUE) +pixelval <- extract(ndvi,shp,df=TRUE) # when extracting directly from the input raster + +#L# if you want to create a "Popup" on windows, as a notification +#system('CMD /C "ECHO The R process has finished running && PAUSE"', +# invisible=FALSE, wait=FALSE) + +#L# Save to PDF the histograms of each plot +# pdf(file=paste("histograms ndvi",date," plots.pdf", sep="")) +# par(mfrow=c(4,4)) +# +# for( i in unique(pixelval[,1])){ +# hist(pixelval[pixelval$ID == i,2], +# main = paste("Hist Plot",i), +# nclass = 15, +# xlab = "rfl") +# } +# +# +# dev.off(); +#L# Finish Save to PDF + +#Add the plot name to the pixel value list +#names(pixelval)<- shp$plot_trial + +#L# assign plot rownames based on the ID column of the DF generated by the extract function +#save the shapefile dataframe as an object +shpDF <- as.data.frame(shp$plot_trial,stringsAsFactors=TRUE) +#Rename the column to ID +setnames(shpDF,"shp$plot_trial","plot") +#create column with the rownames and rename to ID +shpDF1 <- cbind(rownames(shpDF),shpDF) +colnames(shpDF1)[1] <- "ID" +#Merge both tables based on the ID as key +pixelval = merge(pixelval, shpDF, by="ID") + + +#function to eliminate soil pixels +# soil.mask <- function(p,threshold){ +# #Keep all the values greater than the threshold +# p.1 = subset(p,p >threshold) +# return(p.1) +# } +# +# #Apply the mask to the list +#PlantsValue <- lapply(pixelval,threshold=t,soil.mask) +#L# applied filter without custom function, using conditional indexing +#this keeps only the rows which are bigger than the treshold on the column 2 (pixel value) +PlantsValue <- pixelval[pixelval[,2]>t, ] + +#function to calculate and eliminate outliers +outliers <- function(dat){ +n=2 +a=median(dat) +b=sd(dat) +limitesuperior=(a+n*b) +limiteinferior=(a-n*b) +dat1= subset(dat,dat <= limitesuperior & dat >= limiteinferior) +return(dat1) +} + +#extract the outliers +#Tableclean = lapply(pixelval,outliers) +#L +#L# if you want to create a "Popup" on windows, as a notification +system('CMD /C "ECHO Work in progress && PAUSE"', + invisible=FALSE, wait=FALSE) + +Tableclean2 <- PlantsValue +Tableclean2[2] <- lapply(Tableclean2[2], outliers) #SOMETHING IS WRONG HERE +class (Tableclean2) +#str(Tableclean) + +#Calculate the descriptive statistics of the new list without outliers and convert it in a data base + +allstats = lapply(Tableclean,summary) +sd = lapply(Tableclean, sd) +n = lapply(Tableclean, length) + +#Join all the statistics calculated in one table +desc.stats.t = mapply(c,allstats,sd, n) + +# Transpose the matrix +desc.stats <- t(desc.stats.t) + + +#Convert to data frame +df <- as.data.frame(desc.stats) + +# Add the rownames as a new column +setDT(df, keep.rownames = TRUE)[] + +#Rename the columns +#pops up a warning, check +colnames(df)[1:9]<-c("Plot", "Min", "Q1", "Median", "Mean", "Q3", "Max", "SD", "n") + +#Rewrite again the data frame +df<-data.frame(df) + +# Average the values using the unique ID (Plot names) +final.df=aggregate(cbind(Min, Q1, Median, Mean, Q3, Max, SD, n)~Plot,df, mean) + +#write the final table +write.csv(final.df,paste(date,band,"_rfl.csv", sep=""), row.names=FALSE) diff --git a/r/extract/extract_data2017.R b/r/extract/extract_data2017.R new file mode 100644 index 0000000..e423234 --- /dev/null +++ b/r/extract/extract_data2017.R @@ -0,0 +1,153 @@ +## Script to extract values from imagery +## Input files are indicated in a Postgres table +## Lorena 2017 +########################################## WORK in progressssssssssssssssssssssssssssssssssssss !"#$&$%/&(/)&/()&" + +#Special comments +#.# this is very specific to this data +#!# Error code or work in progress + +############################LIBRARIES +library(plyr) +library (raster) +library(rgdal) +library(reshape2) +require("RPostgreSQL") +library("caroline") + +####Fixed things} +##The drive where the imagery is located +baseDir <- file.path("G:","AE", fsep = .Platform$file.sep) +#setwd(baseDir) + +############################FUNCTIONS + +#Function to check if file exists +#!# + +##############################SCRIPT + +##<<<<<<<<<<<<<<<<# Connect to database { +##based on r-bloggers.com getting-started-with-postgresql-in-r +# install.packages("RPostgreSQL") +#require("RPostgreSQL") + +# create a connection to a DB in postres +# save the password that we can "hide" it as best as we can by collapsing it +pw <- { + "cimmyt" +} + +# loads the PostgreSQL driver +drv <- dbDriver("PostgreSQL") +# creates a connection to the postgres database +# note that "con" will be used later in each connection to the database +# here the connection values should be specified +connection <- dbConnect(drv, dbname = "ceneb_nut", + host = "localhost", port = 5432, + user = "postgres", password = pw) +rm(pw) # removes the password + +# check for the table "capture" to test connection +dbExistsTable(connection, "capture") +# TRUE means there is connection + +# fetch the data from postgreSQL #capture" table +df_capture <- dbGetQuery(connection, "SELECT * from capture") #Returns a dataframe type + +# close the connection when finished +dbDisconnect(connection) +dbUnloadDriver(drv) +##>>>>>>>>>>>>># } connection to DB losed + +##Select values of interest to extract +#only the ones that meet the required criteria +#.# get the rows which "extract_now" == 1, keep all columns (but "extract_now") +log <- df_capture[df_capture$extract_now %in% 1 & df_capture$sensor %in% c("t","h"), 1:5] +#this just to get the date format I want +log$date <- gsub("-", "", log$cap_date, fixed = TRUE) #.# +log$date <- gsub("^2017", "17", log$date) #.# ^ is to represent the begining of the string + +#This df will be to query the extension & suffix of the raster depending on the camera +#Cam values could be factors... +###############!########## thisshould be imported from the Database as well +img_notes <- data.frame("sensor"=c("t","h"), + "ext"=c(".tif",".bsq"), + "sfx" =c("geo","geo"), + "folder" =c("geo","rfl_spr_ort_geo"), + "nBands" = c(1,62), + stringsAsFactors = FALSE) + +#Now we need to be able to form the location of the imagery +#we add the img_notes to the log, based on the sensor +log <- join(log, + img_notes, + by = "sensor", type = "left", match="all") +#Put the info from ("sensor","date","area","processing stage suffix","extention") together +img_names <- apply(log[,c("sensor","date","area","sfx","ext")],1,paste,collapse="") #one way to paste all the values by row +img_paths <- paste(log$date,log$sensor,log$folder,sep=.Platform$file.sep) #another way to paste values in the same row +img_lists <- paste(baseDir,img_paths,img_names,sep=.Platform$file.sep) + +#Check files that exist and not +# Yes exist +files_exist <- img_lists[file.exists(img_lists)] +#length(files_exist) +# Does not exist, allows to check what happened +files_not_exist <- img_lists[!file.exists(img_lists)] + +############### #!# EXTRACT (still work in progress) + +#To extract the data we need the location of the plot polygons +#!# This should be taken from the spatial database +#.# For now this is hardcoded + +##import the shapefile of sampling points of the experiments +shp_esc <- shapefile("C:\\Dropbox\\data\\AE\\ae_stars\\esc\\shp\\esc__ae__pts.shp") +shp_ser <- shapefile("C:\\Dropbox\\data\\AE\\ae_stars\\ser\\shp\\ser__ae__pts.shp") +shp_ros <- shapefile("C:\\Dropbox\\data\\AE\\ae_stars\\ros\\shp\\ros__ae__pts.shp") + +## if you wanted to save a shapefile: +#writeOGR(obj=file_to_be_saved, dsn="algo", layer="file_to_be_saved", driver="ESRI Shapefile") + +#Next extract the mean values of the raster at the point locations, using a buffer, ignore noData +#!# +##the parameter "layer" is potentially useful to append the result to the shapefile table +buff = 1.5 ##Seleccionar tamaño de buffer. Units are the projection units -> meters +######## HARDCODED FOR TESTS#.# +img <- stack(img_lists[15])## create the raster stack from the image name(stack because its mutispectral) #!# +#Extraction execution +table <-extract(img,shp_ser, buffer=buff,fun = mean, df =TRUE, na.rm = TRUE) #this takes around 5 min to run each image +rm(img) # Remove the raster stack from memory after use to avoid overload + +#################################### data manupulation +#!# # # # # # Missing to implement quality checks here of the data +## Rename column names (with the band information) to simplify them +nBands <- img_notes$nBands[img_notes$sensor == "h"] ###################!!!!!!!!!!!#!#!!######.###### HARDCODED h +names(table) <- c("ID", seq(1,nBands)) ###################!!!!!!!!!!!#!#!!######.###### HARDCODED. Here I should know how many band there are depending on the sensor +#Change from wide to long table to manage better the different number of bands +table1 <- melt(table, id.vars = "ID") #####!### where did ID come from??? +table1$trial <- "esc" ###################!!!!!!!!!!!#!#!!######.###### HARDCODED +table1$date <- "2017-01-23" #############!!!!!!!!!!!#!#!!######.###### HARDCODED +table1$sensor <- "h" ####################!!!!!!!!!!!#!#!!######.###### HARDCODED + + +#!# # # # ########## SAVE DATA to DB (still work in progress) + + +# add rows to the PostgreSQL database , table "capture" +#library("caroline") #!# NEED to CHECK THIS, cant make it insert values iin a table with a serial type +#!# NEED to CHECK THIS +# +#max_id <- dbGetQuery(connection, "select max(id) from measurement") #Returns a last position for the serial +#max_id <- max_id +1 +#class(max_id) +#rows <- nrow(table1) +#table1$serial_test <- seq(max_id+1,rows)################!!!!!!!!!!!#!#!!######.###### HARDCODED. serial test +# +#df <- table1[,c("serial_test","ID","trial","date","sensor","value","variable")] +#names(df) <- c("id", "plot_msure","trial_msure","date_msure","sensor_msure","value_msure","variable_msure") + +#dbWriteTable(connection, "measurement", value = df, append=TRUE,row.names=FALSE) + + +#!# # # # ########## EDN SAVE DATA to DB (still work in progress) diff --git a/r/formulas_maiz_sas.txt b/r/formulas_maiz_sas.txt new file mode 100644 index 0000000..f3a9a9e --- /dev/null +++ b/r/formulas_maiz_sas.txt @@ -0,0 +1,52 @@ +ATA AB250C1; +INFILE 'Z:\ALLSASFILES\AB250C1.DAT'; +INPUT REP NTRT HA HEIGHT NPLANT GRANO WM DM WG DG DW5P DW5M DW5G; + + +YIELD0=(((GRANO)+DW5G)/HA)*10; +*HI=(DW5GRAIN /((TW5P*(DSTRAWSUB5P/WSTRAWSUB5P)) + DW5MAZ)); +HI=(DW5G / ((DW5P))); +BIOMASS2=YIELD0/HI; +MOIST=WG-DG; +*W1000=W400*1000/400; +*GRAINSM2=(YIELD0*100)/W1000; +YIELD14=(((GRANO+DW5G)*10)/HA)*((100-(((WG-DG)/WG)*100))/(100-14)); + +*YIELD12=((GRANO*10)/HA)*((100-(((WG-DG)/WG)*100))/(100-12)); +*NGBIOMAS=BIOMASS-YIELD0; +*NTOT=(YIELD0*(NGRANO/100))+(NGBIOMAS*(NSTRAW/100)); +*PROT=NGRANO*5.83; +*LABEL BIOMASS='DRY BIOMASS (Kg/ha)'; +*LABEL YIELD0='YIELD Kg/ha at 0% moisture'; +*LABEL HI='HARVEST INDEX'; +*LABEL W1000='1000 KERNEL WT. gms/1000 KERNELS'; +LABEL YIELD14='YIELD KG/HA AT 14% MOISTURE'; +*LABEL NGBIOMAS='NON GRAIN BIOMASS (KG/HA)'; +PROC SORT; +BY NTRT REP; +PROC PRINT; +*VAR REP NTRT HIGHT PLANTS BIOMASS WMAZTOT TW6P WW6MAZ DW6MAZ DW6GRAIN WSTRAWSUB6P DSTRAWSUB6P GRANO WG DG; +VAR REP NTRT YIELD14 YIELD0 BIOMASS2 HI MOIST DW5G; +PROC GLM; +CLASS REP NTRT; +MODEL YIELD14 YIELD0 BIOMASS2 HI DW5G + = REP NTRT; +MEANS NTRT/ LSD; +MEANS NTRT; +PROC GLM; +CLASS REP NTRT; +MODEL YIELD14 YIELD0 BIOMASS2 HI + = REP NTRT NPLANT; +LSMEANS NTRT; +PROC CORR NOSIMPLE RANK; + VAR YIELD14 YIELD0 BIOMASS2 HI DW5G; +RUN; +*PROC SORT; + *BY NTRT; +*PROC MEANS NOPRINT; + *VAR YIELD12 BIOMASS HI W1000 CHLH NGRANO NHB NSTRAW NTOT; + *BY NTRT; +*OUTPUT OUT=K801 MEAN= YIELD12M BIOMASSM HIM W1000M CHLHM NGRANOM NHBM + NSTRAWM NTOTM; + + diff --git a/r/functions_ImgProcessing.R b/r/functions_ImgProcessing.R new file mode 100644 index 0000000..24ff712 --- /dev/null +++ b/r/functions_ImgProcessing.R @@ -0,0 +1,26 @@ +#functions for image processinh + +require(raster) + +#Para agarrar las 4 bandas de reflectancia de la sequoia y unirlas en un archivo +stackSeq <- function(name,path){ + r_green <- file.path(path,paste0(name,"_transparent_reflectance_","green",ext), fsep = .Platform$file.sep) + r_red <- file.path(path,paste0(name,"_transparent_reflectance_","red",ext), fsep = .Platform$file.sep) + r_rededge <- file.path(path,paste0(name,"_transparent_reflectance_","red edge",ext), fsep = .Platform$file.sep) + r_nir <- file.path(path,paste0(name,"_transparent_reflectance_","nir",ext), fsep = .Platform$file.sep) + #print(r_nir) + s <- stack(r_green, + r_red, + r_rededge, + r_nir) + return(s) +} + + + +require(rgdal) + +# Read the feature class +get_feature <- function(feature,database) {readOGR(dsn=database,layer=feature)} +# Read a shapefile +get_shape <- function(shape,path){readOGR(dsn = path, layer = shape)} \ No newline at end of file diff --git a/r/getCeptometerDataFromExcel.R b/r/getCeptometerDataFromExcel.R new file mode 100644 index 0000000..9605631 --- /dev/null +++ b/r/getCeptometerDataFromExcel.R @@ -0,0 +1,104 @@ +#### +# ceptimeter sampling data FROM THE EXCEL FIle indicated.fixed format +# STORE TO local DATABASE by par date in a table +#### + +#library(xlsx) +library(RMySQL) +library(XLConnect) + +############################ FUNCTIONS DEFINITION + + +#########Read Excel sheets +getCeptometerFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsp){ + xlxsF =file + wb <- loadWorkbook(xlxsF) + sheets <- getSheets(wb) + sheets <- lapply(sheets,function(x) tolower(x)) + setMissingValue(wb, value = "NA") + sheetsIndex <- startSheet:length(sheets)#Avoid the first x sheets of this file because they dont have data + df.list <- readWorksheetFromFile(xlxsF, #Get the data of th xlsx file + sheet = sheetsIndex, + header=TRUE, + colTypes = colTypes, + endCol = endCol, + endRow=endRow) + #Next just rename the columns + for (i in 1:length(df.list)){ + colnames(df.list[[i]])<-col_names + } + + sheets <- sheets[-c(1:(startSheet-1))] #Remove the sheet names that were not used + + samplings = length(sheets) # Total sampling dates + #add date info in column + #For every sampling date + for (s in 1:samplings) { + df.list[[s]]<-df.list[[s]][df.list[[s]]$id<=maxsp,] #Exclude points above 40 FOR ESCAMILLA etc + sPoints = length(df.list[[s]]$id) #total samples per date + for (i in 1:sPoints) { + print(paste("sampling",sheets[s],"sample",df.list[[s]]$id[i])) + df.list[[s]]$date[i] <- as.character(sheets[s]) #add date info in column + } + } + + return (list(df.list,sheets)) +} + +##Replace something in a column of a df list +replaceInCol <- function(df_list,col,txt_orig,txt_replace){ + r_df_list<-df_list + for(i in 1:length(df_list)){ + print(i) + l <- length (r_df_list[[i]][,col]) + for(j in 1:l){ + print(j) + print(df_list[[i]][j,col]) + r_df_list[[i]][j,col] <- gsub(txt_orig, txt_replace, df_list[[i]][j,col]) + } + + } + return(r_df_list) +} + +################################# EXECUTE SCRIPT +############# INPUTS +file="C://Dropbox//data//AD//AD-STARS//ros//ad_ros_ceptometer.xlsx" +trial <- "ros" +whatData <- "par" #What does this data represent +col_names<-c('id', + 'par', + 'par_time', + 'par_ref', + 'ref_time') +colTypes <- c('numeric', 'numeric', 'character','numeric','character') +maxsp<-25 +##Edit next +##getMoistreFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsamplepointID) +mData <- getCeptometerFromExcel(file, 2,5,26,colTypes,col_names,maxsp) #get the moisture data[[1]] and sheetnames[[2]] +############# END INPUTS +##Resulting data +dates<-mData[[2]] +mData <-mData[[1]] + +##Replace the data "wrong date" in column 3 to keep the time only +#mData <- replaceInCol(mData,5,"1899-12-31 ","") + + +##Connecto to local Database +mydb = dbConnect(MySQL(), user='root', password='cimmyt', dbname='ac_stars', host='localhost') +#dbListFields(mydb, 'ros') #List fields on table + +#Save moisture data to DB +for(i in 1:length(dates)){ + ##Check if table already exists... + tExists = dbSendQuery(mydb, paste("SHOW TABLES LIKE '", dates[[i]],"'",sep="")) ##ask if the table exists + data = dbFetch(tExists, n=-1) #get results. The n=-1 is to get all the results, can be used to set a MAX + if(length(row.names(data))==0){ #If the table doesnt exists + print(dates[[i]]) + #withe df to DB + dbWriteTable(mydb, value = mData[[i]], name = paste(trial,dates[[i]],whatData,sep=""), row.names = FALSE) #THere is an issue vs append and autoincrement index + } +} + diff --git a/r/getDataFromDB.R b/r/getDataFromDB.R new file mode 100644 index 0000000..7a6e2cb --- /dev/null +++ b/r/getDataFromDB.R @@ -0,0 +1,25 @@ +#### +# GET local DATABASE +#### + +#library(xlsx) +library(RMySQL) +library(XLConnect) + +############################ FUNCTIONS DEFINITION + + +##Connecto to local Database +mydb = dbConnect(MySQL(), user='root', password='cimmyt', dbname='ac_stars', host='localhost') +tables <- dbListTables(mydb) #List tables on DB +t<- "esc151111ar1" +for (t in tables) { + ##Make a query + rs = dbSendQuery(mydb, paste("select * from",t)) + #fetch function to get the data + data = fetch(rs, n=-1) +} + +new <- merge(table,data, by = "id") + +table$(paste(toString(t),"moisture")) <-data[,c("moisture")] diff --git a/r/global.R b/r/global.R new file mode 100644 index 0000000..b0368f0 --- /dev/null +++ b/r/global.R @@ -0,0 +1,2 @@ +library("shiny") +library("foreign") diff --git a/r/greenseeker/2_juntar_lecturas_v0.R b/r/greenseeker/2_juntar_lecturas_v0.R new file mode 100644 index 0000000..884e1ab --- /dev/null +++ b/r/greenseeker/2_juntar_lecturas_v0.R @@ -0,0 +1,32 @@ +# Aggregate all the ndvi readings ordered from their CSV files +#The files are the ones generated by the "ordenar_lecturas_V0.R" script + +############## Functions source +source(file.path("C:","Dropbox","Software","Scripts","r","greenseeker","methods_greenseeker.R", fsep = .Platform$file.sep)) + +##Get all the CSV files from the corresponding trial,They are separated by folders +#Set the WD +path <- setwd(choose.dir(default = file.path("C:","Dropbox","data","AF", fsep = .Platform$file.sep), caption = "Select folder to work on")) +#Get the name of theworking directory +basenameF <- basename(path) +## Get the names of the files. Expected something like : eg. AF_230_020418_ndvi.csv +ndvisF <- list.files(path = path ,pattern="[0123456789]{6}(_ndvi){1}\\.csv$") +# GET THE DATA +ndvis = lapply(ndvisF, read.table,header = TRUE,sep = ",") #We get a list of dataframes +##Add a column for the date to each dataaframe +for (day in 1:length(ndvisF)) { + #Traverse the list of dataframes and Get the date from the initial list of files + ndvis[[day]]$samp_date <- toString(get6DigitDate(ndvisF[day])) + #We also add a column for the tratment of each plot (AKA ID will disregard the repetition) + ndvis[[day]]$treatment <- substr(ndvis[[day]]$Plot,2,4) #not include the rep ID in the plot +} +#merge them all in one table, stacking the rows +ndvi_all1 <- Reduce(rbind,ndvis) +#Average by the treatment +ndvi_by_treatment <- averageNDVI_byTreatment(ndvi_all1) +#ordered by date +ndvi_by_treatment <- ndvi_by_treatment[order(ndvi_by_treatment$samp_date),] +#Make the date format as dd-mm-yy +ndvi_by_treatment$samp_date <- paste(substr(ndvi_by_treatment$samp_date,1,2),substr(ndvi_by_treatment$samp_date,3,4),substr(ndvi_by_treatment$samp_date,5,6),sep="-") +#Save to file, add the prefix of the working directory +write.csv(ndvi_by_treatment,paste0(basenameF,"_ndvi_avg_by_treatment.csv"), row.names=FALSE) diff --git a/r/greenseeker/ejemplos_archivos_entrada/AF_230_mapa_norte_arriba.csv b/r/greenseeker/ejemplos_archivos_entrada/AF_230_mapa_norte_arriba.csv new file mode 100644 index 0000000..107f26d --- /dev/null +++ b/r/greenseeker/ejemplos_archivos_entrada/AF_230_mapa_norte_arriba.csv @@ -0,0 +1,12 @@ +3322,3323,3321,3324,3325,3113,3114,3111,3115,3112,3223,3221,3224,3225,3222 +3342,3344,3345,3341,3343,3125,3122,3124,3121,3123,3212,3215,3213,3211,3214 +3333,3334,3331,3332,3335,3144,3141,3143,3145,3142,3245,3241,3242,3244,3243 +3312,3315,3311,3314,3313,3133,3134,3132,3135,3131,3233,3234,3235,3232,3231 +2243,2244,2241,2242,2245,2334,2331,2335,2333,2332,2134,2133,2132,2131,2135 +2224,2221,2222,2225,2223,2315,2312,2311,2314,2313,2145,2144,2141,2142,2143 +2212,2214,2213,2211,2215,2345,2342,2343,2344,2341,2123,2125,2122,2121,2124 +2232,2233,2231,2234,2235,2324,2325,2322,2323,2321,2112,2114,2115,2111,2113 +1145,1144,1143,1142,1141,1213,1212,1211,1214,1215,1345,1341,1343,1342,1344 +1131,1132,1133,1134,1135,1222,1224,1225,1223,1221,1333,1332,1334,1335,1331 +1125,1124,1123,1122,1121,1234,1231,1232,1233,1235,1312,1314,1311,1315,1313 +1111,1112,1113,1114,1115,1244,1241,1242,1245,1243,1324,1325,1322,1321,1323 diff --git a/r/greenseeker/ejemplos_archivos_entrada/orden_de_muestreo_GS_230.csv b/r/greenseeker/ejemplos_archivos_entrada/orden_de_muestreo_GS_230.csv new file mode 100644 index 0000000..fb3e15e --- /dev/null +++ b/r/greenseeker/ejemplos_archivos_entrada/orden_de_muestreo_GS_230.csv @@ -0,0 +1,12 @@ +12,13,36,37,60,61,84,85,108,109,132,133,156,157,180 +11,14,35,38,59,62,83,86,107,110,131,134,155,158,179 +10,15,34,39,58,63,82,87,106,111,130,135,154,159,178 +9,16,33,40,57,64,81,88,105,112,129,136,153,160,177 +8,17,32,41,56,65,80,89,104,113,128,137,152,161,176 +7,18,31,42,55,66,79,90,103,114,127,138,151,162,175 +6,19,30,43,54,67,78,91,102,115,126,139,150,163,174 +5,20,29,44,53,68,77,92,101,116,125,140,149,164,173 +4,21,28,45,52,69,76,93,100,117,124,141,148,165,172 +3,22,27,46,51,70,75,94,99,118,123,142,147,166,171 +2,23,26,47,50,71,74,95,98,119,122,143,146,167,170 +1,24,25,48,49,72,73,96,97,120,121,144,145,168,169 diff --git a/r/greenseeker/methods_greenseeker.R b/r/greenseeker/methods_greenseeker.R new file mode 100644 index 0000000..effb076 --- /dev/null +++ b/r/greenseeker/methods_greenseeker.R @@ -0,0 +1,86 @@ +#General functions to process Files, dataframes + +#Librearies +library(stringr) #To use str_extract +library(plyr)#Used in: ddply + +### GREENSEEKER(GS) ### +#This method will go trhought the input file of readings returning the reading and the corresponding plot: +#Matching the trial map and the order file +s_order <- function(map, ord, dataNDVI){ + #Allocate the size of the vector to save the order of the plots based on the + #way the sampling was done + #Get the NDVI data + id_s <- dataNDVI + #Add a column to set the ID + id_s$Plot <- "" + + #Check if the map has the same dimensions of the "order" + if( dim(map)[1] == dim(ord)[1] && dim(map)[2] == dim(ord)[2]) { + #TODO: make this more R-like way + #Assign the trial plot that corresponds to the reading + #Go trhough the ndvi samples + for (s in dataNDVI$Sample_No){ + #Get the array position of the current sample # from the order matrix + #TODO: Validate unique numbers + index <- which(ord == s, arr.ind = TRUE) #We get row and column location of the "plot" (thst is the incremental number) from this sample + #Assign the corresponding ID of the plot from the map to the sample + id_s[id_s$Sample_No==s,"Plot"] <- map[index[1,"row"],index[1,"col"] ] + } + return(id_s) + } + else{ + #Return empty if sizes dont match + print("the size of the map and the order file don't match. Check.") + return(NULL) + } +} + +### GREENSEEKER (GS) ### +# USES: library(stringr) +# the file containing the order of the sampling automatically based on the date of the input NDVI Txt file +#The txt file is expected to have a standard name as: eg. AF_521_080318.txt ~ the date in ddmmyy format +#The expected format of the ord files is: eg. exp021118ord.csv + # exp == 3 digits for the trial code + # 021118 == 6 digits for the date in ddmmyy format + # ord == identifier for the sampling Order file fro the greenseeker sampling +#indicate the directory to look for the file +#Here I will use the DATE as ddmmyy format because that is how the field guys write the names of the files +get_ordFile <- function(NDVI_txt,path_ord){ + # Get the 6 digit "date". + date1 <- str_extract(NDVI_txt,"[0123456789]{6}") #Return from the filename what matches the pattern of 6 digits + #Get the files with CSV extention and that contain the word "ord" somewhere after the date + ordF <-list.files(path = path_ord,pattern=paste0(date1,"{1}","(ord){1}[[:alnum:]_]*\\.csv$")) + + #Return the path + the file location + return(file.path(path_ord, ordF, fsep = .Platform$file.sep)) +} + +### Get 6 digit date from filename, based on pattern. very wide search pattern +## Have in mind that it doesnt take into account if the format is yymmdd or ddmmyy +get6DigitDate <- function(string1){ + date1 <- str_extract(string1,"[0123456789]{6}") + return(date1) +} + +### GREENSEEKER (GS) ### +#Average the Greenseeker readings (*.txt not the averaged file), get SD, and CV. Group by "Sample_no" +#This are the expected headers: +# Time.ms. Sample_No Count NDVI VI_2 +# NDVI AND Sample_No are NECESSARY +averageNDVI <- function(NDVIreadings){ + ddply(NDVIreadings,~ Sample_No, summarize, + Count = length(NDVI), + Avg_NDVI = mean(NDVI), + Stdev = sd(NDVI), + CV = sd(NDVI)/mean(NDVI)*100) +} + +#Summarize the averaged ndvi readings by treatment +#Several dates are in the table now +averageNDVI_byTreatment <- function(NDVIreadings){ + ddply(NDVIreadings,~ treatment+samp_date, summarize, + Avg_NDVI = mean(Avg_NDVI), + Avg_Stdev = mean(Stdev), + Avg_CV = mean(CV)) +} \ No newline at end of file diff --git a/r/greenseeker/ordenar_lecturas_v0.R b/r/greenseeker/ordenar_lecturas_v0.R new file mode 100644 index 0000000..b33ff70 --- /dev/null +++ b/r/greenseeker/ordenar_lecturas_v0.R @@ -0,0 +1,56 @@ +#Format the Greenseeker readings done in the experimental station to match the plot number ID +#Because they have an automatic incremental id +library(tools) #to use file_path_sans_ext + + +###############Functions +source(file.path("C:","Dropbox","Software","Scripts","r","greenseeker","methods_greenseeker.R", fsep = .Platform$file.sep)) + + +################ INPUTS +#Set the WD +setwd(choose.dir(default = file.path("C:","Dropbox","data","AF", fsep = .Platform$file.sep), caption = "Select folder to work on")) + +#Choose NDVIfile +#The txt file is expected to have a standard name as: eg. AF_521_080318.txt ~ the date in ddmmyy format +ndviF <- choose.files(default = "", caption = "Selecciona el archivo a procesar", + multi = FALSE, filters = matrix(c("txt", "*txt")), + index = nrow(Filters)) +filename <- tools::file_path_sans_ext(basename(ndviF)) + +#Choose Trial map in csv format, north is up. +mapF <- choose.files(default = "", caption = "Selecciona el archivo mapa del experimento", + multi = FALSE, filters = matrix(c("csv", "*csv")), + index = nrow(Filters)) + +#Choose measuring order +#### interactively +ordF <- choose.files(default = "", caption = "Selecciona el archivo que indica el orden de las lecturas (# filas y columnas = al mapa)", + multi = FALSE, filters = matrix(c("csv", "*csv")), + index = nrow(Filters)) +#### OR Use this to get the order file automatically based on the date in ddmmyy in the NDVI txt file +#ord_Folder_location <- file.path("C:","Dropbox","data","AF","nut","csv_maps", fsep = .Platform$file.sep) #Location of all the ord files +#ordF <- get_ordFile(ndviF,ord_Folder_location) +#### OR hardcoded... +#ordF <- file.path(ord_Folder_location,"q21__af__ord_se.csv", fsep = .Platform$file.sep) + +#"extra" Readings we dont need +no_go <- c("") #HardCoded !!!!!!!!!!!! eg. c("5","46") + + +############### SCRIPT +tryCatch({ + + dataNDVI<-read.table(ndviF, header = TRUE,sep = ",") #get the data in the csv File + #Clean extra readings from the NDVI file, that are by mistake. Indicated in the "no_go" variable. Cleaning the order file should be done separately, its not done here. + ndviCl <- dataNDVI[which(!(dataNDVI$Plot %in% no_go)),] + #Replace the "Plot" header by "Sample_No", because in the NDVI file + colnames(ndviCl)[colnames(ndviCl) == "Plot"] <- "Sample_No" + #Average the readings, get SD, and CV. Group by "Sample_no" + ndviAvg <-averageNDVI(ndviCl) + map<-read.table(mapF, header = FALSE,sep = ",") #get the data in the csv "map" + ord<-read.table(ordF, header = FALSE,sep = ",") #get the sampling order from file + #print(ord) + orddata <- s_order(map,ord,ndviAvg) #match the readings and the plot names + write.csv(orddata,paste0(filename,"_ndvi.csv"), row.names=FALSE) #write the data in a text file +}) diff --git a/r/greenseeker/ordenar_lecturas_v0.Rmd b/r/greenseeker/ordenar_lecturas_v0.Rmd new file mode 100644 index 0000000..aee8e4b --- /dev/null +++ b/r/greenseeker/ordenar_lecturas_v0.Rmd @@ -0,0 +1,18 @@ +--- +title: "R Notebook" +output: html_notebook +--- + +This is an [R Markdown](http://rmarkdown.rstudio.com) Notebook. When you execute code within the notebook, the results appear beneath the code. + +Try executing this chunk by clicking the *Run* button within the chunk or by placing your cursor inside it and pressing *Ctrl+Shift+Enter*. + +```{r} +plot(cars) +``` + +Add a new chunk by clicking the *Insert Chunk* button on the toolbar or by pressing *Ctrl+Alt+I*. + +When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the *Preview* button or press *Ctrl+Shift+K* to preview the HTML file). + +The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike *Knit*, *Preview* does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed. diff --git a/r/histogramPlots.R b/r/histogramPlots.R new file mode 100644 index 0000000..fc23c7b --- /dev/null +++ b/r/histogramPlots.R @@ -0,0 +1,86 @@ +## To show the histogram of selected plots in shapefile +## ONGOING WORK!!!! + +require(raster) +require(rgdal) + +###################### DEFINED FUNCTIONS (no need to edit) +# Read the feature class +get_roi <- function(trial_roi) {readOGR(dsn=fgdb,layer=trial_roi)} + + +######################## DEFINE VARIABLES (Enter your variables) +# #Working directory +wd="G:\\AD15_16\\" +setwd(wd) +ext<-".tif" +shp_name<- "__ad__buf" +sx<-"cel" #input sufix +fgdb = "C:\\Dropbox\\data\\AD\\ad_sam\\shp\\adsam.gdb" + +#Select individual image instead of loop all + cam<-"t" + d<-"160804" + t<-"sam" + +######################### STARTs SCRIPT +tryCatch({ + + + + imgLocation = paste(wd,d,"\\",cam,"\\",sx,"\\",sep="") #Look into cel folder + name = paste(cam,d,t,sx,ext,sep="") + rasterName= paste(imgLocation,name,sep="") + r<-raster(rasterName) + plt <- get_roi(paste(t,shp_name,sep="")) + ids <- data.frame(plt$id) + + ##Graphics to save to PDF + pdf(file=paste(name," plots.pdf", sep="")) + par(mar = rep(2, 4),mfrow=c(4,4)) + + #Iterate the plots + for(i in 1:3){ ###length(ids[,1]) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ##Select every plot polygon + roi <- plt[plt@data["id"]==ids[i,1]] #%%%%%%%%%%%%%%%%%% WTFFF %%%%%%%%%%%%%%%% + print(ids[i,1]) + ##roi <- plt[plt$id=="thanda 264 rows /131",] + ##Crop the image to get what is inside the plot + r_selected <-crop(r, extent(roi), snap="out") + plot(r_selected,col=heat.colors(8,0.8)) # Plot the image cropped + #Get histogram of that piece of image + hist(r_selected,main=paste(t,cam,d,"plot= [",ids[i,1],"]"),breaks=20) + + # KMEANS + #assume bimodal distribution in clipped raster + #Use K means to filter Soil (hotter pixels) + #The group 1 is the cooler (vegetation?) and the 2 is the hotter (Soil?) + v<-data.frame(getValues(r_selected)) + km <- kmeans(v,centers=2) + v$clust <- as.factor(km$cluster) + hist(v[v$clust==1,1]) + #Store mean plot value in table + ids$d[i] <- mean(v[v$clust==1,1]) + + #NIBLACK???? + #Filter soil with this filter + #pixel = ( pixel > mean + k * standard_deviation - c) ? object : background +# sd(r_selected) +# r_mean <- focal(r_selected, w=matrix(1/9,nrow=5,ncol=5)) + ##How to calculate focal std ? +# sd(x, na.rm = FALSE) +# zonal(x, z, stat='mean', digits=0, na.rm=TRUE, ...) +# focal(r_selected, w=3, fun=, na.rm=TRUE) +# sd2 <- sqrt(sum((x - mean(x))^2) / (n - 1)) +# +# #r_sd <- cellStats(r_selected,'sd') # Returns a value, not raster +# add=TRUE +# plot(r_mean) +# plot(r_sd) + } + + dev.off() + ##Finish saving to PDF + +}) + diff --git a/r/hyper_divedeBy10000.R b/r/hyper_divedeBy10000.R new file mode 100644 index 0000000..e21c9cd --- /dev/null +++ b/r/hyper_divedeBy10000.R @@ -0,0 +1,64 @@ +## Script to extract values from NDVI imagery inside a (GSA: greenseeker area) ROI, +## get the mean value of the top 5%. after removing the values < 0.3 +## The ROI is read from a GDB, and any feature with attribute area = "FR" is ignored. +## +# +## No data quality check is implemented yet +## Lorena 2018 + +#Special comments +#.# this is very specific to this data +#!# Error code or work in progress + +#################################################################################### +################################## Libraries +#################################################################################### +library(plyr) +library (raster) +library(rgdal) +library(reshape2) + +#################################################################################### +################################## Functions +#################################################################################### + +###########Function to execute the top 5% mean value. Saves PDF with plots on default working directory + +#Function divide by 10000 +fun <-function(x){(x/10000)} + +# divide by 10000 +divide10000 <- function(img) { + img2 <- celsius<-calc(img, fun) + return(img2) +} +# Choose file interactively | *tif file +chooseTif <- function() { + choose.files(default = "", caption = "Selecciona la imagen", + multi = FALSE, filters = matrix(c("tif", "*.tif")), + index = nrow(Filters))} + + +#################################################################################### +################################## SCRIPT +#################################################################################### + +#Base Working directory +baseDir <- file.path("C:","Dropbox (RSG)","data","AF","compass", fsep = .Platform$file.sep) +setwd(baseDir) + +##Image to work ok +i <- chooseTif() #Opens select file dialog +img <- stack(i) + +#Call function to execute task +imgH<- divide10000(img) + +#Output filename, same as input, add a "_" +out_File <- paste0(tools::file_path_sans_ext(i),"_.tif") + +#Write file , same folder as input +writeRaster(imgH, file=out_File,datatype='FLT4S',format="GTiff",overwrite=FALSE) + + + diff --git a/r/io_methods.R b/r/io_methods.R new file mode 100644 index 0000000..75e7b58 --- /dev/null +++ b/r/io_methods.R @@ -0,0 +1,58 @@ +#General methods to read and import csv and Excel files + +library("XLConnect") +library(reshape2) #for the melt in readFieldMapsExcel + +readExcel <- function(xlsxFile){ + xlxsF =file + wb <- loadWorkbook(xlxsF) + sheets <- getSheets(wb) + sheets <- lapply(sheets,function(x) tolower(x)) + setMissingValue(wb, value = "NA") + sheetsIndex <- startSheet:endSheet#Avoid the first 3 sheets of this file because they dont have data + df.list <- readWorksheetFromFile(xlxsF, #Get the data of th xlsx file + sheet = sheetsIndex, + header=TRUE, + colTypes = colTypes, + endCol = endCol, + endRow=endRow, + startRow = startRow) +} + +#Function readFieldMapsExcel to read the field maps that are done in the BW program in MS Excel. A list of their names is passed. +#Usually it is a small number of fieldmap files corresponding to one section, because they need to have unique column numbers. +#It is oriented to format the field map to input in the script Athena did CSVtoKML in python. +#The files need to have all the same size and start and end row and columns of the data in the first sheet of the Excel file. +#the start and end column and row to read from the Excel are defaulted, but can be changed. +#the trial name is expected to be in the last column of the excel file +readFieldMapsExcel <- function(xlsx_list, endCol = 19, endRow=46,startRow = 2,startCol=3){ + xlsxs <- list(0) + for (i in seq_along(xlsx_list)) { + mapi <- readWorksheetFromFile(xlsx_list[1], sheet = 1,header=TRUE, #we assume all have the same fixed size + endCol = endCol, endRow=endRow,startRow = startRow,startCol=startCol) + mapi$row <- rownames(mapi) ## Add the row number to a column + + #Get all values listed with the column and row corresponding + trial_column <- paste0("Col",endCol-startCol+1) #number of the last column corresponding to the trial + #TODO: fix the row |col|plot order from here + mapi <- melt(mapi, id.vars =c("row",trial_column)) + #rename the columnName column and keep just the number in the values + colnames(mapi)[2:4] <- c("trial","col","plot") + mapi$col <- gsub('Col', '', long_table$col) + #check for NA's in rows and remove those rows (they belong to an empty column in the field map) + na_inrow <- apply(mapi, 1, function(x){any(is.na(x))}) + #Save the formated fieldmap in the list + xlsxs[[i]] <- mapi[!na_inrow, ] + } + + #Now put all the different fieldmaps in one table + rowcol_xlsxs <- do.call("rbind", xlsxs) + #Merge the plot and trial name + rowcol_xlsxs$plot <- paste(rowcol_xlsxs$plot,rowcol_xlsxs$trial, sep="_") + #just order the columns as row |col| plot + rowcol_xlsxs <- rowcol_xlsxs[,c(1,3,4)] + + #Return value + return(rowcol_xlsxs) +} + diff --git a/r/kelvin100toCelsiusInsideFolder.R b/r/kelvin100toCelsiusInsideFolder.R new file mode 100644 index 0000000..677d8c3 --- /dev/null +++ b/r/kelvin100toCelsiusInsideFolder.R @@ -0,0 +1,74 @@ +######### Crop images (Tif) in a folder based on a ROI +######## the roi is read from a GDB + +############################ Work in progresssssssssssssssssssssssssssssssssssssssssss + +#0. First step : load packages +#install.packages(c("rgdal","raster")) +require(raster) +require(rgdal) +library("caTools") + +###################### DEFINED FUNCTIONS (no need to edit) + +#Function to select the apropriate roi for each trial +# Read the feature class +get_roi <- function(trial_roi) {readOGR(dsn=fgdb,layer=trial_roi)} + +#Function Kelvin 100 to raster +fun <-function(x){(x/100)-273.15} + +#Function kelvinx100toCelsius +kelvinx100toCelsius <- function(imgK,roi) +{ + tryCatch({ + celsius<-calc(imgK, fun) + #celsius <- mask(celsius, roi) + celsius<-crop(celsius, extent(roi), snap="out") + return(celsius) + }) +} + +######################## DEFINE VARIABLES (Enter your variables) +# #Working directory +wd="C:\\vuelos\\temp\\marcothermal\\150\\" #For images, the root folder +setwd(wd) +## What kind of files to seach +pattern="\\margeo.bsq$" +roi_name<- "mar__ab__roi" +#Feature geodatabase to get ROIS +fgdb = "C:\\Users\\usuario\\Documents\\ArcGIS\\Default.gdb" + +#prefix to add to theOutput name of the crop file +pfx <- "cel" + +######################### STARTs SCRIPT (No need to edit) + +#Error handling try +tryCatch({ + #list all imagery in the folder + imgs <-list.files(pattern=pattern) + print(imgs) #for debugging + #get roi + #roi <- get_roi(roi_name) + roi <- readOGR("C:\\vuelos\\temp\\marcothermal\\150", "mar__ab__roi") #Read SHP + print(paste("roi")) #for debugging + + #loop for the images to crop + for (i in imgs){ + #Read raster + r <- raster(i) + #crop + r_cr<-kelvinx100toCelsius(r,roi) #execute script, crop by roi + print(paste("cropped")) #for debugging + #name for outpul file + #outFile <- paste0("t",i,"_q21cel") + outFile <- paste0(pfx,i) + print("after outfile") + #Save file + writeRaster(r_cr, file=outFile,datatype='FLT4S',format="GTiff",overwrite=FALSE) + #write.ENVI (r_cr, outFile, interleave = "bsq") + #inform about saving + print(paste("saved raster:",outFile," Succesfully")) + } +}) \ No newline at end of file diff --git a/r/kelvinx100toCelsius.R b/r/kelvinx100toCelsius.R new file mode 100644 index 0000000..a37cf7a --- /dev/null +++ b/r/kelvinx100toCelsius.R @@ -0,0 +1,82 @@ +######### Raster calculation to convert the units from the thermal FLir to celsius +######## Because they come in Kelvin multiplied by 100 +####### CROPS the rasters to ROIS read from the GDB to crop image +######## Reads from standard formating of files, from GEO folder to CEL + +#0. First step : load packages +#install.packages(c("rgdal","raster")) +require(raster) +require(rgdal) + +###################### DEFINED FUNCTIONS (no need to edit) +#Function Kelvin 100 to raster +fun <-function(x){(x/100)-273.15} + +#Function to select the apropriate roi for each trial +# Read the feature class +get_roi <- function(trial_roi) {readOGR(dsn=fgdb,layer=trial_roi)} + +#Function kelvinx100toCelsius +kelvinx100toCelsius <- function(imgK,roi) +{ + tryCatch({ + celsius<-calc(imgK, fun) + #celsius <- mask(celsius, roi) + celsius<-crop(celsius, extent(roi), snap="out") + #Write the tif to disk + #replacing the suffix of the raster geo -> cel + out_File= gsub("geo", "cel", rasterName) + #out_FileCopy= gsub("geo", "cel", rasterCopy) + writeRaster(celsius, file=out_File,datatype='FLT4S',format="GTiff",overwrite=FALSE) + if (copy) writeRaster(celsius, file=out_FileCopy,datatype='FLT4S',format="GTiff",overwrite=FALSE) + print(paste("saved raster: <<",out_File,">> Succesfully")) + }) +} + +######################## DEFINE VARIABLES (Enter your variables) +# #Working directory +wd="G:\\AF\\" #For images, the root folder +setwd(wd) + +ext<-".tif" +roi_name<- "__af__roi" +sx<-"geo" #input sufix +#Feature geodatabase to get ROIS +fgdb = "C:\\Dropbox\\data\\AF\\compass\\af_compass\\af_compass.gdb" +#MAtrix of images dates to process +#Beware if there is only one trial, fake another column filling with "-" in the cameras ??NOTE!! +name_file_data <- "C:\\Dropbox\\data\\AF\\nut\\q21__af__dayt.csv" +##Next the location if you want to copy the data somewhere else +copy <- FALSE #check the function if you want to copy !!!!!!!!!!!F#FFFFF##### +copyLocation <- "C:\\Dropbox\\New folder\\temp\\521\\AD\\" + +######################### STARTs SCRIPT (No need to edit) +tryCatch({ + # rasterName<-args[1] # to read from cmd + data<-read.table(name_file_data, header = TRUE,sep = ",") + row.names(data)<-data[,1] # name the rows as the date + dates<- row.names(data) + #Get the trial names + data<- data[,2:length(colnames(data))] #Remove 1st column that had the dates + trials<- colnames(data) #assign them as column names of the dataframe + #loop for the images to extract + for (d in dates){ + #TODO: put the trial loop outside the date, to be able to call the get_roi just once per trial. + for (t in trials){ + cam<-data[d,t] + if (cam != "-"){ + imgLocation = paste(wd,d,"\\",cam,"\\geo\\",sep="") #Look into geo folder + name = paste(cam,d,t,sx,ext,sep="") + rasterName= paste(imgLocation,name,sep="") + if (copy) {rasterCopy= paste(copyLocation,name,sep="")}#location to copy if needed + if(file.exists(rasterName)){#if the raster exists + print(rasterName) #image name + dir.create(paste(wd,d,"\\",cam,"\\cel\\",sep="")) #create folder for celsius + r<-raster(rasterName) + kelvinx100toCelsius(r,get_roi(paste(t,roi_name,sep=""))) #execute script, crop by roi + } + else{print(paste(rasterName," Doesn't exists--"))} + } + } + } +}) \ No newline at end of file diff --git a/r/learning R spatial analysis.R b/r/learning R spatial analysis.R new file mode 100644 index 0000000..6aa9e59 --- /dev/null +++ b/r/learning R spatial analysis.R @@ -0,0 +1,14 @@ +c(1,2,3,4) +n <- c(4:1) +as.character(n) +f <- factor (n) +ls() +mean(n) +min(n) +range(n) +length(n) +any(n) +all(n) +l = c(TRUE, FALSE, FALSE, TRUE) +which(l) # get position of TRUE values on vector +which.min(n)# get position of the minimun value \ No newline at end of file diff --git a/r/list_files.R b/r/list_files.R new file mode 100644 index 0000000..96c3923 --- /dev/null +++ b/r/list_files.R @@ -0,0 +1,6 @@ +setwd("C:/Dropbox/data/AE/nut/img") + +files <- list.files(path = ".", full.names = FALSE, pattern = ".tif$",recursive = FALSE) +#file.path("folder","file") #function to concatenate folders to create a filepath +#write the final table +write.csv(files,paste("Files_img.csv", sep="")) diff --git a/r/mergeZonalStatisticsOneBandOneExperimentManyDates.R b/r/mergeZonalStatisticsOneBandOneExperimentManyDates.R new file mode 100644 index 0000000..6b4e82d --- /dev/null +++ b/r/mergeZonalStatisticsOneBandOneExperimentManyDates.R @@ -0,0 +1,74 @@ +##Script para unir las tablas de NDVI al extraer de las imágenes de varias fechas de una misma area +#Tables are the regular zonal statistics output from arcGIS +# It MUST include the MEAN statistic and an ID field. + +#++++++Methods########################################################## +#Libraries +options(java.parameters = "-Xmx30000m") #available RAM for JAVA +library(foreign) +library(xlsx) +library(stringr) +library(plyr) +library(gtools) + +#Add the filename to the column name, because all the zonal stats tables have the same column names when from ArcGIS +addFileNameToColumn <- function (f){ + t <- read.dbf(f) + #filename without extension + name <- substr(f, 1, nchar(f)-4) + t <- subset(t, select=c(id,"MEAN")) + origFields <- colnames(t) + colnamesB <- origFields + #Next put the filename column but not in the id column + for (i in 1:length(colnamesB) ){ + if (colnamesB[i] != id) + colnamesB[i]<- paste(toString(name), sep="") + } + colnames(t)<- colnamesB + return (t) +} + +#Merge to use with reduce sucessively by "id" +merge.all <- function(x, y) { + merge(x, y, all=TRUE, by=id) +} + +#Merge all "MEAN" columns into one Excel file +arrangeDbf <- function(file_list) { + #Workbook to save MEAN values + wbookName <- paste("Data",".xlsx",sep="") + wbook <- createWorkbook() + wbSheet <- createSheet(wb = wbook, sheetName = "data") + + # batch read all into a addFileNameToColumn + m.list = lapply(file_list, addFileNameToColumn) + #merge them into a single data frame + tables <- Reduce(merge.all, m.list) + #Next remove the duplicate "id" column + tables <- tables[,!duplicated(colnames(tables), fromLast = TRUE)] + + #Write to Excel file + startRow<-1 + print(paste("Escribiendo",nrow(tables),"registros")) + addDataFrame(x=tables, sheet=wbSheet,row.names=FALSE,startRow = startRow) + + saveWorkbook(wbook, wbookName) + print(paste("Se guardĂł el archivo",wbookName)) + return (wbook) +} + + +#++++++Methods-End########################################################## + +#Working Directory +wd<-("C:\\Users\\usuario\\Documents\\ArcGIS\\") +setwd(wd) +getwd() +#Id Field to join the tables +id = "Name" + +#Get tables +zsTables <-list.files(pattern="\\.dbf$") +#Merge the MEAN column of the tables +xlsx <-arrangeDbf(zsTables) + diff --git a/r/moisture/.Rhistory b/r/moisture/.Rhistory new file mode 100644 index 0000000..ea51ff9 --- /dev/null +++ b/r/moisture/.Rhistory @@ -0,0 +1,512 @@ +wLTable$irrnum <- gsub('-', '',regmatches(wLTable$sheetName, regexpr("-[0-9A-Za-z]+$", wLTable$sheetName))) +#check for NA's in rows +na_inrow <- apply(wLTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +wLTable <- wLTable[!na_inrow, ] +#Formate the date column to format the axis labels in ggplot +wLTable$date <- as.POSIXct(wLTable$date) +#write the final table to CSV if you want to save to text file +write.csv(wLTable,csvfile, row.names=FALSE) +mData +wLTable +na_inrow +wLTable +wLTable$irrtype <- regmatches(wLTable$sheetName, regexpr("bi|ai|ah|m1", wLTable$sheetName)) #español ar|dr|mv|dt|m1" +wLTable +write.csv(wLTable,csvfile, row.names=FALSE) +write.csv(wLTable,csvfile, row.names=FALSE) +rm(list=ls() +) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +#Calculate water table based on the moisture frome each measurement +samplings = length(dates) +waterLayerTable <- calculateWLayer(moistData,dates) +##Bind all samplings in one table (stack the rows, keep the columns) +wLTable <- Reduce(rbind,waterLayerTable) +##FORMATTING +#Format the headers (use if needed) +# wLTable$depth <- gsub('0-15', '1w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('15-30', '2w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('30-60', '3w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('60-90', '4w', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('0-15', 'depth1', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('15-30', 'depth2', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('30-60', 'depth3', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('60-90', 'depth4', wLTable$depth) #replace the depth by an ordered index +###########Separate the sheets name into columns (maybe change after the filtering thing?) +#The format should be something like: dr30-11-2015_pre-conv +#sheetname should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV (indicating the kind of sampling: after/before iirgation, etc) +#and a suffix indicating _[pre]/[2R]/[4R]-[1/2/3/4/5]/[pb]/[conv]) +#date column - get what has the format of a date dd-mm-yyyy +wLTable$date <- as.Date(regmatches(wLTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", wLTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despuĂ©s, verano, trilla...) +wLTable$irrtype <- regmatches(wLTable$sheetName, regexpr("bi|ai|ah|m1", wLTable$sheetName)) #español ar|dr|mv|dt|m1" +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +wLTable$irrarea <- gsub('_', '',regmatches(wLTable$sheetName, regexpr("_[0-9A-Za-z]+", wLTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +wLTable$irrnum <- gsub('-', '',regmatches(wLTable$sheetName, regexpr("-[0-9A-Za-z]+$", wLTable$sheetName))) +#check for NA's in rows +na_inrow <- apply(wLTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +wLTable <- wLTable[!na_inrow, ] +#Formate the date column to format the axis labels in ggplot +wLTable$date <- as.POSIXct(wLTable$date) +#write the final table to CSV if you want to save to text file +write.csv(wLTable,csvfile, row.names=FALSE) +source(file.path("C:","Dropbox","Software","Scripts","r","moisture","methods_moisture.R", fsep = .Platform$file.sep)) +###################################################### EXECUTE SCRIPT +############################### INPUTS +#set WDir +setwd("C://Dropbox//Software//Scripts//r//moisture") +file="C://Dropbox//data//AE//ae_stars//ser//AE-851 ANTILLON humedad.xlsx" +trial <- "ros" +col_names<-c('id', +'depth', +'canType', +'can', +'wSoilw', +'dSoilw', +'moisture') +colTypes <- c('numeric', 'character','numeric', 'numeric','numeric','numeric','numeric') +##Check this for every excel read +startRow<- 1 #Skip the fisrt 5 rows because it has other ancillary data +startSheet <- 2 +endSheet <- 9 +endCol <- 7 +endRow <- 101 +csvfile <- "C://Dropbox//data//AE//ae_stars//ser//waterLayer_humedad_AEser.csv" +################################# END INPUTS +##Edit next +##getMoistreFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsamplepointID) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +#Calculate water table based on the moisture frome each measurement +samplings = length(dates) +waterLayerTable <- calculateWLayer(moistData,dates) +##Bind all samplings in one table (stack the rows, keep the columns) +wLTable <- Reduce(rbind,waterLayerTable) +##FORMATTING +#Format the headers (use if needed) +# wLTable$depth <- gsub('0-15', '1w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('15-30', '2w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('30-60', '3w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('60-90', '4w', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('0-15', 'depth1', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('15-30', 'depth2', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('30-60', 'depth3', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('60-90', 'depth4', wLTable$depth) #replace the depth by an ordered index +###########Separate the sheets name into columns (maybe change after the filtering thing?) +#The format should be something like: dr30-11-2015_pre-conv +#sheetname should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV (indicating the kind of sampling: after/before iirgation, etc) +#and a suffix indicating _[pre]/[2R]/[4R]-[1/2/3/4/5]/[pb]/[conv]) +#date column - get what has the format of a date dd-mm-yyyy +wLTable$date <- as.Date(regmatches(wLTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", wLTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despuĂ©s, verano, trilla...) +wLTable$irrtype <- regmatches(wLTable$sheetName, regexpr("bi|ai|ah|m1", wLTable$sheetName)) #español ar|dr|mv|dt|m1" +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +wLTable$irrarea <- gsub('_', '',regmatches(wLTable$sheetName, regexpr("_[0-9A-Za-z]+", wLTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +wLTable$irrnum <- gsub('-', '',regmatches(wLTable$sheetName, regexpr("-[0-9A-Za-z]+$", wLTable$sheetName))) +#check for NA's in rows +na_inrow <- apply(wLTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +wLTable <- wLTable[!na_inrow, ] +#Formate the date column to format the axis labels in ggplot +wLTable$date <- as.POSIXct(wLTable$date) +#write the final table to CSV if you want to save to text file +write.csv(wLTable,csvfile, row.names=FALSE) +moistData +rm(list=ls()) +source(file.path("C:","Dropbox","Software","Scripts","r","moisture","methods_moisture.R", fsep = .Platform$file.sep)) +###################################################### EXECUTE SCRIPT +############################### INPUTS +#set WDir +setwd("C://Dropbox//Software//Scripts//r//moisture") +file="C://Dropbox//data//AE//ae_stars//ser//AE-851 ANTILLON humedad.xlsx" +trial <- "ros" +col_names<-c('id', +'depth', +'canType', +'can', +'wSoilw', +'dSoilw', +'moisture') +colTypes <- c('numeric', 'character','numeric', 'numeric','numeric','numeric','numeric') +##Check this for every excel read +startRow<- 1 #Skip the fisrt 5 rows because it has other ancillary data +startSheet <- 2 +endSheet <- 9 +endCol <- 7 +endRow <- 101 +csvfile <- "C://Dropbox//data//AE//ae_stars//ser//waterLayer_humedad_AEser.csv" +################################# END INPUTS +##Edit next +##getMoistreFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsamplepointID) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +#Calculate water table based on the moisture frome each measurement +samplings = length(dates) +waterLayerTable <- calculateWLayer(moistData,dates) +##Bind all samplings in one table (stack the rows, keep the columns) +wLTable <- Reduce(rbind,waterLayerTable) +##FORMATTING +#Format the headers (use if needed) +# wLTable$depth <- gsub('0-15', '1w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('15-30', '2w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('30-60', '3w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('60-90', '4w', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('0-15', 'depth1', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('15-30', 'depth2', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('30-60', 'depth3', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('60-90', 'depth4', wLTable$depth) #replace the depth by an ordered index +###########Separate the sheets name into columns (maybe change after the filtering thing?) +#The format should be something like: dr30-11-2015_pre-conv +#sheetname should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV (indicating the kind of sampling: after/before iirgation, etc) +#and a suffix indicating _[pre]/[2R]/[4R]-[1/2/3/4/5]/[pb]/[conv]) +#date column - get what has the format of a date dd-mm-yyyy +wLTable$date <- as.Date(regmatches(wLTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", wLTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despuĂ©s, verano, trilla...) +wLTable$irrtype <- regmatches(wLTable$sheetName, regexpr("bi|ai|ah|m1", wLTable$sheetName)) #español ar|dr|mv|dt|m1" +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +wLTable$irrarea <- gsub('_', '',regmatches(wLTable$sheetName, regexpr("_[0-9A-Za-z]+", wLTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +wLTable$irrnum <- gsub('-', '',regmatches(wLTable$sheetName, regexpr("-[0-9A-Za-z]+$", wLTable$sheetName))) +#check for NA's in rows +na_inrow <- apply(wLTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +wLTable <- wLTable[!na_inrow, ] +#Formate the date column to format the axis labels in ggplot +wLTable$date <- as.POSIXct(wLTable$date) +#write the final table to CSV if you want to save to text file +write.csv(wLTable,csvfile, row.names=FALSE) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +#Calculate water table based on the moisture frome each measurement +samplings = length(dates) +waterLayerTable <- calculateWLayer(moistData,dates) +##Bind all samplings in one table (stack the rows, keep the columns) +wLTable <- Reduce(rbind,waterLayerTable) +##FORMATTING +#Format the headers (use if needed) +# wLTable$depth <- gsub('0-15', '1w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('15-30', '2w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('30-60', '3w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('60-90', '4w', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('0-15', 'depth1', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('15-30', 'depth2', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('30-60', 'depth3', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('60-90', 'depth4', wLTable$depth) #replace the depth by an ordered index +###########Separate the sheets name into columns (maybe change after the filtering thing?) +#The format should be something like: dr30-11-2015_pre-conv +#sheetname should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV (indicating the kind of sampling: after/before iirgation, etc) +#and a suffix indicating _[pre]/[2R]/[4R]-[1/2/3/4/5]/[pb]/[conv]) +#date column - get what has the format of a date dd-mm-yyyy +wLTable$date <- as.Date(regmatches(wLTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", wLTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despuĂ©s, verano, trilla...) +wLTable$irrtype <- regmatches(wLTable$sheetName, regexpr("bi|ai|ah|m1", wLTable$sheetName)) #español ar|dr|mv|dt|m1" +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +wLTable$irrarea <- gsub('_', '',regmatches(wLTable$sheetName, regexpr("_[0-9A-Za-z]+", wLTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +wLTable$irrnum <- gsub('-', '',regmatches(wLTable$sheetName, regexpr("-[0-9A-Za-z]+$", wLTable$sheetName))) +#check for NA's in rows +na_inrow <- apply(wLTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +wLTable <- wLTable[!na_inrow, ] +#Formate the date column to format the axis labels in ggplot +wLTable$date <- as.POSIXct(wLTable$date) +#write the final table to CSV if you want to save to text file +write.csv(wLTable,csvfile, row.names=FALSE) +dates +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +#Calculate water table based on the moisture frome each measurement +samplings = length(dates) +waterLayerTable <- calculateWLayer(moistData,dates) +##Bind all samplings in one table (stack the rows, keep the columns) +wLTable <- Reduce(rbind,waterLayerTable) +##FORMATTING +#Format the headers (use if needed) +# wLTable$depth <- gsub('0-15', '1w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('15-30', '2w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('30-60', '3w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('60-90', '4w', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('0-15', 'depth1', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('15-30', 'depth2', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('30-60', 'depth3', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('60-90', 'depth4', wLTable$depth) #replace the depth by an ordered index +###########Separate the sheets name into columns (maybe change after the filtering thing?) +#The format should be something like: dr30-11-2015_pre-conv +#sheetname should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV (indicating the kind of sampling: after/before iirgation, etc) +#and a suffix indicating _[pre]/[2R]/[4R]-[1/2/3/4/5]/[pb]/[conv]) +#date column - get what has the format of a date dd-mm-yyyy +wLTable$date <- as.Date(regmatches(wLTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", wLTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despuĂ©s, verano, trilla...) +wLTable$irrtype <- regmatches(wLTable$sheetName, regexpr("bi|ai|ah|m1", wLTable$sheetName)) #español ar|dr|mv|dt|m1" +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +wLTable$irrarea <- gsub('_', '',regmatches(wLTable$sheetName, regexpr("_[0-9A-Za-z]+", wLTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +wLTable$irrnum <- gsub('-', '',regmatches(wLTable$sheetName, regexpr("-[0-9A-Za-z]+$", wLTable$sheetName))) +#check for NA's in rows +na_inrow <- apply(wLTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +wLTable <- wLTable[!na_inrow, ] +#Formate the date column to format the axis labels in ggplot +wLTable$date <- as.POSIXct(wLTable$date) +#write the final table to CSV if you want to save to text file +write.csv(wLTable,csvfile, row.names=FALSE) +dates +file="C://Dropbox//data//AE//ae_stars//ser//AE-851 ANTILLON humedad.xlsx" +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +#Calculate water table based on the moisture frome each measurement +samplings = length(dates) +waterLayerTable <- calculateWLayer(moistData,dates) +##Bind all samplings in one table (stack the rows, keep the columns) +wLTable <- Reduce(rbind,waterLayerTable) +##FORMATTING +#Format the headers (use if needed) +# wLTable$depth <- gsub('0-15', '1w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('15-30', '2w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('30-60', '3w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('60-90', '4w', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('0-15', 'depth1', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('15-30', 'depth2', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('30-60', 'depth3', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('60-90', 'depth4', wLTable$depth) #replace the depth by an ordered index +###########Separate the sheets name into columns (maybe change after the filtering thing?) +#The format should be something like: dr30-11-2015_pre-conv +#sheetname should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV (indicating the kind of sampling: after/before iirgation, etc) +#and a suffix indicating _[pre]/[2R]/[4R]-[1/2/3/4/5]/[pb]/[conv]) +#date column - get what has the format of a date dd-mm-yyyy +wLTable$date <- as.Date(regmatches(wLTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", wLTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despuĂ©s, verano, trilla...) +wLTable$irrtype <- regmatches(wLTable$sheetName, regexpr("bi|ai|ah|m1", wLTable$sheetName)) #español ar|dr|mv|dt|m1" +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +wLTable$irrarea <- gsub('_', '',regmatches(wLTable$sheetName, regexpr("_[0-9A-Za-z]+", wLTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +wLTable$irrnum <- gsub('-', '',regmatches(wLTable$sheetName, regexpr("-[0-9A-Za-z]+$", wLTable$sheetName))) +#check for NA's in rows +na_inrow <- apply(wLTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +wLTable <- wLTable[!na_inrow, ] +#Formate the date column to format the axis labels in ggplot +wLTable$date <- as.POSIXct(wLTable$date) +#write the final table to CSV if you want to save to text file +write.csv(wLTable,csvfile, row.names=FALSE) +dates +endSheet <- 10 +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +#Calculate water table based on the moisture frome each measurement +samplings = length(dates) +waterLayerTable <- calculateWLayer(moistData,dates) +##Bind all samplings in one table (stack the rows, keep the columns) +wLTable <- Reduce(rbind,waterLayerTable) +##FORMATTING +#Format the headers (use if needed) +# wLTable$depth <- gsub('0-15', '1w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('15-30', '2w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('30-60', '3w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('60-90', '4w', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('0-15', 'depth1', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('15-30', 'depth2', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('30-60', 'depth3', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('60-90', 'depth4', wLTable$depth) #replace the depth by an ordered index +###########Separate the sheets name into columns (maybe change after the filtering thing?) +#The format should be something like: dr30-11-2015_pre-conv +#sheetname should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV (indicating the kind of sampling: after/before iirgation, etc) +#and a suffix indicating _[pre]/[2R]/[4R]-[1/2/3/4/5]/[pb]/[conv]) +#date column - get what has the format of a date dd-mm-yyyy +wLTable$date <- as.Date(regmatches(wLTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", wLTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despuĂ©s, verano, trilla...) +wLTable$irrtype <- regmatches(wLTable$sheetName, regexpr("bi|ai|ah|m1", wLTable$sheetName)) #español ar|dr|mv|dt|m1" +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +wLTable$irrarea <- gsub('_', '',regmatches(wLTable$sheetName, regexpr("_[0-9A-Za-z]+", wLTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +wLTable$irrnum <- gsub('-', '',regmatches(wLTable$sheetName, regexpr("-[0-9A-Za-z]+$", wLTable$sheetName))) +#check for NA's in rows +na_inrow <- apply(wLTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +wLTable <- wLTable[!na_inrow, ] +#Formate the date column to format the axis labels in ggplot +wLTable$date <- as.POSIXct(wLTable$date) +#write the final table to CSV if you want to save to text file +write.csv(wLTable,csvfile, row.names=FALSE) +dates +library("XLConnect") +library(reshape2) +source(file.path("C:","Dropbox","Software","Scripts","r","moisture","methods_moisture.R", fsep = .Platform$file.sep)) +setwd("C://Dropbox//Software//Scripts//r//moisture") +setwd("C://Dropbox//Software//Scripts//r//moisture") +file="C://Dropbox//Bascula (1)//Muestras suelo//AF//AF-710COMPASS.xlsx" +trial <- "710" +setwd("C://Dropbox//Software//Scripts//r//moisture") +file="C://Dropbox//Bascula (1)//Muestras suelo//AF//AF-710COMPASS.xlsx" +trial <- "710" +col_names<-c('id', +'depth', +'canType', +'can', +'wSoilw', +'dSoilw', +'moisture') +colTypes <- c('numeric', 'character','numeric', 'numeric','numeric','numeric','numeric') +##Check this for every excel read +startRow<- 6 #Skip the fisrt 5 rows because it has other ancillary data +startSheet <- 2 +endSheet <- 10 +endCol <- 7 +endRow <- 66 +csvfile <- "C://Dropbox//Bascula (1)//Muestras suelo//AF//AF-710COMPASS.csv" +##Edit next +##getMoistreFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsamplepointID) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +dates +moistData +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +dates +moistData +samplings = length(dates) +waterLayerTable <- calculateWLayer(moistData,dates) +samplings +moistData +##Edit next +##getMoistreFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsamplepointID) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +dates +moistData +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +moistData +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +moistData +samplings = length(dates) +waterLayerTable <- calculateWLayer(moistTable1,dates) +waterLayerTable <- calculateWLayer(moistData,dates) +samplings +waterLayerTable <- calculateWLayer(moistData,dates) +moistData +waterLayerTable <- calculateWLayer(moistData,dates) +for (s in 1:length(dates)) { +#Calculate the water layer for each sample +sPoints = length(moistData[[s]]$moisture) #total samples per date +for (i in 1:sPoints) { +moistData[[s]]$sheetName[i] <- as.character(sheets[s]) #add date info in column +} +} +for (s in 1:length(dates)) { +#Calculate the water layer for each sample +sPoints = length(moistData[[s]]$moisture) #total samples per date +for (i in 1:sPoints) { +moistData[[s]]$sheetName[i] <- as.character(dates[s]) #add date info in column +} +} +moistData +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +moistData +mTable <- moistData +for (s in 1:samplings) { +#Calculate the water layer for each sample +sPoints = length(mTable[[s]]$moisture) #total samples per date +for (i in 1:sPoints) { +mTable[[s]]$sheetName[i] <- as.character(dates[s]) #add date info in column +} +} +mTable +mTable <- Reduce(rbind,mTable) +mTable +###########Separate the sheets name into columns (maybe change after the filtering thing?) +#The format should be something like: dr30-11-2015_pre-conv +#sheetname should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV (indicating the kind of sampling: after/before iirgation, etc) +#and a suffix indicating _[pre]/[2R]/[4R]-[1/2/3/4/5]/[pb]/[conv]) +#date column - get what has the format of a date dd-mm-yyyy +mTable$date <- as.Date(regmatches(mTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", mTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despu?s, verano, trilla...) +mTable$irrtype <- regmatches(mTable$sheetName, regexpr("bi|ai|ah|m1", mTable$sheetName)) #espa?ol ar|dr|mv|dt|m1" +mTable +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despu?s, verano, trilla...) +mTable$irrtype <- regmatches(mTable$sheetName, regexpr("dr", mTable$sheetName)) #espa?ol ar|dr|mv|dt|m1" +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +mTable$irrarea <- gsub('_', '',regmatches(mTable$sheetName, regexpr("_[0-9A-Za-z]+", mTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +mTable$irrnum <- gsub('-', '',regmatches(mTable$sheetName, regexpr("-[0-9A-Za-z]+$", mTable$sheetName))) +#check for NA's in rows +na_inrow <- apply(mTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +mTable <- mTable[!na_inrow, ] +#Formate the date column to format the axis labels in ggplot +mTable$date <- as.POSIXct(mTable$date) +mTable +write.csv(mTable,csvfile, row.names=FALSE) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +mData +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] +dates +moistData +samplings = length(dates) +mTable <- moistData +for (s in 1:samplings) { +#Calculate the water layer for each sample +sPoints = length(mTable[[s]]$moisture) #total samples per date +for (i in 1:sPoints) { +mTable[[s]]$sheetName[i] <- as.character(dates[s]) #add date info in column +} +} +mTable <- Reduce(rbind,mTable) +mTable$date <- as.Date(regmatches(mTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", mTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despu?s, verano, trilla...) +mTable$irrtype <- regmatches(mTable$sheetName, regexpr("dr", mTable$sheetName)) #espa?ol ar|dr|mv|dt|m1" +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +mTable$irrarea <- gsub('_', '',regmatches(mTable$sheetName, regexpr("_[0-9A-Za-z]+", mTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +mTable$irrnum <- gsub('-', '',regmatches(mTable$sheetName, regexpr("-[0-9A-Za-z]+$", mTable$sheetName))) +#check for NA's in rows +na_inrow <- apply(mTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +mTable <- mTable[!na_inrow, ] +mTable$date <- as.POSIXct(mTable$date) +write.csv(mTable,csvfile, row.names=FALSE) diff --git a/r/moisture/171020_getMoistureSamplingDataFromExcel.R b/r/moisture/171020_getMoistureSamplingDataFromExcel.R new file mode 100644 index 0000000..8d1347c --- /dev/null +++ b/r/moisture/171020_getMoistureSamplingDataFromExcel.R @@ -0,0 +1,101 @@ +#### +# GET MOISTURE SAMPLING FROM THE EXCEL FIle indicated (names of the sheets should be in eg. AR20-11-2015_conv-pre format). used to save the wet and dry weight of the sampling cans +#Calculates the water depth in mm based on the % moisture and using a given formula +# +# Execute a new instance of R to every new file to be processed, to avoid re-using variables +# +# STORE TO local file +# +# # # # #Check conditions and quality check needed to be implemented +# +# # # # # check Harcoded inputs every time. +# +#### + +#library(xlsx) #preferred to read XLSX? +library("XLConnect") +library(reshape2) + + + +####################################################### FUNCTIONS DEFINITION +source(file.path("C:","Dropbox","Software","Scripts","r","moisture","methods_moisture.R", fsep = .Platform$file.sep)) + +###################################################### EXECUTE SCRIPT +############################### INPUTS +#set WDir +setwd("C://Dropbox//Software//Scripts//r//moisture") + +file="C://Dropbox//Bascula (1)//Muestras suelo//AF//AF-710COMPASS.xlsx" +trial <- "710" +col_names<-c('id', + 'depth', + 'canType', + 'can', + 'wSoilw', #wet soil weight + 'dSoilw', #dry soil weight + 'moisture') +colTypes <- c('numeric', 'character','numeric', 'numeric','numeric','numeric','numeric') +##Check this for every excel read +startRow<- 6 #Skip the fisrt 5 rows because it has other ancillary data +startSheet <- 2 +endSheet <- 10 +endCol <- 7 +endRow <- 66 + +csvfile <- "C://Dropbox//Bascula (1)//Muestras suelo//AF//AF-710COMPASS.csv" + +################################# END INPUTS + +##Edit next +##getMoistreFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsamplepointID) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] + +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] + +#Calculate water table based on the moisture frome each measurement +samplings = length(dates) +#Use next line to calculate moisture if it is not in the tables +#moistTable1 <- calculateMoist(moistData) +waterLayerTable <- calculateWLayer(moistTable1,dates) + +##Bind all samplings in one table (stack the rows, keep the columns) +wLTable <- Reduce(rbind,waterLayerTable) + +##FORMATTING +#Format the headers (use if needed) +# wLTable$depth <- gsub('0-15', '1w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('15-30', '2w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('30-60', '3w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('60-90', '4w', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('0-15', 'depth1', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('15-30', 'depth2', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('30-60', 'depth3', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('60-90', 'depth4', wLTable$depth) #replace the depth by an ordered index + +###########Separate the sheets name into columns (maybe change after the filtering thing?) +#The format should be something like: dr30-11-2015_pre-conv +#sheetname should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV (indicating the kind of sampling: after/before iirgation, etc) +#and a suffix indicating _[pre]/[2R]/[4R]-[1/2/3/4/5]/[pb]/[conv]) +#date column - get what has the format of a date dd-mm-yyyy +wLTable$date <- as.Date(regmatches(wLTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", wLTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despu?s, verano, trilla...) +wLTable$irrtype <- regmatches(wLTable$sheetName, regexpr("bi|ai|ah|m1", wLTable$sheetName)) #espa?ol ar|dr|mv|dt|m1" +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +wLTable$irrarea <- gsub('_', '',regmatches(wLTable$sheetName, regexpr("_[0-9A-Za-z]+", wLTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +wLTable$irrnum <- gsub('-', '',regmatches(wLTable$sheetName, regexpr("-[0-9A-Za-z]+$", wLTable$sheetName))) + +#check for NA's in rows +na_inrow <- apply(wLTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +wLTable <- wLTable[!na_inrow, ] + +#Formate the date column to format the axis labels in ggplot +wLTable$date <- as.POSIXct(wLTable$date) + +#write the final table to CSV if you want to save to text file +write.csv(wLTable,csvfile, row.names=FALSE) diff --git a/r/moisture/171020_getMoistureSamplingDataFromExcel_710comparison.R b/r/moisture/171020_getMoistureSamplingDataFromExcel_710comparison.R new file mode 100644 index 0000000..82b9ef8 --- /dev/null +++ b/r/moisture/171020_getMoistureSamplingDataFromExcel_710comparison.R @@ -0,0 +1,115 @@ +#### +# GET MOISTURE SAMPLING FROM THE EXCEL FIle indicated (names of the sheets should be in eg. AR20-11-2015_conv-pre format). used to save the wet and dry weight of the sampling cans +#Calculates the water depth in mm based on the % moisture and using a given formula +#check that the excel sheets's names are formated as: +# DR16-08-2017_all-4 +# DR o AR > is after or before irrigation +# dd-mm-yyyy +# which plots were sampled: all, conv, 2aux, 4aux, pb +# the # of current irrigation, after or before the sampling was performed (or the preplanting irrigation): 1 2 3 4 pre +# +# +# Execute a new instance of R to every new file to be processed, to avoid re-using variables +# +# STORE TO local file +# +# # # # #Check conditions and quality check needed to be implemented +# +# # # # # check Harcoded inputs every time. +# +#### + +#library(xlsx) #preferred to read XLSX? +library("XLConnect") +library(reshape2) + + + +####################################################### FUNCTIONS DEFINITION +source(file.path("C:","Dropbox","Software","Scripts","r","moisture","methods_moisture.R", fsep = .Platform$file.sep)) + +###################################################### EXECUTE SCRIPT +############################### INPUTS +#set WDir +setwd("C://Dropbox//Software//Scripts//r//moisture") + +file="C://Dropbox//Bascula (1)//Muestras suelo//AF//AF-710COMPASS.xlsx" +trial <- "710" +col_names<-c('id', + 'depth', + 'canType', + 'can', + 'wSoilw', #wet soil weight + 'dSoilw', #dry soil weight + 'moisture') +colTypes <- c('numeric', 'character','numeric', 'numeric','numeric','numeric','numeric') +##Check this for every excel read +startRow<- 6 #Skip the fisrt 5 rows because it has other ancillary data +startSheet <- 2 +endSheet <- 10 +endCol <- 7 +endRow <- 66 + +csvfile <- "C://Dropbox//Bascula (1)//Muestras suelo//AF//AF-710COMPASS.csv" + +################################# END INPUTS + +##Edit next +##getMoistreFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsamplepointID) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] + +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] + +#Calculate water table based on the moisture frome each measurement +samplings = length(dates) + +## Function to get the date in the column +mTable <- moistData +for (s in 1:samplings) { + #Calculate the water layer for each sample + sPoints = length(mTable[[s]]$moisture) #total samples per date + for (i in 1:sPoints) { + mTable[[s]]$sheetName[i] <- as.character(dates[s]) #add date info in column + } +} + +##Bind all samplings in one table (stack the rows, keep the columns) +mTable <- Reduce(rbind,mTable) + +##FORMATTING +#Format the headers (use if needed) +# wLTable$depth <- gsub('0-15', '1w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('15-30', '2w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('30-60', '3w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('60-90', '4w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('0-15', 'depth1', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('15-30', 'depth2', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('30-60', 'depth3', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('60-90', 'depth4', wLTable$depth) #replace the depth by an ordered index + +###########Separate the sheets name into columns (maybe change after the filtering thing?) +#The format should be something like: dr30-11-2015_pre-conv +#sheetname should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV (indicating the kind of sampling: after/before iirgation, etc) +#and a suffix indicating _[pre]/[2R]/[4R]-[1/2/3/4/5]/[pb]/[conv]) +#date column - get what has the format of a date dd-mm-yyyy +mTable$date <- as.Date(regmatches(mTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", mTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despu?s, verano, trilla...) +mTable$irrtype <- regmatches(mTable$sheetName, regexpr("dr", mTable$sheetName)) #espa?ol ar|dr|mv|dt|m1" +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +mTable$irrarea <- gsub('_', '',regmatches(mTable$sheetName, regexpr("_[0-9A-Za-z]+", mTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +mTable$irrnum <- gsub('-', '',regmatches(mTable$sheetName, regexpr("-[0-9A-Za-z]+$", mTable$sheetName))) + +#check for NA's in rows +na_inrow <- apply(mTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +mTable <- mTable[!na_inrow, ] + +#Formate the date column to format the axis labels in ggplot +mTable$date <- as.POSIXct(mTable$date) + +#write the final table to CSV if you want to save to text file +write.csv(mTable,csvfile, row.names=FALSE) diff --git a/r/moisture/171020_getMoistureSamplingDataFromExcel_trial521_graficasHumedad.R b/r/moisture/171020_getMoistureSamplingDataFromExcel_trial521_graficasHumedad.R new file mode 100644 index 0000000..b3c1849 --- /dev/null +++ b/r/moisture/171020_getMoistureSamplingDataFromExcel_trial521_graficasHumedad.R @@ -0,0 +1,219 @@ +#### +# GET MOISTURE SAMPLING FROM THE EXCEL FIle indicated. used to save the wet and dry weight of the sampling cans +#Calculates the water depth in mm based on the % moisture and using a given formula +#This is intended includes summer samplings +#and arrange them to plot the moisture levels, and mm of infiltrated water, across time, by depths +# +# regex to split the columns are not robust and the input format should be the same as AD-521 file +# regex to split the columns are not robust and the input format should be the same as AD-521 file +#check that the excel sheets's names are formated as: +# DR16-08-2017_all-4 +# DR o AR > is after or before irrigation +# dd-mm-yyyy +# which plots were sampled: all, conv, 2aux, 4aux, pb +# the # of current irrigation, after or before the sampling was performed (or the preplanting irrigation): 1 2 3 4 pre +# +#There should be a sheet in the Excel that contains the irrigationdates events standard format (see prev years), +#this should not be included in the sheets that are read to get the data +# +# Execute a new instance of R to every new file to be processed, to avoid re-using variables +# +# STORE TO local file +# +# # # # #Check conditions and quality check needed to be implemented +# +# # # # # check Harcoded inputs every time. +# +# +#### + +#library(xlsx) #preferred to read XLSX? +library("XLConnect") +library(reshape2) +library(ggplot2) +library("dplyr") +library(raster) + + +####################################################### FUNCTIONS DEFINITION +source(file.path("C:","Dropbox","Software","Scripts","r","moisture","methods_moisture.R", fsep = .Platform$file.sep)) + +###################################################### EXECUTE SCRIPT +############################### INPUTS + +# EDIT NOW +setwd("C://Dropbox//data//AF//nut//data") #("C://Dropbox//data//AE//nut//521_humedad") +file="C://Dropbox//Bascula (1)//Muestras suelo//AF//AF-521.xlsx" #//AE//AE-521.xlsx + +#AD521 endSheet <- 19 leaves out the summer samplings +trial <- "AF-521" #"AD521" +year <- "2017-2018" #"2016-2017" + +#This is #Fixed for the standard format. Edit otherwise. +col_names<-c('id','depth','canType','can','wSoilw','dSoilw','moisture') +colTypes <- c('numeric', 'character','numeric', 'numeric','numeric','numeric','numeric') +startRow<- 6 #Skip the fisrt 5 rows because it has other ancillary data +endRow <- 102 #Fixed for the standard format for the trial 521 +endCol <- 7 #Fixed for the standard format +startSheet <- 2 # CHECK THIS EACH TIME. numbar of sheet of the excel file that has sampling data!! ! ! ! ! ! !! !!! !! ! !! !!! !! ! !! ! ! ! ! ! ! +endSheet <- 17 # number of sheets to read starting from the startSheet +#info about the "dates" sheet +datesSheetPosition = 18 +endColdates=4 +endRowdates=24 +startRowdates=13 + +#Info about the graph +#I couldnt iterate the variable because of ggplot, so, set manually: +# REVISE WHEN MAKING A NEW PLOT. This is for labels +variable <- "Moisture" #Or: +#variable <- "Water layer" +varUnit <- "%" #"for the moisture #Or: +#varUnit <- "mm"# for the water layer +#after changing there 2 values you actually only need to re-run the ggplot in lines 147 to 204 +######################## # IMPORTANTE # ############ "#$%#$&%(%&/(/)/()) +# Y HAY QUE EDITAR LA LINEA QUE DICE: +# --->>> ggplot(data=tableSum, aes(x=date, y=wlayer,group=interaction(idSum,depth))) +#PARA SELECCIONAR y=wlayer O y=moisture +######################################################## # IMPORTANTE # ############ "#$%#$&%(%&/(/)/()) + + +csvfile <- sprintf("%s_%s.csv",trial,variable) #for the output table with the summary +################################# END INPUTS + +##getMoistreFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsamplepointID) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +#Get irrigation dates from the excel from the "fechas" spread sheet +ev <- readWorksheetFromFile(file, sheet = datesSheetPosition,header=TRUE,colTypes=rep("character",3),endCol = endColdates, + endRow=endRowdates,startRow = startRowdates) +ev[,2] <- as.POSIXct(ev[,2]) #Give the format of date to the column + +##Resulting data +sheetNames<-unlist(mData[[2]]) +moistData <-mData[[1]] + +#Calculate water table based on the moisture frome each measurement +#length(sheetNames) +waterLayerTable <- calculateWLayer(moistData,sheetNames) + +##Bind all samplings in one table (stack the rows, keep the columns) +wLTable <- Reduce(rbind,waterLayerTable) + +##FORMATTING +#Format the headers (use if needed) +wLTable$depth <- gsub('0-15', 'depth1', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('15-30', 'depth2', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('30-60', 'depth3', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('60-90', 'depth4', wLTable$depth) #replace the depth by an ordered index + +###########Separate the sheets name into columns (maybe change after the filtering thing?) +#The format should be something like: dr30-11-2015_pre-conv +#sheetname should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV (indicating the kind of sampling: after/before iirgation, etc) +#and a suffix indicating _[pre]/[2R]/[4R]-[1/2/3/4/5]/[pb]/[conv]) +#date column - get what has the format of a date dd-mm-yyyy +wLTable$date <- as.Date(regmatches(wLTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", wLTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despu?s, verano, trilla...) +wLTable$irrtype <- regmatches(wLTable$sheetName, regexpr("ar|dr|mv|dt", wLTable$sheetName)) +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +wLTable$irrarea <- gsub('_', '',regmatches(wLTable$sheetName, regexpr("_[0-9A-Za-z]+", wLTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +wLTable$irrnum <- gsub('-', '',regmatches(wLTable$sheetName, regexpr("-[0-9A-Za-z]+$", wLTable$sheetName))) +############# Separate the ID to know the treatments +# Get the number of the repetition from the ID +wLTable$rep <- substr(sapply(wLTable$id,toString), 1,1) +# Get the irrigation scheme from the 2rd digit of the ID, number of irrigation treatment 1 = 2AUX, 2 = 4AUX +wLTable$irr <- substr(sapply(wLTable$id,toString), 2,2) +#use the names of the tillage codes +wLTable$irr[wLTable$irr == 1] <- "2aux" +wLTable$irr[wLTable$irr == 2] <- "4aux" +# Get the type of tillage from the 3rd digit of the ID, Type of tillage 1 = conv, 2 = PB +wLTable$till <- substr(sapply(wLTable$id,toString), 3,3) +#use the names of the tillage codes +wLTable$till[wLTable$till == 1] <- "conv" +wLTable$till[wLTable$till == 2] <- "pb" +# Get the type of residue treatment from the 4rd digit of the ID, 1= 100%, 2=40% +wLTable$res <- substr(sapply(wLTable$id,toString), 4,4) +wLTable$res[wLTable$res == 1] <- "100%" +wLTable$res[wLTable$res == 2] <- "40%" + +# column to summarize the reps, we eliminate the rep ID which is the first char, and also the N level (5th digit) +wLTable$idSum <- substr(sapply(wLTable$id,toString), 2,4) # Use for the graphs, dont summarize on the tables + +#check for NA's in rows +na_inrow <- apply(wLTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#check if the plot corresponds to the performed sampling +irr_corresponds <- wLTable$irrarea == wLTable$irr | wLTable$irrarea == wLTable$till | wLTable$irrarea =="all" +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +wLTable <- wLTable[!na_inrow & irr_corresponds, ] #the summer samplings are removed innecesarily + +## Plot +## library(ggplot2) +auxs <-c("2","4") +residues <-c("100","40") +#variables <- setNames(c("moisture","wlayer"),c("Moisture","Water layer"))#create a vector with names to have the variable and ith units +#variablesString <- setNames(c("%","mm"),c("Moisture","Water layer"))# first are the variables, the second are the names +#!# For future development: make a list of all the parameters to make it more manageable. +#ls <- list(auxs,residues,variables,variablesString) + +#Make the graphs of the data making the next combinations + for(res in residues){ + for(aux in auxs){ + wLFiltered <- wLTable[wLTable$irr %in% sprintf("%saux",aux) & wLTable$res %in% sprintf("%s%%",res),] #one way to filter, just keeping the plots/samplings of the 2 auxiliary irrigation scheme + #Summarize the reps 1,2,3 to get just the mean value, of columns wlayer and mositure (put together with the cbind function) + # Use for the graphs, dont summarize the final tables + tableSum <- aggregate(cbind(wlayer, moisture) ~ idSum+depth+date+irr+till+res, data=wLFiltered, FUN=mean) + #Formate the date column to format the axis labels in ggplot + tableSum$date <- as.POSIXct(tableSum$date) + + #plot the wlayer, group by 2 different variables with "interaction" function + ggplot(data=tableSum, aes(x=date, y=moisture,group=interaction(idSum,depth))) + #### EDIT HERE !! wlayer/moisture + geom_line(aes(color=till),size=1)+ #,linetype=till + facet_grid(depth~.,labeller=labeller(depth = labelsDepth))+ #Use this to divide into "panels" + #geom_point(aes(fill=depthCol,shape="a"),colour="black",pch=21, size=2)+ + #scale_fill_manual(values=depthColors3,labels=depthLabel)+ + scale_color_manual(values=tillColors,labels=tillTypeLabel)+ + scale_linetype_manual(values=tillLType,labels=tillTypeLabel)+ + ###Vertical lines to indicate the irrigation, harvest, trilla + #geom_vline(data = ev, aes(xintercept = as.numeric(fecha)),linetype="dotted")+ + #geom_text(data = ev, mapping = aes(label = info, y = 100), angle = 60, hjust = 0)+ + annotate("segment",x = ev[ev$event=="riego","date"],y = 2, xend = ev[ev$event=="riego","date"], + yend = 4, color="#0052a5", size=1)+ #yend = 8 for wlayer, 4 for moisture + annotate("segment",x = ev[ev$event=="siembra","date"],y = 2, xend = ev[ev$event=="siembra","date"], + yend = 4, color="#63a500", size=1)+ + annotate("segment",x = ev[ev$event=="cosecha","date"],y = 2, xend = ev[ev$event=="cosecha","date"], + yend = 4, color="orange", size=1)+ + + ##LABELS + labs(title=sprintf("Trial %s, Soil %s (%s)", trial, variable,year), + subtitle = sprintf("%s auxiliary irrigations treatment, %s%% residue",aux,res), + x = "Soil sampling date", y = sprintf("%s (%s)",variable,varUnit)) + + labs(fill = "Depth (cm)",color="Tillage")+ #format the legend #,linetype="Tillage" + #TEMA DE LA GRAFICA + theme(plot.title = element_text(family = "Arial", color="black", face="bold", size=18))+ + theme(plot.subtitle = element_text(family = "Arial", color="black", size=16))+ + theme(axis.title = element_text(family = "Arial", color="black", size=14))+ + theme(panel.background = element_rect(fill = "white", colour = "black"))+ + theme(panel.border = element_rect(linetype = "solid", fill = NA))+ + theme(panel.grid.major.y = element_line(colour = "#cccccc"))+ + theme(panel.grid.minor.y = element_line(colour = "#cccccc",linetype="dotted"))+ + scale_y_continuous(minor_breaks = seq(0 , 160, 10))+ + theme(panel.grid.major.x = element_blank())+ + scale_x_datetime(date_breaks = "30 day",date_labels= "%d-%b-%Y")+ #poner la escala en cada 15 d?as + theme(axis.text.x = element_text(angle = 25, vjust = 1.0, hjust = 1.0))+ + theme(axis.text = element_text(colour = "black", size=12)) + #save image + #output name + namePlot<- paste(trial,"_",aux,"aux_",res,"perc_",variable,".jpg",sep="") + #print(namePlot) + ggsave(namePlot,width = 7, height = 5,dpi=150,units = "in") + } + } + +#Graphs #TODO +#this would send all the code to the +#iterateGraph(auxs,residues,variables,variablesString, +# makeGraphAndSave,tableSum,tableSum$date,tableSum$idSum,tableSum$depth,trial,year) + +#write the final table to CSV if you want to save to text file +write.csv(wLTable,csvfile, row.names=FALSE) diff --git a/r/moisture/180528_getMoistureSamplingDataFromExcel_trial200.R b/r/moisture/180528_getMoistureSamplingDataFromExcel_trial200.R new file mode 100644 index 0000000..6351a91 --- /dev/null +++ b/r/moisture/180528_getMoistureSamplingDataFromExcel_trial200.R @@ -0,0 +1,166 @@ +#### +# GET MOISTURE SAMPLING FROM THE EXCEL FIle indicated. used to save the wet and dry weight of the sampling cans +#Calculates the water depth in mm based on the % moisture and using a given formula +# +#There should be a sheet in the Excel that contains the irrigationdates events standard format (see prev years), +#this should not be included in the sheets that are read to get the data +# +# Execute a new instance of R to every new file to be processed, to avoid re-using variables +# +# STORE TO local file +# +# # # # #Check conditions and quality check needed to be implemented +# +# # # # # check Harcoded inputs every time. +# +# +#### + +#library(xlsx) #preferred to read XLSX? +library("XLConnect") +library(reshape2) +library(ggplot2) +library("dplyr") +library(raster) + + +####################################################### FUNCTIONS DEFINITION +source(file.path("C:","Dropbox","Software","Scripts","r","moisture","methods_moisture.R", fsep = .Platform$file.sep)) + +###################################################### EXECUTE SCRIPT +############################### INPUTS + +# EDIT NOW +setwd("C://Dropbox//data//AF//nut//data") #("C://Dropbox//data//AE//nut//521_humedad") +file="C://Dropbox//Bascula (1)//Muestras suelo//AF//AF-200.xlsx" #//AE//AE-521.xlsx + +#AD521 endSheet <- 19 leaves out the summer samplings +trial <- "AF-200" #"AD521" +year <- "2017-2018" #"2016-2017" + +#This is #Fixed for the standard format. Edit otherwise. +col_names<-c('id','type','canType','can','wSoilw','dSoilw','moisture') +colTypes <- c('numeric', 'character','numeric', 'numeric','numeric','numeric','numeric') +startRow<-4 #Skip the fisrt 5 rows because it has other ancillary data +endRow <- 34 #Fixed for the standard format for the trial 521 +endCol <- 7 #Fixed for the standard format +startSheet <- 3 # CHECK THIS EACH TIME. numbar of sheet of the excel file that has sampling data!! ! ! ! ! ! !! !!! !! ! !! !!! !! ! !! ! ! ! ! ! ! +endSheet <- 39 # number of sheets to read starting from the startSheet +#info about the "dates" sheet +datesSheetPosition = 40 +endColdates=2 +endRowdates=38 +startRowdates=1 + + +csvfile <- sprintf("%s_%s.csv",trial,variable) #for the output table with the summary + +#Info about the graph +#I couldnt iterate the variable because of ggplot, so, set manually: +# REVISE WHEN MAKING A NEW PLOT. This is for labels +variable <- "Moisture" #Or: +#variable <- "Water layer" +varUnit <- "%" #"for the moisture #Or: +#varUnit <- "mm"# for the water layer +#after changing there 2 values you actually only need to re-run the ggplot in lines 147 to 204 +######################## # IMPORTANTE # ############ "#$%#$&%(%&/(/)/()) +# Y HAY QUE EDITAR LA LINEA QUE DICE: +# --->>> ggplot(data=tableSum, aes(x=date, y=wlayer,group=interaction(idSum,depth))) +#PARA SELECCIONAR y=wlayer O y=moisture +################################# END INPUTS + +##getMoistreFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsamplepointID) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] + +##Resulting data +sheetNames<-unlist(mData[[2]]) #Names from the excel sheets, but they are not standardized for this trial +moistData <-mData[[1]] + +#Get the date from Excel sheet list +dates1 <- readWorksheetFromFile(file, sheet = datesSheetPosition,header=TRUE,colTypes="character",endCol = endColdates, + endRow=endRowdates,startRow = startRowdates) + +##Obtener el nĂşmero de muestreo que le corresponde a cada fecha +s <- getMoistreFromExcel(file, startSheet,endSheet,6,3,"character","sampling",2) +s <- s[[1]] #Get only the data matrix (because the function returns you also the sheetnames) +s <- Reduce(rbind,s)[,6] #merge them all in one table, stacking the rows +s <- regmatches(s, regexpr("[0-9]{1,2}$", s)) #Return only what looks like 1 or 2 digits (this is our sampling number) +#Add the sampling data to the list of samplings +moistData_n <- mapply(cbind, moistData, "sampling"=s, SIMPLIFY=F) +#Add also the date +moistData_s <- mapply(cbind, moistData_n, "s_date"=as.vector(dates1), SIMPLIFY=F) + +#Calculate water table based on the moisture frome each measurement +#the dates1 is used to "count" th eiterate times, but also adds the date of the sampling to the tables +waterLayerTable <- calculateWLayer0_15(moistData_n,dates1[["dates"]]) + +##Bind all samplings in one table (stack the rows, keep the columns) +wLTable <- Reduce(rbind,waterLayerTable) + +############# Separate the ID to know the treatments +# Get the number of the repetition from the ID +wLTable$rep <- substr(sapply(wLTable$id,toString), 1,1) +# Get the irrigation scheme from the 2rd digit of the ID +wLTable$irr <- substr(sapply(wLTable$id,toString), 2,2) +# Get the nitrogen level fertilization from the 3rd digit of the ID +wLTable$nlevel <- substr(sapply(wLTable$id,toString), 3,3) + + +# column to summarize the reps, we eliminate the rep ID which is the first char, and also the N level (5th digit) +wLTable$idNoRep <- substr(sapply(wLTable$id,toString), 1,2) # Use for the graphs, dont summarize on the tables + +##########Generate and Save graph +tableSum <- aggregate(cbind(wlayer, moisture) ~ irr+nlevel+dates, data=wLTable, FUN=mean) +#Formate the date column to format the axis labels in ggplot +tableSum$dates <- as.POSIXct(tableSum$date) + +#plot the wlayer, group by 2 different variables with "interaction" function +ggplot(data=tableSum, aes(x=dates, y=moisture,group=nlevel)) + #### EDIT HERE !! wlayer/moisture + geom_line(aes(color=nlevel),size=1)+ #,linetype=till + facet_grid(irr~.,labeller=labeller(irr = c("1" = "Furrow", "2" = "Drip")))+ #Use this to divide into "panels" + #geom_point(aes(fill=depthCol,shape="a"),colour="black",pch=21, size=2)+ + #scale_fill_manual(values=depthColors3,labels=depthLabel)+ + #scale_color_manual(values=tillColors,labels=tillTypeLabel)+ + #scale_linetype_manual(values=tillLType,labels=tillTypeLabel)+ + ###Vertical lines to indicate the irrigation, harvest, trilla + #geom_vline(data = ev, aes(xintercept = as.numeric(fecha)),linetype="dotted")+ + #geom_text(data = ev, mapping = aes(label = info, y = 100), angle = 60, hjust = 0)+ + #Anotate to mark the irrigations and planting and harvesting + #annotate("segment",x = ev[ev$event=="riego","date"],y = 2, xend = ev[ev$event=="riego","date"], + #yend = 4, color="#0052a5", size=1)+ #yend = 8 for wlayer, 4 for moisture + #annotate("segment",x = ev[ev$event=="siembra","date"],y = 2, xend = ev[ev$event=="siembra","date"], + #yend = 4, color="#63a500", size=1)+ + #annotate("segment",x = ev[ev$event=="cosecha","date"],y = 2, xend = ev[ev$event=="cosecha","date"], + #yend = 4, color="orange", size=1)+ + + ##LABELS + labs(title=sprintf("Trial %s, Soil %s (%s)", trial, variable,year), + x = "Soil sampling date", y = sprintf("%s (%s)",variable,varUnit)) + + labs(color="N level")+ #format the legend #,linetype="Tillage" + # #TEMA DE LA GRAFICA + theme(plot.title = element_text(family = "Arial", color="black", face="bold", size=18))+ + theme(plot.subtitle = element_text(family = "Arial", color="black", size=16))+ + theme(axis.title = element_text(family = "Arial", color="black", size=14))+ + theme(panel.background = element_rect(fill = "white", colour = "black"))+ + theme(panel.border = element_rect(linetype = "solid", fill = NA))+ + theme(panel.grid.major.y = element_line(colour = "#cccccc"))+ + theme(panel.grid.minor.y = element_line(colour = "#cccccc",linetype="dotted"))+ + scale_y_continuous(minor_breaks = seq(0 , 160, 10))+ + theme(panel.grid.major.x = element_blank())+ + scale_x_datetime(date_breaks = "15 day",date_labels= "%d-%b-%Y")+ #poner la escala en cada 15 d?as + theme(axis.text.x = element_text(angle = 25, vjust = 1.0, hjust = 1.0))+ + theme(axis.text = element_text(colour = "black", size=12)) +#save image +#output name +namePlot<- paste(trial,variable,".jpg",sep="") +#print(namePlot) +ggsave(namePlot,width = 7, height = 5,dpi=150,units = "in") +#######End of graph + +#check for NA's in rows +na_inrow <- apply(wLTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#keep only the rows that dont have NA's +wLTable <- wLTable[!na_inrow, ] #the summer samplings are removed innecesarily + +#write the final table to CSV if you want to save to text file +write.csv(wLTable,csvfile, row.names=FALSE) diff --git a/r/moisture/archive/171020_getMoistureSamplingDataFromExcel_trial521.R b/r/moisture/archive/171020_getMoistureSamplingDataFromExcel_trial521.R new file mode 100644 index 0000000..81d0d71 --- /dev/null +++ b/r/moisture/archive/171020_getMoistureSamplingDataFromExcel_trial521.R @@ -0,0 +1,109 @@ +#### +# GET MOISTURE SAMPLING FROM THE EXCEL FIle indicated. used to save the wet and dry weight of the sampling cans +#Calculates the water depth in mm based on the % moisture and using a given formula + +#check that the excel sheets's names are formated as: +# DR16-08-2017_all-4 +# DR o AR > is after or before irrigation +# dd-mm-yyyy +# which plots were sampled: all, conv, 2aux, 4aux, pb +# the # of current irrigation, after or before the sampling was performed (or the preplanting irrigation): 1 2 3 4 pre +# +# Execute a new instance of R to every new file to be processed, to avoid re-using variables +# +# STORE TO local file +# +# # # # #Check conditions and quality check needed to be implemented +# +# # # # # check Harcoded inputs every time. +# +#### + +#library(xlsx) #preferred to read XLSX? +library("XLConnect") +library(reshape2) + +####################################################### FUNCTIONS DEFINITION +source(file.path("C:","Dropbox","Software","Scripts","r","moisture","methods_moisture.R", fsep = .Platform$file.sep)) + + +###################################################### EXECUTE SCRIPT +############################### INPUTS +setwd("C://Dropbox//data//AF//nut//data") + +file="C://Dropbox//Bascula (1)//Muestras suelo//AF//AF-521.xlsx" +trial <- "521" +col_names<-c('id', + 'depth', + 'canType', + 'can', + 'wSoilw', + 'dSoilw', + 'moisture') +colTypes <- c('numeric', 'character','numeric', 'numeric','numeric','numeric','numeric') +##Check this for every excel read +startRow<- 6 #Skip the fisrt 5 rows because it has other ancillary data +startSheet <- 2 +endCol <- 7 +endRow <- 102 +endSheet <- 17 + +csvfile <- "waterLayer_humedad_AE521.csv" +pnrfile <- "waterLayer_humedad_AE521" +################################# END INPUTS + +##Edit next +##getMoistreFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsamplepointID) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] +##Resulting data +dates<-unlist(mData[[2]]) +moistData <-mData[[1]] + +#Calculate water table based on the moisture frome each measurement +samplings = length(dates) +waterLayerTable <- calculateWLayer(moistData,dates) + +##Bind all samplings in one table (stack the rows, keep the columns) +waterLayerTableBind <- Reduce(rbind,waterLayerTable) + +##FORMATTING +#Format the headers +waterLayerTableBind$depth <- gsub('0-15', '1w', waterLayerTableBind$depth) #replace the depth by an ordered index +waterLayerTableBind$depth <- gsub('15-30', '2w', waterLayerTableBind$depth) #replace the depth by an ordered index +waterLayerTableBind$depth <- gsub('30-60', '3w', waterLayerTableBind$depth) #replace the depth by an ordered index +waterLayerTableBind$depth <- gsub('60-90', '4w', waterLayerTableBind$depth) #replace the depth by an ordered index +#date should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV +waterLayerTableBind$date <- substr(waterLayerTableBind$sheetName,3,12) #Keep only date +waterLayerTableBind$date <- gsub('201', '1', waterLayerTableBind$date) #Replace 4 digits of the year by 2 digit +#format the decimal places of the water layer column to 2 digits, to make cells of same length +#Only format the cells that do have a value, not a NA +waterLayerTableBind$wlayer[!is.na(waterLayerTableBind$wlayer)] <- format(round(waterLayerTableBind$wlayer[!is.na(waterLayerTableBind$wlayer)], 2), nsmall = 2) +#replace Na by a point +waterLayerTableBind[is.na(waterLayerTableBind)] <- "." #use a logical conditional + +#convert table to wide format +#Keep the water layer infomation and the IDs +# a "formula object" is used in the form: varInDependent ~ vardependent +#This fails with duplicate or missing rows +wTable_depth_date <- dcast(waterLayerTableBind, id ~ depth + date, value.var = "wlayer") ## ... means "all other variables" + +##FORMATTING +#split the plot wID into its meaning +wTable_depth_date$rep <- substr(wTable_depth_date$id,1,1) #Repetition +wTable_depth_date$irr <- substr(wTable_depth_date$id,2,2) # irrigation +wTable_depth_date$till <- substr(wTable_depth_date$id,3,3) # till +wTable_depth_date$residue <- substr(wTable_depth_date$id,4,4) #residue +wTable_depth_date$nlevel <- substr(wTable_depth_date$id,5,5) # nitrogen level +#And reorder the columns +n= length(colnames(wTable_depth_date)) #Count the columns +wTable_depth_date <- wTable_depth_date[,c((n-4):n,2:(n-5))] #didnt include the first one +#Replace the scores in the headers +colnames(wTable_depth_date) <- gsub('-', '', colnames(wTable_depth_date)) +colnames(wTable_depth_date) <- gsub('_', '', colnames(wTable_depth_date)) + +#write the final table to CSV if you want to save to text file +write.csv(wTable_depth_date,csvfile, row.names=FALSE) +##write the space delimited file +#How to make the columns stay aligned? +write.table(wTable_depth_date,file = paste(pnrfile,".prn",sep=""),sep = " ",row.names=FALSE,col.names=FALSE,quote = FALSE)#data +# how to treaspose?# write.table(colnames(wTable_depth_date),file = paste(pnrfile,"header.prn",sep="_"),sep = " ",row.names=FALSE,col.names=FALSE,quote = FALSE)#header diff --git a/r/moisture/archive/171031_getMoistureSamplingDataFromExcel_trialAE521_graficasHumedad.R b/r/moisture/archive/171031_getMoistureSamplingDataFromExcel_trialAE521_graficasHumedad.R new file mode 100644 index 0000000..a6c42d8 --- /dev/null +++ b/r/moisture/archive/171031_getMoistureSamplingDataFromExcel_trialAE521_graficasHumedad.R @@ -0,0 +1,270 @@ +#### +# GET MOISTURE SAMPLING FROM THE EXCEL FIle indicated. used to save the wet and dry weight of the sampling cans +#Calculates the water depth in mm based on the % moisture and using a given formula +#This is intended to keep inly the sampling corresponding to the irrigations (no summer samplings) +#and arrange them to plot the moisture levels, and mm of infiltrated water, across time +# +# regex to split the columns are not robust and the input format should be the same as AD-521 file +#check that the excel sheets's names are formated as: +# DR16-08-2017_all-4 +# DR o AR > is after or before irrigation +# dd-mm-yyyy +# which plots were sampled: all, conv, 2aux, 4aux, pb +# the # of current irrigation, after or before the sampling was performed (or the preplanting irrigation): 1 2 3 4 pre +# +# +# Execute a new instance of R to every new file to be processed, to avoid re-using variables +# +# STORE TO local file +# +# # # # #Check conditions and quality check needed to be implemented +# +# # # # # check Harcoded inputs every time. +# +#Ediciones para leed el AE521 +#### + +#library(xlsx) #preferred to read XLSX? +library("XLConnect") +library(reshape2) +library(ggplot2) +library("dplyr") + + +####################################################### FUNCTIONS DEFINITION +source(file.path("C:","Dropbox","Software","Scripts","r","moisture","methods_moisture.R", fsep = .Platform$file.sep)) + +###################################################### EXECUTE SCRIPT +############################### INPUTS + +# EDIT NOW +setwd("C://Dropbox//data//AD//AD_nut//521_humedad") +file="C://Dropbox//Bascula (1)//Muestras suelo//AD//AD-521.xlsx" +startSheet <- 5 # CHECK THIS EACH TIME. numbar of sheet of the excel file that has sampling data!! ! ! ! ! ! !! !!! !! ! !! !!! !! ! !! ! ! ! ! ! ! +endSheet <- 23#16AE# number of sheets to read starting from the startSheet #!# WTF not working +trial <- "521" +csvfile <- "humedad_AD521.csv" +pnrfile <- "humedad_AD521" + +#This is #Fixed for the standard format. Edit otherwise. +col_names<-c('id', + 'depth', + 'canType', + 'can', + 'wSoilw', + 'dSoilw', + 'moisture') +colTypes <- c('numeric', 'character','numeric', 'numeric','numeric','numeric','numeric') +startRow<- 6 #Skip the fisrt 5 rows because it has other ancillary data +endCol <- 7 #Fixed for the standard format +endRow <- 103 #Fixed for the standard format for the trial 521 +################################# END INPUTS + +##getMoistreFromExcel <- function (file, startSheet,endCol,endRow,colTypes,col_names,maxsamplepointID) +mData <- getMoistreFromExcel(file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow) #get the raw moisture data[[1]] and sheetnames[[2]] + +##Resulting data +sheetNames<-unlist(mData[[2]]) +moistData <-mData[[1]] + +#Calculate water table based on the moisture frome each measurement +#length(sheetNames) +waterLayerTable <- calculateWLayer(moistData,sheetNames) + +##Bind all samplings in one table (stack the rows, keep the columns) +wLTable <- Reduce(rbind,waterLayerTable) + +##FORMATTING +#Format the headers (use if needed) +# wLTable$depth <- gsub('0-15', '1w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('15-30', '2w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('30-60', '3w', wLTable$depth) #replace the depth by an ordered index +# wLTable$depth <- gsub('60-90', '4w', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('0-15', 'depth1', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('15-30', 'depth2', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('30-60', 'depth3', wLTable$depth) #replace the depth by an ordered index +wLTable$depth <- gsub('60-90', 'depth4', wLTable$depth) #replace the depth by an ordered index + +###########Separate the sheets name into columns (maybe change after the filtering thing?) +#The format should be something like: dr30-11-2015_pre-conv +#sheetname should be in a format dd-mm-yyyy and will have a prefix of 2 char: AR or DR or DT or MV (indicating the kind of sampling: after/before iirgation, etc) +#and a suffix indicating _[pre]/[2R]/[4R]-[1/2/3/4/5]/[pb]/[conv]) +#date column - get what has the format of a date dd-mm-yyyy +wLTable$date <- as.Date(regmatches(wLTable$sheetName, regexpr("[0-9]{2}-[0-9]{2}-[0-9]{4}", wLTable$sheetName)),"%d-%m-%Y") +#sampling type column - what looks like [dr]/[ar]/[mv]/[dt] ... (antes de riego, despu?s, verano, trilla...) +wLTable$irrtype <- regmatches(wLTable$sheetName, regexpr("ar|dr|mv|dt", wLTable$sheetName)) +#irrarea sampled column - the sampling corresponded to which irrigation instance: pre(siembra), 4R(4 riegos) or 2R(2 riegos) +wLTable$irrarea <- gsub('_', '',regmatches(wLTable$sheetName, regexpr("_[0-9A-Za-z]+", wLTable$sheetName))) +#irrigation sampled column - weather its the first, second.. irrigation etc +wLTable$irrnum <- gsub('-', '',regmatches(wLTable$sheetName, regexpr("-[0-9A-Za-z]+$", wLTable$sheetName))) +############# Separate the ID to know the treatments +# Get the number of the repetition from the ID +wLTable$rep <- substr(sapply(wLTable$id,toString), 1,1) +# Get the irrigation scheme from the 2rd digit of the ID, number of irrigation treatment 1 = 2AUX, 2 = 4AUX +wLTable$irr <- substr(sapply(wLTable$id,toString), 2,2) +#use the names of the tillage codes +wLTable$irr[wLTable$irr == 1] <- "2aux" +wLTable$irr[wLTable$irr == 2] <- "4aux" +# Get the type of tillage from the 3rd digit of the ID, Type of tillage 1 = conv, 2 = PB +wLTable$till <- substr(sapply(wLTable$id,toString), 3,3) +#use the names of the tillage codes +wLTable$till[wLTable$till == 1] <- "conv" +wLTable$till[wLTable$till == 2] <- "pb" +# Get the type of residue treatment from the 4rd digit of the ID, 1= 100%, 2=40% +wLTable$res <- substr(sapply(wLTable$id,toString), 4,4) +wLTable$res[wLTable$res == 1] <- "100%" +wLTable$res[wLTable$res == 2] <- "40%" +# column to summarize the reps, we eliminate the rep ID which is the first char, and also the N level (5th digit) +wLTable$idSum <- substr(sapply(wLTable$id,toString), 2,4) + +#check for NA's in rows +na_inrow <- apply(wLTable, 1, function(x){any(is.na(x))}) # logical vector of the rows with any NA's +#wLTable <- wLTable[complete.cases(wLTable), ] #This iis to remove any row that has a NA on it. +#check if the plot corresponds to the performed sampling +irr_corresponds <- wLTable$irrarea == wLTable$irr | wLTable$irrarea == wLTable$till +#keep only the rows that dont have NA's and their treatment correspond to the performed sampling +wLTable <- wLTable[!na_inrow, ] +##Filter the table as DESIRED +#The following is a harcoded way to generate different filterd tables, +#Fro future development this can be converted to a loop or a swith menu. +#wLFiltered <- wLTable[wLTable$irr %in% c("2aux") & wLTable$till %in% c("pb")& wLTable$res %in% c("40%"),] #one way to filter +#wLFiltered <- wLTable[wLTable$irr %in% c("2aux") & wLTable$till %in% c("conv")& wLTable$res %in% c("40%"),] #one way to filter +wLFiltered <- wLTable[wLTable$irr %in% c("4aux")& wLTable$res %in% c("40%"),] #one way to filter, just keeping the plots/samplings of the 2 auxiliary irrigation scheme + +#Summarize the reps 1,2,3 to get just the mean value, of columns wlayer and mositure (put together with the cbind function) +tableSum <- aggregate(cbind(wlayer, moisture) ~ idSum+depth+date+irr+till+res, data=wLFiltered, FUN=mean) + +#Formate the date column to format the axis labels in ggplot +tableSum$date <- as.POSIXct(tableSum$date) + +### FORMATIING headers ### +#wLTable$date <- substr(wLTable$sheetNames,3,12) #Keep only the date in the column date #!# we actually need the AR/DR +#wLTable$date <- gsub('201', '1', wLTable$sheetNames) #Replace 4 digits of the year by 2 digit +##format the decimal places of the water layer column to 2 digits, to make cells of same length +##Only format the cells that do have a value, not a NA +#wLTable$wlayer[!is.na(wLTable$wlayer)] <- format(round(wLTable$wlayer[!is.na(wLTable$wlayer)], 2), nsmall = 2) +##replace Na by a point +#wLTable[is.na(wLTable)] <- "." #use a logical conditional + + + +#Order the data +#wLFiltered <- wLFiltered[order(wLFiltered$depth),] by depth + + +########convert table to wide format +##Keep the water layer infomation and the IDs +## a "formula object" is used in the form: varInDependent ~ vardependent +##This fails with duplicate or missing rows +####Here the order of the columns will arrange the table as DESIRED to get a useful format table################################### +#wTable_depth_date <- dcast(wLTable, id + depth ~ irr +area + type, value.var = "wlayer") ##arrange rows by id and columns by depth + date +#wTable_depth_date <- dcast(wLFiltered, id ~ irr +area + type +depth, value.var = "wlayer") ## Arrange for the ASCIIs +#wTable_depth_date <- dcast(wLFiltered, id+date+rep ~ depth , value.var = "wlayer") ## Arrange for the plots + +#30251f,#715A4B,#A78772,#E1B79B + +## Plot +## library(ggplot2) + +###Some tricks to format the graph +depthColors <- c(depth1 = "#E1B79B", depth2 = "#A78772", depth3 ="#6d5749", depth4 = "#30251f") +depthColors2 <- c(depth1 = "#8c1a1a", depth2 = "#ed9e36", depth3 ="#008706", depth4 = "#8dc159") +depthColors3 <- c(depth1 = "#ffece0", depth2 = "#ffa474", depth3 ="#db4551", depth4 = "#8b0000") +tillLType <- c(conv = "solid", pb = "longdash") +tillTypeLabel <-c("Conventional","PB") +depthLabel <- c("0-15","15-30","30-60","60-90") +depthPontShape <- c("0-15","15-30","30-60","60-90") +breaks =tableSum$date + +#plot the wlayer, group by 2 different variables with "interaction" function +ggplot(data=tableSum, aes(x=date, y=wlayer,group=interaction(idSum,depth))) + + #geom_line(aes(color="black",linetype=till))+ + geom_line(aes(linetype=till))+ + geom_point(aes(fill=depth,shape="a"),colour="black",pch=21, size=3)+ + scale_fill_manual(values=depthColors3,labels=depthLabel)+ + scale_linetype_manual(values=tillLType,labels=tillTypeLabel)+ + #scale_linetype_manual(values=tillLType,labels=tillTypeLabel)+ #set the linetype according to the till, list defined + # to match the secondary axis, the data is "transformed" and then adapted (divide and *) + ##LABELS + labs(title="Trial AE-521, Soil water content (2016-2017)", + subtitle = "4 auxiliary irrigations treatment, 40% residue", + x = "Soil sampling date", y = "Water content (mm)") + + labs(fill = "Depth (cm)",linetype="Tillage")+ #format the legend + theme(plot.title = element_text(family = "Arial", color="black", face="bold", size=18))+ + theme(plot.subtitle = element_text(family = "Arial", color="black", size=16))+ + theme(axis.title = element_text(family = "Arial", color="black", size=14))+ + #TEMA DE LA GRAFICA + theme(panel.background = element_rect(fill = "white", colour = "black"))+ + theme(panel.border = element_rect(linetype = "solid", fill = NA))+ + theme(panel.grid.major.y = element_line(colour = "#cccccc"))+ + theme(panel.grid.minor.y = element_line(colour = "#cccccc",linetype="dotted"))+ + scale_y_continuous(minor_breaks = seq(0 , 160, 10))+ + theme(panel.grid.major.x = element_blank())+ + scale_x_datetime(date_breaks = "15 day",date_labels= "%d-%b-%Y")+ #poner la escala en cada 15 d?as + theme(axis.text.x = element_text(angle = 25, vjust = 1.0, hjust = 1.0))+ + theme(axis.text = element_text(colour = "black", size=12)) + +#plot the moisture, group by 2 different variables with "interaction" function +ggplot(data=tableSum, aes(x=date, y=moisture,group=interaction(idSum,depth))) + + geom_line(aes(linetype=till))+ #optional color=depth,,size=0.8 + geom_point(aes(fill=depth,shape="a"),colour="black",pch=21, size=3)+ + scale_fill_manual(values=depthColors3,labels=depthLabel)+ + scale_color_manual(values=depthColors3,labels=depthLabel)+ + scale_linetype_manual(values=tillLType,labels=tillTypeLabel)+ #set the linetype according to the till, list defined + # to match the secondary axis, the data is "transformed" and then adapted (divide and *) + ##LABELS + labs(title="Trial AE-521, Soil moisture content (2016-2017)", + subtitle = "4 auxiliary irrigations treatment, 40% residue", + x = "Soil sampling date", y = "moisture (%)") + + labs(fill = "Depth (cm)",linetype="Tillage")+ #optional ,color = "Depth (cm) + theme(plot.title = element_text(family = "Arial", color="black", face="bold", size=18))+ + theme(plot.subtitle = element_text(family = "Arial", color="black", size=16))+ + theme(axis.title = element_text(family = "Arial", color="black", size=14))+ + #TEMA DE LA GRAFICA + theme(panel.background = element_rect(fill = "white", colour = "black"))+ + theme(panel.border = element_rect(linetype = "solid", fill = NA))+ + theme(panel.grid.major.y = element_line(colour = "#cccccc"))+ + theme(panel.grid.minor.y = element_line(colour = "#cccccc",linetype="dotted"))+ + scale_y_continuous(minor_breaks = seq(0 , 160, 2))+ + theme(panel.grid.major.x = element_blank())+ + scale_x_datetime(date_breaks = "15 day",date_labels= "%d-%b-%Y")+ + #limits = as.Date(c('28-11-2015','12-03-2016')))+ #poner la escala en cada 15 d?as + theme(axis.text.x = element_text(angle = 25, vjust = 1.0, hjust = 1.0))+ + theme(axis.text = element_text(colour = "black", size=12)) +#save image +namePlot<- "AE521_4aux_40perc_mmWater_PByConv.jpeg" +namePlot<- "AE521_4aux_40perc_moisture_PByConv.jpeg" +ggsave(namePlot) + + + ###Example +# ggplot(data=tableSum, aes(x=date, y=wlayer,group=interaction(id, depth))) + +# geom_line(aes(color=depth))+ +# geom_point(aes(color=depth))+ +# labs(title = "Soil water content", x = "Date", y = "water layer (mm)")+ +# geom_col(aes(x=date, y=moisture,group=interaction(id, depth)))+ +# scale_y_continuous(sec.axis = sec_axis(~.*2, name = "Moisture (%)")) + + +##FORMATTING +##split the plot wID into its meaning +#wTable_depth_date$rep <- substr(wTable_depth_date$id,1,1) #Repetition +#wTable_depth_date$irr <- substr(wTable_depth_date$id,2,2) # irrigation +#wTable_depth_date$till <- substr(wTable_depth_date$id,3,3) # till +#wTable_depth_date$residue <- substr(wTable_depth_date$id,4,4) #residue +#wTable_depth_date$nlevel <- substr(wTable_depth_date$id,5,5) # nitrogen level + +#And reorder the columns to put the id columns at the begining +#n= length(colnames(wTable_depth_date)) #Count the columns +#wTable_depth_date <- wTable_depth_date[,c((n-4):n,2:(n-5))] #didnt include the first one to omit the full plot name +#FORMATTING: Replace the scores in the headers +#colnames(wTable_depth_date) <- gsub('-', '', colnames(wTable_depth_date)) +#colnames(wTable_depth_date) <- gsub('_', '', colnames(wTable_depth_date)) + +#write the final table to CSV if you want to save to text file +write.csv(wLTable,csvfile, row.names=FALSE) +##write the space delimited file +#How to make the columns stay aligned? +write.table(wTable_depth_date,file = paste(pnrfile,".prn",sep=""),sep = " ",row.names=FALSE,col.names=FALSE,quote = FALSE)#data +# how to treaspose?# write.table(colnames(wTable_depth_date),file = paste(pnrfile,"header.prn",sep="_"),sep = " ",row.names=FALSE,col.names=FALSE,quote = FALSE)#header + diff --git a/r/moisture/methods_formating.R b/r/moisture/methods_formating.R new file mode 100644 index 0000000..77de8b9 --- /dev/null +++ b/r/moisture/methods_formating.R @@ -0,0 +1,9 @@ +###Some tricks to format the graph from the 521 moisture graphs +depthColors <- c(depth1 = "#E1B79B", depth2 = "#A78772", depth3 ="#6d5749", depth4 = "#30251f") +depthColors2 <- c(depth1 = "#8c1a1a", depth2 = "#ed9e36", depth3 ="#008706", depth4 = "#8dc159") +depthColors3 <- c(depth1 = "#ffece0", depth2 = "#ffa474", depth3 ="#db4551", depth4 = "#8b0000") +tillLType <- c(conv = "solid", pb = "longdash") +tillTypeLabel <-c("Conventional","PB") +depthLabel <- c("0-15","15-30","30-60","60-90") +depthPontShape <- c("0-15","15-30","30-60","60-90") +breaks =tableSum$date \ No newline at end of file diff --git a/r/moisture/methods_moisture.R b/r/moisture/methods_moisture.R new file mode 100644 index 0000000..6fa8231 --- /dev/null +++ b/r/moisture/methods_moisture.R @@ -0,0 +1,198 @@ +#Methods for the moisture sampling calculations +#last edited: 27/10/2017 + +#Library +#library(xlsx) #preferred to read XLSX? +library("XLConnect") +library(reshape2) +library(ggplot2) +library("dplyr") + +####################################################### FUNCTIONS DEFINITION +#########Water table calculation +#0-15 cm depth with current sampling settings +#x is the moisture soil percent al 0-100 scale +getwLayer <- function(mperc, depth) { + switch(depth, + "0-15" = round((mperc/100)*1.21*15*10, digits = 3), + "15-30" = round((mperc/100)*1.25*15*10, digits = 3), + "30-60" = round((mperc/100)*1.44*30*10, digits = 3), + "60-90" = round((mperc/100)*1.49*30*10, digits = 3)) +} + +## Function to calculate the Wlayer +calculateWLayer <- function(df.list,sheets) { + for (s in 1:length(sheets)) { + #Calculate the water layer for each sample + sPoints = length(df.list[[s]]$moisture) #total samples per date + for (i in 1:sPoints) { + wl <- getwLayer(df.list[[s]]$moisture[i], df.list[[s]]$depth[i]) + #print result + #print(paste0("Date ",sheets[s],", plot ",df.list[[s]]$id[i],": wLayer:",wl)) + df.list[[s]]$wlayer[i] <- wl #add water layer info in column + df.list[[s]]$sheetName[i] <- as.character(sheets[s]) #add date info in column + } + } + return (df.list) #data with wLayer info +} + +## Function to calculate the Wlayer only at 0-15 depth +calculateWLayer0_15 <- function(df.list,dates1) { + for (s in 1:length(df.list)) { + #Calculate the water layer for each sample + sPoints = length(df.list[[s]]$moisture) #total samples per date + for (i in 1:sPoints) { + wl <- getwLayer(df.list[[s]]$moisture[i], "0-15") + #print result + #print(paste0("Date ",sheets[s],", plot ",df.list[[s]]$id[i],": wLayer:",wl)) + df.list[[s]]$wlayer[i] <- wl #add water layer info in column + df.list[[s]]$dates[i] <- as.character(dates1[s]) #add date info in column + } + } + return (df.list) #data with wLayer info +} + + +#########Read Excel sheets +#The sheet names should be in the format "AR20-11-2015_conv-pre" +# after or before irrigation, after harvest or summer sampling: AR | DR | DT | MV +# date dd-mm-yyyy +# what trial is measured: conv | pv | 4AUX | 2AUX | all +# number of irrigation: pre | 1 | 2 | 3 | 4 +getMoistreFromExcel <- function (file, startSheet,endSheet,endCol,endRow,colTypes,col_names,startRow){ + xlxsF =file + wb <- loadWorkbook(xlxsF) + sheets <- getSheets(wb) + sheets <- lapply(sheets,function(x) tolower(x)) + setMissingValue(wb, value = "NA") + sheetsIndex <- startSheet:endSheet#Avoid the first 3 sheets of this file because they dont have data + df.list <- readWorksheetFromFile(xlxsF, #Get the data of th xlsx file + sheet = sheetsIndex, + header=TRUE, + colTypes = colTypes, + endCol = endCol, + endRow=endRow, + startRow = startRow) + #Next just rename the columns WITH the given input names + for (i in 1:length(df.list)){ + colnames(df.list[[i]])<-col_names + } + + sheets <- sheets[sheetsIndex] #Remove the sheet names that were not used + + ##Calculate water table according to the moisture + #For every sampling date + #df.list <- calculateWLayer(df.list,sheets) + + return (list(df.list,sheets)) +} + +###Some settings to format the graphs +depthColors <- c(depth1 = "#E1B79B", depth2 = "#A78772", depth3 ="#6d5749", depth4 = "#30251f") +depthColors2 <- c(depth1 = "#8c1a1a", depth2 = "#ed9e36", depth3 ="#008706", depth4 = "#8dc159") +depthColors3 <- c(depth1 = "#ffece0", depth2 = "#ffa474", depth3 ="#db4551", depth4 = "#8b0000") +tillLType <- c(conv = "solid", pb = "longdash") +tillColors <- c(conv = "black", pb = "brown") +tillTypeLabel <-c("Conventional","PB") +depthLabel <- c("0-15","15-30","30-60","60-90") +depthPontShape <- c("0-15","15-30","30-60","60-90") +labelsDepth <- c(depth1 = "0-15", depth2 = "15-30", depth3 ="30-60", depth4 = "60-90") +labelsN200 <- c("1" = "0 N", "2" = "150 N", "3" ="300 N", "4" = "150 N", "5" = "300 N") +#sp + facet_grid(. ~ sex, labeller=labeller(sex = labels)) + +library(ggplot2) +#Make moisture Graph And Save JPG to working directoy +#Graphs the date vs a variable of the moisture sampling (eg. moisture or water layer mm) +#INPUTS: +# df dataframe +# varCol data of variable to plot on the Y axis +# dateCol data of variable to plot on the X axis +# idCol column that has the identifier of the data (data or name?) +# depthCol column that has the depth of each sample (data or name?) +# aux String of the auxiliary irrigation scheme of the data (for labels) +# res String of the residue percent treatment of the data (for labels) +# trial String to which trial the data corresponds +# variable String of the name of the variable in the Y axis (varCol) +# year String of the year cycle +# varUnit Sting indicating the units of the variable +makeGraphAndSave <- function(df,varCol,dateCol,idCol,depthCol,aux,res,trial,variable,year,varUnit){ + #plot the wlayer, group by 2 different variables with "interaction" function + ggplot(data=df, aes(x=dateCol, y=varCol,group=interaction(idCol,depthCol))) + + #geom_line(aes(color="black",linetype=till))+ + geom_line(aes(linetype=till))+ + geom_point(aes(fill=depthCol,shape="a"),colour="black",pch=21, size=2)+ + scale_fill_manual(values=depthColors3,labels=depthLabel)+ + scale_linetype_manual(values=tillLType,labels=tillTypeLabel)+ + #scale_linetype_manual(values=tillLType,labels=tillTypeLabel)+ #set the linetype according to the till, list defined + # to match the secondary axis, the data is "transformed" and then adapted (divide and *) + ##LABELS + labs(title=sprintf("Trial %s, Soil %s (%s)", trial, variable,year), + subtitle = sprintf("%s auxiliary irrigations treatment, %s%% residue",aux,res), + x = "Soil sampling date", y = sprintf("%s (%s)",variable,varUnit)) + + labs(fill = "Depth (cm)",linetype="Tillage")+ #format the legend + theme(plot.title = element_text(family = "Arial", color="black", face="bold", size=18))+ + theme(plot.subtitle = element_text(family = "Arial", color="black", size=16))+ + theme(axis.title = element_text(family = "Arial", color="black", size=14))+ + #TEMA DE LA GRAFICA + theme(panel.background = element_rect(fill = "white", colour = "black"))+ + theme(panel.border = element_rect(linetype = "solid", fill = NA))+ + theme(panel.grid.major.y = element_line(colour = "#cccccc"))+ + theme(panel.grid.minor.y = element_line(colour = "#cccccc",linetype="dotted"))+ + scale_y_continuous(minor_breaks = seq(0 , 160, 5))+ + theme(panel.grid.major.x = element_blank())+ + scale_x_datetime(date_breaks = "30 day",date_labels= "%d-%b-%Y")+ #poner la escala en cada 15 d?as + theme(axis.text.x = element_text(angle = 25, vjust = 1.0, hjust = 1.0))+ + theme(axis.text = element_text(colour = "black", size=12)) + + #save image + #output name + namePlot<- paste(trial,"_",aux,"aux_",res,"perc_",variable,".jpg",sep="") + #print(namePlot) + ggsave(namePlot,width = 7, height = 5,dpi=150,units = "in") +} + +#######Iterate graph, to use with the "graph Function" makeGraphAndSave +#This can be further improved +#The first are to know how to make the loop +# auxs string vector of auxiliary irrigations (just the number) +# residues string vector of residues treatments (just the number) +# variables named string vector of the variables to be plotted on the Y axis And units to use +# variablesString named string vector of the variables as "human readable version" +#Examples: +# auxs <-c("2","4") +# residues <-c("100","40") +# variables <- setNames(c("moisture","wlayer"),c("Moisture","Water layer"))#create a vector with names to have the variable (column name in the df) and its units +# variablesString <- setNames(c("%","mm"),c("Moisture","Water layer")) +#######These are just to feed the graph method: +# (df,varCol,dateCol,idCol,depthCol,aux,res,trial,variable,year,varUnit) +#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!needs improvement +iterateGraph <- function(auxs,residues,variables,variablesString, #paramenters to iterate + graphFunc,df,dateCol,idCol,depthCol,trial,year){ #parameters to graph (some are already implicit in the iterate parameters) + #Make the graphs of the data making the next combinations + for(var in names(variablesString)){ + #indicate the units of the variable + varUnit <-variablesString[var] #get the units from the names vector + for(res in residues){ + for(aux in auxs){ + ##Filter the table as DESIRED + #The following is a harcoded way to generate different filterd tables, + #Fro future development this can be converted to a loop or a swith menu. + wLFiltered <- wLTable[wLTable$irr %in% sprintf("%saux",aux) & wLTable$res %in% sprintf("%s%%",res),] #one way to filter, just keeping the plots/samplings of the 2 auxiliary irrigation scheme + #Summarize the reps 1,2,3 to get just the mean value, of columns wlayer and mositure (put together with the cbind function) + # Use for the graphs, dont summarize the final tables + tableSum <- aggregate(cbind(wlayer, moisture) ~ idSum+depth+date+irr+till+res, data=wLFiltered, FUN=mean) + #Formate the date column to format the axis labels in ggplot + tableSum$date <- as.POSIXct(tableSum$date) + + #Select variable name + variableCol <-variables[var] + + #Graph the data + graphFunc(df,df[variableCol],dateCol,idCol,depthCol,aux,res,trial,var,year,varUnit) + #Next just to check the loop + #print(sprintf("Variable is %s in %s, %s%% residue and %saux - varCol %s",var,varUnit,res,aux,variableCol)) + #print(paste(aux,res,trial,var,year,varUnit)) + } + } + } +} diff --git a/r/ongoning.R b/r/ongoning.R new file mode 100644 index 0000000..d91d478 --- /dev/null +++ b/r/ongoning.R @@ -0,0 +1,24 @@ + +### GREENSEEKSER(GS) ### +#This method will generate how the data will be ordered based on a matrix size and direction. +#way the sampling was done +#Skips the unwanted readings #: no_go +#Serpentine (serp): Indicate starting corner and it will be generated acordingly. It always runs in the North -south direction: + #Possible values: + #sw,se,no,ne +##################################################################################ONGOING +make_serpentine <- function(rows,cols,serp,no_go){ + #Number of total samples + n <- 1:(rows*cols) + length(no_go) + ord <- integer(0) + #complete the order of the sampling + for (cl in 1:cols){ + #cREATE the sequence based on the first and last readings in the bed + ordColumn <- ordi[1,cl]:ordi[2,cl] + print(ordColumn) + #Remove numbers that correspond to the unwanted readings + ordColumn[which(!(ordColumn %in% no_go))] + ord <- cbind(ord,ordColumn) + } + return(ord) +} \ No newline at end of file diff --git a/r/outliers_multiple_files_dbf_files.R b/r/outliers_multiple_files_dbf_files.R new file mode 100644 index 0000000..6af2978 --- /dev/null +++ b/r/outliers_multiple_files_dbf_files.R @@ -0,0 +1,19 @@ +library(RODBC) +library(xlsx) +library(foreign) +################# EDIT######################### +setwd("C:/Dropbox/data/AD/AD_nut/data/extracted1.5mbuffervsGS") +path = "C:/Dropbox/data/AD/AD_nut/data/extracted1.5mbuffervsGS" +path +dir() +file.names <- dir(path, pattern =".dbf") +for(i in 1:length(file.names)){ + dat<- read.dbf(file.names[i]) + dat<- as.data.frame(dat) + a<-unname(quantile(dat$id, c(0.975))) ##ID field + b<-unname(quantile(dat$id, c(0.025))) + dat1<-subset(dat,dat$id<= a & dat$id >= b) + archivo <- paste("C:/Dropbox/data/AD/AD_nut/data/extracted1.5mbuffervsGS/no_outliers/",file.names[i],sep = "") + write.dbf(dat1,file=archivo) + print(i) +} \ No newline at end of file diff --git a/r/readExcel.R b/r/readExcel.R new file mode 100644 index 0000000..5398873 --- /dev/null +++ b/r/readExcel.R @@ -0,0 +1,13 @@ +#General file to read exel with data from #Bascula + +source(file.path("C:","Dropbox","Software","Scripts","r","io_methods.R", fsep = .Platform$file.sep)) + +#Set the WD +setwd(choose.dir(default = file.path("C:","Dropbox", fsep = .Platform$file.sep), caption = "Select folder")) + +#Choose the file interactively +file_options <-matrix(c("Excel","Excel","*.xls","*.xlsx"), nrow = 2,ncol = ) +f <- choose.files(filters = file_options) + +wb <- loadWorkbook(f) +alfo <- readWorksheetFromFile(wb) diff --git a/r/server.R b/r/server.R new file mode 100644 index 0000000..d3e3c4a --- /dev/null +++ b/r/server.R @@ -0,0 +1,101 @@ +shinyServer(function(input, output) { + + ### Argument names: + ArgNames <- reactive({ + Names <- names(formals(input$readFunction)[-1]) + Names <- Names[Names!="..."] + return(Names) + }) + + # Argument selector: + output$ArgSelect <- renderUI({ + if (length(ArgNames())==0) return(NULL) + + selectInput("arg","Argument:",ArgNames()) + }) + + ## Arg text field: + output$ArgText <- renderUI({ + fun__arg <- paste0(input$readFunction,"__",input$arg) + + if (is.null(input$arg)) return(NULL) + + Defaults <- formals(input$readFunction) + + if (is.null(input[[fun__arg]])) + { + textInput(fun__arg, label = "Enter value:", value = deparse(Defaults[[input$arg]])) + } else { + textInput(fun__arg, label = "Enter value:", value = input[[fun__arg]]) + } + }) + + + ### Data import: + Dataset <- reactive({ + if (is.null(input$file)) { + # User has not uploaded a file yet + return(data.frame()) + } + + args <- grep(paste0("^",input$readFunction,"__"), names(input), value = TRUE) + + argList <- list() + for (i in seq_along(args)) + { + argList[[i]] <- eval(parse(text=input[[args[i]]])) + } + names(argList) <- gsub(paste0("^",input$readFunction,"__"),"",args) + + argList <- argList[names(argList) %in% ArgNames()] + + Dataset <- as.data.frame(do.call(input$readFunction,c(list(input$file$datapath),argList))) + return(Dataset) + }) + + # Select variables: + output$varselect <- renderUI({ + + if (identical(Dataset(), '') || identical(Dataset(),data.frame())) return(NULL) + + # Variable selection: + selectInput("vars", "Variables to use:", + names(Dataset()), names(Dataset()), multiple =TRUE) + }) + + # Show table: + output$table <- renderTable({ + + if (is.null(input$vars) || length(input$vars)==0) return(NULL) + + return(Dataset()[,input$vars,drop=FALSE]) + }) + + + ### Download dump: + + output$downloadDump <- downloadHandler( + filename = "Rdata.R", + content = function(con) { + + assign(input$name, Dataset()[,input$vars,drop=FALSE]) + + dump(input$name, con) + } + ) + + ### Download save: + + output$downloadSave <- downloadHandler( + filename = "Rdata.RData", + content = function(con) { + + assign(input$name, Dataset()[,input$vars,drop=FALSE]) + + save(list=input$name, file=con) + } + ) + +}) + + diff --git a/r/shiny_exampleApp/data/counties.rds b/r/shiny_exampleApp/data/counties.rds new file mode 100644 index 0000000000000000000000000000000000000000..8ac7abe3181fb9225858f105af93f6185b45466b GIT binary patch literal 60810 zcmV)PK()UgiwFP!000001B|^1oLp6vKi);y$F{7f6yN)Oz1`tD710f_NECH0xLLd+zB!Fz{|Gsy= z-*fLhuj=QY50%&N-0j?R&pG$pbI-l+iv7E~y7uTA*OlwqW1RbQ+*J3^-tO1k)ir+q zu06ZWwVCRIe>Al`_=~mMhI#rZ0ViwZ3L? z#G=wyDb^R4Y!4lDG}B(C)Z408OPLyKix#!PqE>N8X9&_)tCsp&g8)zP;97%>8%{ zl&b^2D;|@2soEISzWB-=wTFsT+nN4iC4;nsRf-K;L4T=daj}va+frqyRxepBN{v1@ zFy&$c#5figKP-GEl0PmSn0PsFzCB%wP@r{wYBROV#?Q z#ldk`qYY<#yx6z6ppns2uDE~5yi+`|)nBRyr0(`9BW}F<2tPpK$~4+! zr94zhFwAgMr8ZLSFEuPCL&d&qcZQ1njT9MS%*vY?2rwY`xZN9w?jT$UYwz`t z#ia~ijT9S$krwdz%ay*`RkpWIi#Ni|_43uVs?+Ema8?T zI^YB4O3_w4P%k?DY->mb)ib!l6K?CP4QFZ@stp#Glq|GbTvGga28-eHP*HhDVbx+q zNe5t~SZx-2`s%H#ZNEod#lyw2t$DOHu{SqUL09et21G0kWhAWiPMN#g7(#GjqF%O z)1A-kRO(Xt>ezH1nhxtTlTY!*!=JGIb5Qd0B}$UBP8X$KjNieWeUm<*R)W--md{^k~^B zGbm9TthOsrDaMAug6S+dZurcnxBOx1<-13 zakd3Jt9p1ae+J-k#ap=30&t^|{69Qg&K3!0(WxOgo<@C%#6;@P%2~BE(hSTQf@>`| z1(ch`3?0IW*JmGgW^|=I>}?KB@N;jFyXNK{H;&odwMtgi4A+LU6drbZpk8hRZ#mIj zT+TFU=6g>uH?t=~*;mf$fkx4BN|wtTPD^HGuTd)2`?C6~QR*!=n&mdE(S z@m9;uaB$XcNttYNlrrpT86`MbsgVrbL4sTMDMr%*xck%1{&iK*VP(l|qPEh^D52V{ zyXn2wP?iqs>@QV%s`8Ty+!p>LoJ^W`GHEQs`L-wgKn~`Rr;H4lFCC) zw90CjObU~#qqR0*X8=~)w7u93aidN4N^xSu1uS5Iu%%J*SzC^Qr(+iK~l9i z+>T`XKmAiv_{dHG((9c*f!A#d8t~~ z#95iddezOwo~YAIhW>I%7kCGnG-$-WS{t@V(m!4+exjwLe2_`4w91VhxAtoccWQg6 z*erEu+Zo}BBdMsoH6xRrSfs`FG>J|4a0r}U^|Bu&I4!KzO^p)VL^4`ywJTF|R#`i4 zb(4N=s4Z^IVzu0G>;87K)JRlaJHBa_+;T}*g<*n|v2t^?T@g0{s{3VXl#rO(-aHJF zmN+JBDGfr=7_C*>X`azmuUZC9=celM7$+=4>UZ-{Hzfq_Di5zasT=f;fFPl7uvIDP zSWVEB-eO-HU`Y*O-)L{GRp~F)Gw{B_V&Hz89KcJXPGNiXuL%`5tvi+~l@@0!b5rui zYmIDWZjy1*dR4!HeGxZOY6Eh%#OtPBk&(_kaRs$>A zCpa6X5%|u6gjT7(s94P+YL*}#Zk8Y(rNw2p{!uCN&}NTYJ_l|-O^Rk$5A1PsLNm(> zPDaZ^I*d~Tcrxdf{bUgoiB>Hh({N$p(HSZ=vaJp|6RaLs7z(c~T2yRisFO~aR|js6 zD8((EvkVkD>pYG%$KSOq)ajhj4Cce$-QXKE>kHrDaJjj-T+Q@!*om6o1qiaYO1+g@ zhU{)t*3;`$dSCmbls`)u{Oh$=Gt2yq;y^2KpM?o-;%pVGnI_U1u{_W!RkCGD{R1Oq z-4pR0X|#rh%FPV8SqfH?zJ-k8@5w#l<X1TA`JZ6zwbcK>VElhL^ zmuBFAnGvSBrFGw6STd@1sNCQ0tjy9??GoJrwI}iSRom5@B)TNh+Fl$nYpjoQ(M$S&sLWB zlNLELm;2M@lAG&vP9wOt=v})9c%XXt6y(M#AowH?cb02AaOl!eaO@_WtY9~sm6~6I zP1J;Pv#wUmc!hd@ps(4H-!E~y190f_(<=IlDq~tjf2pTYQyW())L*_z*Zv;ZTB5p5 z8#DV(TJfSvG680Av;H~42a5d-??6-{x%sSbu8Qg&)8 z^o=QT%$Asf&E%>H){QsbC+HlieD582K3hra3}8z#{8uR_)=UO$oO2#rb*qvL#Uqzp z2yK?L(9kKT(5hQt7rBa6_bsnj=E>&@aCEljmzwMJj5 zrsk+tGhD0;xmBXmKvs~Pt)~;A@>t@&3EbjJ_`qeScnr6iRlm(cXrtMaI(FN@E3H12 zXGKt!b9KLX@Fm>h!KsBTyyPsLS|vl5Xg|*9ZjBV(gpkSIERI&xBc((MeQiqGC5gW& zt6WBki(7sHFwuhpL7(EGc6t~nIV&o0jSUZ1ylcK&!HLBan4pCB2K&1K(9b24JTMI4 z2=Z1J>q@}`>u%m?18pi)F>`CNoOM0{U=E2Qimsfk8 zPQqGsfn74u!$um}Vd*cq zacpJAJPwr6#`DMW~!6n6NMsv88c(t6NQ9Si)4Ne=5_Gj|e>W$InpdCFM2Bh$C4^^Sg zM)NCets@~@pAR;h;NhdyY!!}GvZ~ds3i~ruj<#TZYfjr%{f3uPf3TRus(I><_X$}Y zF_^4R72|FXc1!w3w%-n3*G;XUVjWcN$Y80M6@@4!N`X;Kl;$nhN3sJQTZI!nxH0Sl zR}|{_u&2Mcq?}<;Yeo9{OVwl^%z&f4;|U&IEoI~+jLn+pfz@(WZ&!-Rjv8w?K*2ti zPeHNO>A|7s*0t-5z3`8Hclya%$A zTD0A*&?JPZl)rX((g?(rR{KFPAhHWsI-Y5oa}5_ehBu?hu#^>k2OseY&f^l={|aroIa%YKrUcM((P!P5e3I)-sh_W-z+c6^u?KQL%kVI=8SQ_uu@>Xl!Q)a#=Ys* z{ll4hlfbPkjYi4?1DV#swU7r6w^1Nbm|_U^LO9+->lrR`FdxV;#Y3$-)2ED9Ga7lM z)EjKDc(5~)y|(gIgpm*-Fmzvf1jD$>5W2XOnaUDq+m+i$t*%zier`=Tm~N(Vu2F#Q zu1ye-Td!5UK`;rxWWy?Oq%g0uN_?O-fsyGq9>7Y`M{1z)-kJ~mWVXbas;WMKElK78 z5`^$pwZEteos|Xw9ss$el$Qd6s-vD_gw@Nvx-qL68-6Ly`hwWSZh{ z11t(ksZND z0w02hM@#1b-s%}H4rIrv)IU(HXL6VNlP#4jjqS49moV#J5BL4`gs|HYJ|SG{`uqb) z%~WIdB)Wrya0xmofG3eg87d^Z718#3m{QNSTdvnW(W;fRgA%VL zCk60uG3mi}%^0NA8!GpnuRdN&7oVj@o2KLSq{0^$eK=zXTwL_7G+&Eb0Q48z2Ah7tt8o<`BntYJbN`s@=F58u&BIXNZPXeXax9DygLTV2+w!8TEMkP^8F0=S!D zv(<;o&dCw9u z?U->#s|RBOr4R{ z)UDvy64LB;wj#KcoWZVVFg6<#9vs_D3YOp&OVIvSub-T?l2T=H;8a$ywQ~p#{QTPB zqU1Dqv7G6>b@VGda`Y2AQ0@&UYC?mPQa)?sr6<&wJ(D~ZPEtE4=4hNgK9vB!4S~{=_w4HP$ z>Y3s-Z$#@j7>~3Ehp`}p8bd*I*UQ6xU9OnbTa7`>YiTq|qcl8dkqhT^tv8y|6=f$f z)xN+i(5eHP`OM8ytGATls7A|8W=o2hiK*dMomWR|Rppgtd3e|<tB+39(r4KHO;ktF(d*@LJ7H~Jdk0f$hZigfo(A~r0h?npnQ1UiJ%y}eFzJUko^Et zlR&WREAA%uk{4w{Ya8)+aq zf4x6Iers52i%psdfJKJOBmf&dL$$Ks{*}Ji1D%CA6)fTrFM+Kcp z(rD@CilFKpBZ8_MqZqA9tyR`wENQIL>Qk0PsZoPtY={sx=qANjz$43K0zsi!B26Yb zyb))MH_}mEty-%VEy$ZFlL)f*NeWIb7-^Ob_tkpCa6JJSd2SyS=}x=nvN?*IUTy{Sy*x0e`jOY21Z(w4gvHKa1visx zWxPP>%_#L=KaF}|u<+AcQCf9BffIvp<*vn}sa3B%DXK*<*~5~n&px4NGbU+5e2tg~ zhvx^i>R|PMK=$GkpRLyFH>jo&k)yVm+K|)jdbG&r4UZMJzYc}Oil@zPLd|5zO8RTn z^6+5MQrsLW1T@|Y*`H7q=6*A^wLIci84Iz-yvtHP!RO2Mu(VYMZe zfYG%?<2}&N(;hZzdYw$(!B%2;6H6jM22V3#Pf&1uIK%7?xTIv8OQsV)18B8LDCtmU zoZ=~$xMi*?Q+VjCYf}KEOk5`{A~RW*f~AWvFj>upLq28(TauoUYl_P{~IMD=cs!Xz_R&r_#wx(TYPY zh~x}_Sw5`{ky~nrW_H8gBJg%6&Fxxz9FJF9*&C!h-V!TGaa^ zCVEhCZydWHZB($vXwyM2gNe?0YWY%Ne6y+KGRG`YoduH|C$TCZ0cVA>;aG6cR?sXi zYBOOZ7Z+sbTxVG<@$q+xZgRhXRbz2z8-aCy`2nNzgFIU4VMk{Tqs27t6R@KcOUUJC!;EL&CN@7qrh8$>9 zUE(ndB*4Q1>&z3fFFC9fYRe#@QuBAjg$YB$z3ofXo$1l0hvrmH2oFr?0POvro*bFz z8J`kH&xFv?EGChYWU7bTOYDNAOi+v_#oI)l5T$-M*|cNM#5Sw78Jkjir9~#Yxu?~` zD@j1_K!y;Zlf+|Vqg;GK6y>5|6Xnt!B-HDnzEpU4TV4oV;&03d!K0z7@bFTpO_K>! zqiH?dM9Kv4z!4LHE5&S2jgMwRn9$5HU?$uqOsQviE%EO8xgmhphJ%w89&T>Y@Ni>L zhAE9kaj4uzEyZ@FC&c3D=1UK*daj%hLa)kXb+XnfW$I1OZ)7!s4W97{r8aex8kKUk zE0t1W&SkYk7+x9VjttkS0o+FB_@wZL4-Xw}L-3)#zDQY5j#7fv(4-(Ch}ZFW#@?); zp5j0)32w{Q6Gi5P;Lui%@&`w#18_SA4o&L-$5OStsLen{0XqRIZlH>lMQ!p&kvt*T zMDhel!KPkNqBZDj0jG@zG9{{|N;`5^%gM1ke}qpHf?YpfNv#rITH(PXrR;drMjDki zvs7|;jlkTlYUEn_>| z=Z=kPg@$fDUrD1pG~90Xi}wS4HSvjX53coR=bC1{JTQ={*+GYT+jKHIRj$xDuqOa# zOkSTf+D6I7F2DdDZL0;f)Vy>|4xmwxPIu}Zmx!D`rzF%x7Qn+uodDeEb880Q;b~!# zTRRLlgMH2*ZAmS;ZqnaL;gfnxiCQ1ideWQ8;r~Xq##%j@<{Mee%}u}4eadj9_=#3x$ZLHwgT$I!sFZq=@ZD0I zUe}AmWq*b>=s>;HAKfAoU}Azq1Kwy9dp(l{Buv;_?zwE6mR_IG4hfg$W`>gT^pq&+ z<3)b~&O752XSMb;2TM+oGklGDTkUYjAMUaL9z)e|h;0?sVRCkosi z9TRB0Qbg9p$!=0_Nw+Nl4NeOPBvvlt1z5W(+#wN|vutX;4S&D?WPr=b{%>-bYa`Cz zC=L{pQ&D{}UX8>YZfH2f0RkOylVB~TL3W!`;G;EvyI;b~36)ZNVZbx*bf4g;&{Ire zA$09FMH73Am1a5o){LgONqLFCykc?ycRUfSM#F@FTPAvVsjpng=8n~h!uxB<+z_y> z$90iYd!-$xAEMR78QgZ2kU#TZOf$A+QO?G;} zRP9N~-^frATBuDz%p4x)=%lqrFDw5(soYl^D(fv&o{%Gs#vzGkX4#>q&)QZpCib@$hddD`m4Z70XT(WHCzuA4 zlX~9eH#3_UB5RWErHUrGT1?G*9WB$co1zx^SPX--iRdsz8?8k_QPZp)zez)hyWR=E zQv!WHj%8v19`Gxe0GeuyHkAzfSv>$(lLc57>{eO+7?6UK%clpjm?RE*-5m;`quB~d z)vLXuC;*4oUl&S(1h>?V~>vwHt_jN#b!Hb5P#>9Nxu2z_lg2|r5N087Qkx*rC!|x zoay07C~{9T@dei#ZK|sm-Kw;i=|p;iVt5I$Pf1S8wd==V%P$B0;K#Qwd2p>-&W=mD z=5OZn3{kGP8I-cKnM=Vf)S6(txC&pK+|*sXx>n0nbHHY9JT4B0^hwG(=8_u3!m(b&st^$UJ+Ti4@<+5jaPdsyi zaY~pFon8p5s+KFtmwt>IeS@`H#i`mw%?$H9E5LQ8(M}yEUyutf|5Uh*LG&q!Rn`my zcw&$eI2k>(6fQR$JTV$;&Ehe|@M`W!0lez3jR>;4)lTq5yAWP++F65Wq7va&X#g(| z^n@SGnHD5f+~Agqe)%2X6-EqB_Tawg3dZgzA^1>K2=|vR1kiY{ogAe!d`M4Pm z7DCMhCSeJ`77a@{X0L_OXaTK~ZxZy31XnEir2gV!f5&P-r|{mw$ssrl3JjW9l-$-* zY*m_BqAYT=Xt06{Q|hHsaFQ`-C%HsruvN<975Wu}ng)}lv_E1V)D+)l7bdiNdyDN@ zx}4le+lCX%&0?dk&Cr^gk$u8qrwaY@erlA^UmmULRV`teax>UNnI0r07k(z_67} zvkeRt2i=SqDkz^4Z7Fs~Da~@bHcBP0TLQ^Q@2l%^Bx=(^iMp$`QD8&Cg*0I!;YD;o zMb&b05qfCCYD#k4uh9-3#B2qWtyPAc4bq?OM-r`6?`am*SrMcS%el_TBGokS44E22 zhocY6h6RG#oyCD>IA2$TfXg&(>M+Gvz}{m$Ctu#F^Sw#`^4MrEZ9E#e5f5T}vgRyYq1 zHY0$2p-Xallw^+O#pR+em&fJI?&1`a=uh=^o0QSEE!B#H{$p2hWwqgQaj-28<}>9{ zjqyfil;liIXPP%X`vpm{3oSxK{F`l4!b5jcO-j{YzZWINzWQl#QhXaglvb|xx8=a- zTMH4L23teJgZ0vA+r(ty_lcI5(g=}qvalKIZHs?q?H?uuNAaT8>}Kja+9t-g_eNQQ zb9zyei%UZtn#_FYHBR)m_RfeC%vaT?#i>!KS6pQ&@=b&ZZCRvJN^b9OpA^S;MM=@U zzEM)V-#aBv3gW7!nUv5Dic5tqfEgww-V}%sNe+V5dfN(hbY($YsCHG$e~uy=$=c#( zxwp48*tW*xIJRojnNdn|g?Y43JULGGuGmOd1<^_osfH7OLbKM_HqEg`v)pJqF7eH| z5%P)FDYq4OV>JW`gNcr9OZPY=DXuOE){hec8!aMwqg8eM>5bF_!^HG!^Mh%uKwEX+ zEViHel3NQ@r_YE}9M2^2zO}aHTFwA2w!=T%NsdM&xgWL@V@I)3GvbuYc2bl&+Fsqq zJIxUt?S-vzIhWE5mt#I@v{|%tyM2aM++u-Xf^!2xCh5aCcAw? ztH18=(ebs1TNjf;XtXL&aI@6NW)AI}DIT1BW`xT6>Q_H z!i40of3{cA=Qw5t;NeowKskvIFNJ<(O^!|ggz(@3lmM*y!uL45Z6QF^34OU8=`!a9 zd`fs;AcT%)@s2N5@Nj>dcF>txZMYqc&DStAA^aj&01R$t=nlZqjZ_{UfBYhVSDV?) z@ui#|-U=-|k9j-OFHIOozV1+MhyH+Tw~Z{s7i0$D@PbSQ8)MIpToh>Uq0V0SN5?%4 zocY(xG#PF1N8sRmnSz78AK#w2E;E3K*JXOJy%Nf&#HT+M9t5KJ%#~tarPN=_RNvN^ zLrP?lc``a?Ju{ZW@4DNQIzqCQ4fwT zk@Vp3iwV;Luud3R^lMeOI#nGuDNG2$*h8=hV-J$TFm?qe-#c`@u9vfH7#V?{M%7w> zTV-6U2YW}J(9x+<54}40^ru3HOGD)#aA{(Y&~8#2cAQquj>_<0siG%NJ?n(g?H*Vu z1~=Dvu=joWj++ZI19))lmB+arTtz)OfJV1rjSmvCy2mXFoz>i*?P7FymLJSa9OUFE zDcGKx7AB;h0I!wX77D#(GcpNb{7smeL>nd7!A~^Eonb<)83ovd3E6qY znPSyy8=;KO2ZUX$_4gO+ZEA0}vuVr~U_N`Z=r1n_prxyd+0l!FBt1Aj3J`$pQGg&R z+NC2jz752~Ytdd9p`o{JN}@mzZSSxgEEWCE2vf=fJ%iqtHc{c>w*-7W^;)q%-oZjj zUokkV8bZT>A%!;jfFPKg}eE-9IRUicDkWd?TIe9_hp<=d(Y;0f`f1N zO(x751=BR4)$i7$J-x+-zixwRfm?s3!jieXCke6%&00mtd@jj@<4q)hhx+s9XB^3&Ip!FDATDw&<8(d&NHqX?7YqFibU}QR;1F*svi7 z-EH;eIs%oUMmY)1?dh$JWKxn7#-Ucw5onB*O3maW-2Tc6CWW7T@W5K|DIo>cOT|X3 zo)O(hP?QQIPD0}eh6%}5_Ei=`*@XyahlATB^;DBsvZ}J)#A>Oxo&;7!TNIN$wAw6H z{MOnepWt-1zs*;{$@gGNZNQ-t_HBmi^CZRTdSm%7Rvx@<=d{w)=!4%aUK%+~WJUm?CD%3<~1PSqyJ4|pK zUvAU=MXh?(A8=LhfL{Vk3V`+CGut6Jnge}8ExbU`gTo_c0W`d-$zu|@8Yc(9_%i4q zAvmf(F#wPHT@DXTuKEeTGwD-;wSNGtEp9`>_>O1=XV&dLC0e(8czSP>H%SAycQH>1 zprgf}VSk}eP)~WNH~5@|hkL((uf|a;IpXU>CVWaf$$NNs;5~rqJqx~advBAkJT?jf zcqzQYHh?Gb9+j+&Rg1x;(;gb$wB)&_+Ui?e3$AU{gj%zftt7e~$z$R;I{dPwhlgv} z033cuFaSrZSP%BA*r^IkLNbyI{B>3ilFG^IF}NnjR~1BA_-3P(+{6G}AI@r-MzIxI z57T`@vW#o=^j6$Vl5HZq6)C7JHaWVZgrPPf8{Y639vr-K(zC=_9Lc&W*|-gs>)lKlOpdvFX&6s< zV8KrWES^^m0JK!`x4;wB7)tDJ-C3VNxUudrKg9TJ|^ zis}pR6%4zShU$kL2KaDtluO4VEa9}ie(W%8-5d!FTW_=i!i9B(+rnXi$Q71SdZ=_& zxi9&)r86)qWq*0@cuv_uQ}eYwaNa8RxFnQ*UPn@WG7DJRYHncM@EQQ z;^s*1J{!SaC8!Tq9(Y7e)XzMEe`6xNIFfyeMy*P zz1Z^J&q+brXlo$i76IEEm%D?c(ojp;dvXYOw)sFUTOdBC=;5`BQ{?4hn}mAk?C}Za zg91T9E4lNl5!m@iD0vT@Ctf&3_&V$jDLx^*_Re=JKJn>thWSaOUl35aP^ zUA))l``Jh;%MOM49*>7d$IpZM%`TlLG|RpdK6|q^G#szOkCM~(t%dHjkVuDO^y;&}GN~{#Ub#MF9TW?hx!7a;~hFjI- z>~ANW-Lk^(Zke>cViIE4>NE%@ip^pjhpc51lig1>p=V^08$r$4)Mjx+&7(}}V6hpl z*=%a`t%D5GgTV!TcIX3Vx*dhSN@A6HWs_+(ouyliPR%AKTG;F?n`jqmhh#E1b1}L1 z;^g#3QN87CJ=l&W5p&ThFq_WeF#EjnU>{2bAq?B_?^G7)<-NKLdf1$`lMgz+h2MmPFy{uWaGK{;?Pjw91vp z@en5ux^<&p>}6ByRev{6Hgz;Ot!A;dm+@M}oNzV6Z=BoY+Tv2Dq|yFPqgPI@8S1DE z;;=xAP`YQ(dHAAJ944*OQAt!v)tbf^S$yKvro|_T(hD@3#V3r_vlYj7ro|~bBzlld zEICW4R879C*9ouq>kU=~WsKGg;2yPfx`#`FiIFK?s(+$Y9`bf_wsgI-kumJA zlFuXsw-A{m6LFVGjtyl?jpRPt;Bv`Ks&R%|4hV0y%@l4moo4udXskvtJSbujH*s;6 zlF8miWwc{r&EH^Uac%^@uT0vApCsR5(wdIajnRs;yUU%dkmjhfoIA>SbV$UcEeQ-; zJNP3$6v=ipGS%$>WDItT?uav~TEVKvrjAxSwp*?&?l=WTAE>a2qs9Kk9cSIqgbIG8 zl_pBaK@?XqHA+ctLMwGh3cqGPJx)r$+^w#F8F8XBsLE9zdS_~_jRXg&;-tW^o^Der zrSgDxUWbW6gvfN0u*6O4K8`3#Om3eF_TS>9CH`~gaa;W@4Ka@s0yl14St+?Fragfd z)xxVSqoj7xdk4lj()+5Mf>_*WOU%%LJk_L>2RaPhU=lPPoZ^WKE-v?b?H!Z4QtTP3 zwSw)aC^6W^pBAMI^@Rr|rkk|Hd#CfDO$(;4Y8S!kzp$DY{I-COLT>YD+G2Z-PmTBLHJGlNd%H zJ`krhipj=Xvu&j|?k`RZHr!205a(u6ntsc9s!0iMPB2(BTg}E$2VQ8_MyefnAsy^W zTRcXJl}39#6vgI53Bh-cWBig>i?UbE`zM$EN6H$I;2!ny0%?RpHj%JqvDZhg9w1O> zNB9pk2`Jg9FJE1XYV0jlf)CP4yJ1wH)E0j^F$I}BQw5gTpT+V(HL5N;&IU-S9<+)I zBe(q|fx%_(FNOrTkz8}&V^Rca&anxwHCi0>4nD!CKl~`VKuU|sfi*#3Hu@RUuPrXh>ay(qyxqcsG6Yz5tWYFxQhi{GtlOwU3leuI(G~S6fRf zOG3RVp!mbV0NES40Uk9<#7s^?y1>&VLxZp6DcdZrq_@FD2idzlw6ZAqKbyPh?*g2p zP&sInsU*1}(66e4>`{Qb2iHgaZjVC4Pkc-cpw;A4Ce=*c(b=OQf9xCY4iduacY*@t zp=7>PyT~UPclZRKQqus1pq}^>zyYG^C4brOIvqC923pdOJqJ~U;p@IhGYd`(5=MM1 zu|mVo`}#_31b3LQq@2auEo1t#b%%?a5bCdx^%c9RYp9kT(CAaU-2piIuC9l-2K?tV ze0Fn@j)$9R$`io2SI29@Vt>1mhdDuARBi-c6$_I5_jElz$;q*yHe**Q^@KOo1O?*I zYYz`YuLJ0kY!yR&$>Gr~4II4X)OI;b1GBXAtqv7GUdtkH?zaiE`&fHFRMGu=K`l2fxb4=$hR;mt;ESji4(9Nct(f@=+f zKwsV8605Mlz03CdOG!wE-?U@<<{%NE17bCpdP9ZH&JKoWP$m=Th!r1pM1uK-IidFG z3*qUd%AqwN@Wn|Kgl=n+IKgVcgED1Jc)5pGO~#>OWzgS$uW)EAdk4w{$eZ90B!3vrfheVSn@$*G2A1fRjakY#>IoTJ zo<@q*4i(#Df74BBy5w&+HSLY|g|TySoyo33v3+y# znTt57yl7FUVT>FyGi{Oy5XdCgbP_o*O3Uu>zayJ&r6X2Gp(kcmoZ{4T(Furq7Td}} z;GKy(JDgrW-L|t5)VbIz{Zt`bX-WPidF#5Qeq7i`mwVx^_0N)ED#!^L{D7)BUoinoRWW85T$ zbCeZsdhUa|r+R#v`eQM%`2x5t* z*i@B3o6_opOLXguDHU94Gd)Uii>cvWujvnr6Ga#I4EfLM#p%J$_GFtf+P2?)wf^`5 ze3Kf6I>t$%cRucUdiA>Zg_yL_wy1{}%Gea|);H}$o}W0a)IZenx7^Q+(vs`Z;*UO? zvpo?9lQ`CD+YuY|@@&fl@o>{jQh4bp9_W}2kr z0_UJsgNYCDj+={pVJ59qPj+70k}-_kj=3?FK&LK7+aeP9$EKTvc=Z-1M*gxGlgeli zl@p~TGle>?W|*Y-j+Yo0dkcP?Sn^i{nqs9&7~y1!m8*8D^eI)hw($4a$Ej}GA8kA2 znXm9nGs)qVFEM4JBGBJ#Hr7)@iRR!s#y_(2-&#yv#C2eY99z+==#AmrK1x{r>8dW-_HE z-_o-yh{--B_8)eK3E|1(0A4BeH`E~z7N{gKhHVPelR0-Zi}1l4;(V_J}s z@pt$%bHXa*LutC zx||&6YPMt7&`%rWPnV^t1_QnbFDDP6(Jka2o?PObZL?nUo1ardaB5`u*)vG8r5HP*dbso)*H5TXj;H=3UAGNk&S=#lcNHLBgQF4?1iD zo`iPN7@bs_n1*6lQ)z-i>!p!~%{ox3__$YQO-?cR*jfVng8Q2Zi}!q4Yw`uwnud9> z0;j|ME!6_+EtZ2zKnV-)U{+w#(6B8%TG3FY{Qy&oWq$%xCmle@ReEtPYf5}_H3O>! z*PkjZ+0HQ4)keytm;laTyt?LhjK>GihRx~5B>1Qep~+VkO18LLlQm4+fop~}Cdah= z=#N)uwbYDrnu`!7C^T@0`>e@#s;V|?xc9xk0?jb>6$5V6T#bg!m5i`yb}-!-Xjo|E zbDuBTRYU^K}*6$ zD>h>kNvf?mSf+3rOzWe;h3Et}n-#;Uef471aH_H8$1AiE>i87as`Q3x1zFQC5Dm3~ zH7sl-QeY{pR9w^(&Kn01UTGTH=?~X(6A0@W@du6xjC{o`T@FIO39AL`XExkgVn?Rr z*fLnqAY-YoSu-+QO5@9ne1`G2%vb3dE;h`lI(=t}uqgOC$#{YizeQYKytZM+FkF@O zRs5ad1l5Y6u^^y&v&Su*`(rBD>#+zeMc*dgpWw1lr2|P!xOzqit1L-Nhu3;!(t_JO z4q#gS>SByX67E)VIgLh0+@pm&UF8cKwIx^F*1_;TfX|3Tkv-wr1W(#kPQee22Bq_p6y@`0MzcE}= zv1BXWL)1-(aUg>&%E3Abg+J~uZJppD8J!yKEuxiV)f#=)b&`ii_rw8Q9_ksaDO*nR z(C{E6k%*SP2N38*7I-ZVx!thH#!8U~BgU;r~CIbf;Zj9C!qppd$;&64}gt%w9C z#xz&8YB|*LNDx-QqJAllo`&DB-CseyF+nTIVM=clE3~Ik^xMzl30>l^Acb98v36;t zWSQT5eTBfG`1|h!4>yvlgDiAOsi#(4Z2ITsFQbqv>6f2P^R3=quPlk>Xw@kFc1ta(4kgvZWb-YzJ>7w2J+%ze#vkEVUbHoK+WQSQ-np+coK42w(37R z=%=u%7k?sI?$6HqP7SNE<3Sa}73NkNLX-On2U@`@mC*QTAmQGnK`g^7f)y4h=E(x9 z7W--g{k6V9E2~wL7nMp6X*+1NQ)xxDEcBty5MXdqFhQMftX;K8V6F_3uj}-01S#MRV z{u5h7wAC;KY7~3Rq4!B()t>Yg*=9L(YB0%7WWh*I@d?AlrW3-lS=l8iu9afU5skjV zN~s+98Hi7KB!Z0&x~a1i-Y3S)p@V9I!h#Te3~spc02G~jAk+W%$5T`&Dn)(7l8{_h z9~EI1UEIowO69W3r*vbv&e+8zQDSnfT$UpB4I|2Rn^0~sQOIrXGq=s|_xEqVzxU7k z_1^1s&htE;uXEl<22Qpc?ZG>SzWmKffoQzzJ386*`}G3z#g>7i*L!}xet%@g>(zC} z`u0=On!5-8Ut?&_B55 z*vlJrp1ytfpl*utDtz6|J)g|4rSf#&O~gg#E8qV1r|?t3fB)#TXM}#fP@T5hdgq?o z8CzhTSC!(<51&tl)T&2)thF}&-f=_d7^rfVmawkxNE5W<=+kC5L}<0MF){C_sudq3~KWtQCyVd{u{c4wm6)$!0`rwwv1{>d+2ZB$TX0crJOP{Xo zeU48!xAVfv{|Y_7JMUu>oFvaC%tF`g`&RU9&GZAs=I|tDw`7C%qtcVtJD)G;d@`-v z`LijbXKz~eL&h2C(FIQzRykZrfsU6`*QJoE&-9%$SD{|)&%2xAH1dySZ8!vc%xHV? z_VWCmS7R#6dX5UWu>^0@XL0M+jk1#$K;w&7SY3%7T%DX`Sa7VeX6a*Ob|FDF@;Q&s`}z zwCkKILWODEhyC^XQ9b|T7|TxMoT~>~W$J^LD*h+IRsWxHm-CNEyQ1@J{w#YWywCa+ z_kCBKuI-thS3N5B`j zZb*`ULODLG?~eKm3$ZO-@IK?!`dH}i1plF&{aE$h*j>{Byv>LI8j=ie{VV*?mt|9> zefri$(^r+@(Bykrw@pudX5CL%H*@87-K^gpuLNb?gKu3QO>Shbdi~GvcB%U3^7elB zyZ>M+1f3olljX3QruE!Ek1hN6#eDy3AeXwO-}sXNJIG5igVCIJADI65LS&mty#MA( z%G*2)^OpB)@jCs-+2>Ner5?UA;k^sqq}$SJ=CL8_<8^^fy2ta$cYFSQB}s15ciVXv z7Icy7!omc=vha2h+pAX3op(E6B1;a6Uc$crbnkP%UI#1k_3<5gcz)a0IMEEo&D8zN z(e>}L^@y{1^uR>mDi{JFl{>Ykq$9ui4C*Pl-DS4pVu;GSPx-E2pae2!csgyi7 z_1fxB-v8c0Vl*1RpM!ra-8rF~?wUIM@csGJJr*aAiZ76yYgXr*ZvCS%a>w$BU{XAi zapA?}lf`utwRN@rd>SY<^DV>VgN3Z^v$(=OQ`z7E`R!Tpc&_~QKXHz61~_Cr{l(D{ zEAsBYrCWz=@tJvlbiNdnw~jtCQR!pZfz^VwiI$192ZN7=ncJ0ycl+s&9&cX{!EJOu zgl8lhy5wZHB8rv&R||RiXkBIL;;sbn?0@Fz0n}9KyLOAl-~TfCekoAY-WJ_sOx#wj z>AsPD25T{5b(7Y|Zgm&O^h$*RhYjobp&1W%j#v>#igJQ!@wh^J00W4f4tgRtdggfY51tRh+vWbkIB*Q^SGl2 z&bc8*A86+VHS9dQ@5zB<2FZ?Y3(qvSf2c1(Jc_t@_3xu9Vv`Hyx{jx1eNI#RQ?DCE zKR0I%EM09i>MncuzfXpue{KKeD(|T~?r@@hl)G4Xckjsjr#}Uz+vqW{Mzqwh_n$Pc zfRK=8T*iKn-D;QoY&=r$2UQ-wG&uUoX@{-Fo;vNfS$FQavUa`Q_Z_Wt?BV@lo4UHa z!pJ+P?|Iyb>Bo&8&Hb5&iT)du?-{%?uF0|MZb-;AX5j0>4}FClV_yM=y^ z{GaPqG9mauxeie+CU{4}qkl37y|-MsIS_Px_km;I4~Wy>y$W%|l~bVk>F3Ks%#$43 zE%c2Y%u4z5(n9Bh*?^XWp`Q8A>h+O~kki~tc_RyL*}otn7e_(Gz^bq&LhJsppy#@_o*NAr%P zZ5+Cr+y4HGSR2{DdFp+NsdfjTIW2usY~~cSE0T@zuoWenz(((Q)-zIWZrNw zpxcY+XONgKxSveohPHMxocfQLzpMbI^@KZ?(J%Fj>vjdfaGy#&m%G#a!$Z9KQXi31n&a#`Vp~@--k5z;DKt1L zbgN2wt#!sRp0p0^a$f~BwR!Qn@Baq>NeDU{UKQ{>hhk=M_xrV5uD-$Vf-+7_Ya3tQ zbVxoH6dPZ#?U=z4x4bXgNpC{kUS=u(@9R6qf45(0)vbG546Cs{kZo4c_-&lz=xJl1 z!kRs#nrgLqYHH|Ig7N+GJ0Wit5Wlw^ywGU-(C$X@RR5#;o*QQgk2en+B_DpZ*Qr(V zxpib|j(lA2lgaj-L1+8M5Zh~f1Uc6>^QQJHuw|p|>aR~)@zSl%kIj##PP;tH`8QV6 zc%F;ORKj_-WvvDeu& z_1kIJz+I>KXFnY7sd|#z*Lkt4Qj?jIQn#LW+}*fmFeI#8}j-l z*e9uPprL>$$UB)jy#WKHj9{#);D zowqX8pIA%{Ho72m`S^RU>BiE?m;GC|TvvIYH~)3@F>lPX?!O~@RaXXC4`$r+UtW^r zZ=L+N(SMbITeb6Upfsw*5F!!mpHT8~f&-{N^o$rS7qGEIC4P*sQ(lt@W(IwDYXBoG z;36A>alH)?u8O=0`;lAD=w9Td$TU7lse zY;;4`yyW*%Cq;rbqe#F{O2$&-sk%5r>KD9=gn~K0h?2T|1o)t?upZKSxTL0uf~7?; z!X(T@%Ot(1J7RK!rO010=*tikWE92>fd>TM9_jqmvlQ!P501|JKZn@zJw-zZledMs z1CeUg9_a#S`876()lMvCQlRfmFcTuLj|f>kd+$i5Qv`cnQOt;du_$ zAVVIp&K9F>X*)YTi*F%+`C=;V@hTpZ5E^YTy-}{L=y^;Aj*=}f)dkuwY?h-d%~`29C3|=-{T;%MycOwgN0BT? zFgV`_4#@ttmq;6)Gy&p`os|0*3N_DXhaxb66|;^06HJr`8(7t1`+A>(%Fh?#&t=kw zf13@^F<>|Hd7l!vpgdhXgt^FGi9XAUUcMa%ELyuzRk28UViS$BMQD*L)}Ponhx9k0 z9)s!#N33RL46PFBSAu&z9BNL@2Fyjl!1{%VoMvlzfj!gru^5&ay;``BiB}?QW#$TW zXeNwWW;R*pj+5mO#$ytOKEo!V>bR1Mg1cZ7D%2OeQZ92~VLd09iTMu;z;lXuIinWK zjc(k*iU?1j{7rW&^c+ncdC0dMH~L4kN@!g$+C9{W>xI^!GB)CUufEAv)-_e2rSn z)B^344nYotqrX_LoVPVSPbH%L7b$=@qx$d?+p0tcav>2x=1~M$V@*OLBhU>u2&6P~ ztfjE{t5c7eYH}(G6Ql+WnwB#-`9zHIdFZtIXuqKKD<#9B(PyBa9)sMB9`y1AOhHm_ zSCGJ+0o0zx;tqSW(9ubKHwQb}XnLS0=8DaKzobWHNT!D*7q_;Or7x2Br(^ZFl1s51 zD$`7;_c!dEcuW9#tO3TY*meq@&H998{RUR&#~Bg`Je!YW??PEJGowu?BAOEoThxt% zD_%S?o&HQ8C10>&OTQE6P~+CKqS4Hf!c+8#*JSu;LiG4sD2gWU+)0xf5_X|AWSCimF8!z&B{v;kir*d)A znfrB+=<_2d#65X)s8y2zx&!E(sG^eY>iwSj&eHB6CX$AJBp#a?{TELr`7Im`UU^vb zfLF^1qpj9pM>G?kwyTlxa0`(@%6yf_cT%Ox##ri#I$$4sd*n!VV2;5Y^9A zlwwaU)NwM0N|=FrE7t}bV?&3>zLWKsK9rkef(;PRqR zL{>2o<=*cNHKdxncNJ?d6p`+{kD7zyawj2lKIlDj$)}%Ek!m{5rWS%_{v^l6dQ2e~ z+0~ddKrhM@>};rz75}CfmV+tlXZU^N8Mwu*Z*$)l9F$QZuX3mq>C0Ih$_M6xC~4Jx zg;Z{VOB#TMu;sx z4S)30%l_PR7Yz+=#(XWzZQMoq++^V>$ z3D_1n_Z8J4cwJM?F=7BqsbAJZw{xSfj*QL(RXw=!bnn~{$#hP?&0em%eOTI^wgx z0PE&&4M<%U8?SNCPgO#n>5q#kp4ibO6@?5mnH!3Cz~x&q1#hK>KFatnplqoo@dX?9 z(}U2pNt0kA0!88Nan^?ArF{{_9aZ7)%zy!0I-O6+6%PXE7Gsnn1%3qOg6LUU4Ct)2R68$X zOfmD`SllGV9G1 z*vZcp!lV}${c6t?BBhrmsc7#Bf-om5X3gTGU7xNBw~9r zxMOhDLfGDYQT8G;ltZ}bl43wskGm-5x+k_3Y$O|{We7IK34;DbX!B)DhW!F>{oz** zL`5WL-7`f>qEO^;e>``F)4zHinuQLCagVVkW(tVG>GS}*K3azTP?vDtTi=WaNsU;^ z0W!q;K!!cDO*}ncYJ{P~-6+9;@}lHPF(S4=EQGpO~FMXuz7I+D zJ1*tUmq4%P!jX9j@e(s>=QToFfzQhP%b2U{{2TRk#A6{(nrKRm*uaadt4F*hhQ9Si zYj7KG=QJT&#B1X7Z1Tn>qJ(V79TimH0;kH9WKaAaftDZlw0g?xQ@o_=oWa$rFZfGT zW$X~{{ah0!^m+3TfZ2juIQ$W~Gh7`&$wF(k`jbKInmNy+f%$9wc-^XA#W_SdNK}j3 zpW)J_ni%-xP^uyjBMfQC#0ts_-hc8$rF#gY!S8u+(!Ur7PaUBlGaD_yUR(%uF}%DW zs>Nc@i_tOpS)+27kqc8K!%s8V1dlwjxiILj)(Y;-BrGT^y3{`BtIseennCy3GlWS#6t$v$T*7?hvU%l(n_Xd3yjj> z)-}EkixF-wYCoS&4Yb^58z~Dzipdr5$wqjcF=isHzNU5+ZCd+JXf+?~hzDM9^@dy; zlVtzdU}&hZF)pUd->JQ4Qc@-HjNbVkZo(g_fU8f`!uK%*@K;AcdOpUBrmqd|_iBj^LdHZr4gF_Fi3x?TuCGjed(5{-cldT?@56m0@4y zTX_C)k?DZx@J*Qgi`?iR)SS>a-4#9Y?eoY|W+JixVzEg7igQ~s3qP+dO_SrZ@5zG@ zzNTF9KGrtCw`l3t(yZTLkf>m(SS|r&psCH8=m8H@1;w*a6QoFzkdpC-O6J2U{gv|YHw z#?pKGSN*L@@wsV-EnvmqBl3X-MCZojM&Xd6u6OK<|>du>Ujb_zyVvP zyP|VI_7$Qm_Zs#V7}Eat&Pet?a27L@Jo)QSL~2uj9LqiHN;|xtx#Zm`+3kQ3DTC$`YX=^cY1lT-l_SFUIHz zvE30vXL(J0-JJn`mU^NudE^Gb z=e{9}_Da9tr&K8yr{08>K#Aj#x5em%L#`Ah&QQU0(xK(2n7EkLbncPizeESqxk1di zMbR8g84DgHP~!ba9}jRx_$nv|d*{jSBS5gci7T;O7~eY7!QthWOu%KtCSvsI5el>5 zO)FA`tj!;z8h~KS77R_adtv<7nRW(SUhs!459nBG-Q;FRtG_ToQH8EP1G&nxcN2Gg zniGAY7QwCYB~%M$I-Ay7R|W+MS4^0Q^I38X^9~BI94v>O)Xz--A15869^nQW3K7eN zO_Q5&ZNQCj3u>N#XCDouKWZFgw ziEDaK5M2gejm1sPQR*x)6S2|QSd>hAO_NS&Z$iuJo!XHYd)~V+J+I-V+}3^#etB>_ z7N8|41Zel1==}2~a3y^0gV2;+t3+kq1hI2)ne^P7o22WpBZ&3PY;Uy*XeZ}+O^28%V|AqwpT1j~pLZ=O_4Gi$?kP(tXHeQVup`L@CGrPU1dDER=_H|+4jItumpa_fYNT-q`P_sJte zt9{wf{qnCZb+ArJ0;|b8(u!f_#z5lU0nY z2P)t`1jplJ;JM}27VD@TU8ZUqKlC?~iJaH$Ds(X3QGj3|@kL2vKW^siq!~ZjK+yiT-*Rwh zv;@~cs|5(I62F)(c{tUA@i-qY@i)Z@Vg5VC&uElKED>Yft{+cHSA~791*@S0p(bBaKL&rL*7Z) zSb}JB?%k6T_%srHPKsRHMD#O|L26)K@D$8{ilvBA-#9n>I6Q|=is0N+_p50UzK?w9pSF_2iiD~?}YV8(UC`A0d9#6-tW z)=#UyF`Rx`2wb@Ch#eXl2)rp)N~YC0vv7;ZcxnO*1hb30I?19!QtRILAmOhZ5X}uU zMhjD^bXW2FuvyVaXa9uO8yZPRO`qzwKWg==A$1o^XKbAvH+Xmn{0wWh*9JD?104Gp zn7Q0Y_dW##$NEV|aar6TLS{4~1C!cP1s6Mt<$X9earD#HZiF_@73-5b8ADe_;aJ8W z5lhy^g@l{_{ygV6nws5{rQd}8y|YhMJ%RImqq>|o?E~>Zsv`Jw{lj_!2VRW605UUh z%gP@EyA3>7BZpxy(jnH?%IaWkyT)`MV-}sZ6U}t?{f&5IedU%Eo5E}Hd*?KCYEnmT zIvAoU2ch8Az7y~a)KLl>)eN|Htw^4(a%K2R6S&`TJB&kYR53(c@dEpfl+E&@t!Z=u z!$zJ={2Lv8hwFucRuHc*!jq~j1Xi8)&WFa)YX!b}4ggElmEtuW&4$T7DGpN{gc0@! zSv(e92CXAl^8;LQvGQ?(`d;}rsahHHN=267i~3x>61F&XhjTVAw4|oie>uDW8F^D* zer$Qnxo>q*pIZx`AOsi3woKr=?Ejs*{fY<@9~(*X6B?Cif>8EB#B^P-3~m-}gd5#- zK<3{@U6nqp<$l`F3cLZe2d_azm-Y?0(o^us@Ce)bS(IaC+ZRa1I^3FBeZb$jE!<36LgRzYG&_ z3zRvT|KHj}&ts&oxw1bo4FmMSQX^WIW2fM#P%|=Hh&iXu!s$2@}mgqg0t5@OCOu68_{KQLZ zvoyKm^~y?scS|P-fHT@7CP&ZXOql^XYNX@9SysaaENumvC8wpx2%9E#Vw6L?AKZY_ zHUI-F!vfs@vjo^AB4&#?=$Q251NlEPJFU6e&al>SQ^7Vq9=Wej@*?Q~;Fs<#_PVk^ z_>mr;1Ioa>k`CThY%N`G@2RWSqy|ND@L|y-+qC@fQP1rP)1`O=kD2X#Q+I^jOr6H6 z!|#@$Mo{jQ`)IqTaE*D6Q8q(a%{?NAZlKBbN}l*=obR6VMtk-%=#s4q>`Qtpt%R?# zECnq-yPOc5zSaXZ;@^;05xXRq1kd0Bg@Cn~uF@Bqxx$~yUS1wH@ktX&&prpu+-^I+ z!kwG38=!+L@uAj(ySgW98}w$r>{wzlTbL2n(@6gWJ@KJgp?ak^vlZJKNX!;6TbaDc z!(9YJ>H`H(=`_s%zI#8`pv4oyWUl?h+qVRC#0J7IC`M0OhL9gEKL}WLbpKPfVfO0d z?oGfTxCoqk6F#TSYS%eTcqq!54B5mUe;OsuW|@s`r3f^C;g7T-XlXV?5RlnKQ?{Gg zIIILbme#g_qgFgnSpQ{Wi~cyI(@V5e`-a(*Occ$kq2x2i*iy>EP%6%h+8Fr8pG6fI z5Jvwa7~`y@`ew6xUFAm>W=5w10r>DHN^^a#-6R2?#`{%p6*s0KuT$s$-q^+&Ps1!Y zPa%Z1{Lx@1iZujzdxUz*0lbut@O>J-49M0=jJWUMc-~CwCuQKl6o{lPq9}=FvWF5gq>*wO_bk3Nd|*vw`Y|>UQ=nT3ui7h#GMfZ+I34XhW$ATQ zEwkTufE!eKfYt0I^93*vMXSNr#OO}%uV}}%!fw#VY`qJi3Hjwpa#|dGHl|WNILR-@ zj1MamFQLUv+c`sitiXy`=u-DxKz_7rw5JhcdP}tRCEYr}?~Ar1#(KY{Kr+hnSi=)_k%}oo?+xZGH@d7eFhG0*tH9Xd#o;la#G6lgEYJ|)2xusD%??`Vq>^rnKBva@& z!FdsWQk`jgvY#f){$CUB+F+xdWNPnOK#`QRmQ0L>=-*MFE*k8v({3xqOtvnVFT-6$#fRn2ij)2gXBLj(1Smkc zRj`hHw84udmL)hP>F9Jymejq_YKai9Z)VSZLLdLGHs{&tyk9Li^jPY%!^CqKcfM

    d!pr4X(aJrT#*W2ff1nz-haG|qIf%fbCa*KI$LW=T=v&%XOCH{Uy8u~dF+ zKTc$_%|x^qSR$uAEx0r+@Qw#sr=e!c5hN~UDfC6sw(yI>I4$)Q&oS+M7DxBf zH>$_TGm8=FB2s$e-9)aylHsk>t3%<>MzG~I+(0_T9Rns?GV{nLyry-~Nvq`2Xi*SD zAlsdE6T3;9-;1xvrq@=2#fDWd zHndH;_NU1n>HqZ#dkVc+Td4SHDp2}$`GFaL+pv_VyPX2)4ZBkw>xJ7b&+lRh?8*LO znOU1R4#e-l83N_WKB7I-0_GE0j3M_&?RIa@K54EXfFd`cs!E|Z@xGgI9nhPFXl`Er z>d+KyES6JFYZK28U3DH)p{%65G^zNcDxE4-mMim_6H&YdZoMA%!w|FH7(?dr6vhA7 z*Y@y2i#dWe5OMRz)nMf_-)7?4l8fQS;+LE=jTN_ zfN_uaFz4TUfx7&a_uSHO%e@Ea7dS9NI=}Sr6y~in68m2THwMa}zXR=%emyxc5etMI z<2y#rBRpuJSlVqbk1mp}hNu!o=KY7NNCF-V{L5(PDAfNfHlAjqx$7|Vl)P8y|lS;lZsrL>VyxZ74T~h2W(pYK`mBKZ^0&;p;tb6(jv>$32owKho>79 zq4FPoYFdUAK{_Nlt}`doOh)4VYnT*lo_@NU7!Do$Ly0A$qCOVW5@h0XR+xh-gvD14 z8=za6sFA*s%!LqESSJwl6n5~Otpaar@y+CqinxN@_AUi&guTY0Mij-HF!~$POt?(H z>I_ffd;&LX3T=98gW-on*p1L`a8;Vjad@y^^S$D=J@L$U4-)k&bD8qQEQ;Pz0}rqe+Hb}U zn)wjjyQ#xQJVc=-HBd8)o+412(4C~j2ru44_&Rd?^5{Jt1b707;mtZV@r-j&6M7(g z1erQJgZ*aK?gm8e?_D_l+YWP@`}gZ76>4qOgnR|}o|*Wu^eF_Rvj{<7oo+%p2It;H z>$f)C)9E#Ns7#=R8uicl`WMj;{_+75qf&<)1w#nhtM^n$GuO2G8`vRk z!X(y6j`pUIA-2Z63Gf`h$>{sLN2jm#hLvSj;*j`#{Tn zC^a{lZ{sq*WI^i3`wfHqG@w5RSd?H{Rv+iy@CK^EYV=aO0=390VU>Qp3t_DcNi{CAWD-}=L}97-#!b_MyEF!LS}JMJuNEjL+}Jdm6I^)?Te zx%`+3$rnUlnx0qpv+io*#tXaEnL_XSp~>5AqM%ryq|rD8j=$-T*}jHv#2TzHr5|bp z=|U~F@tHQw@b=Mo>hR4BW@mgB&E9*mQDen}K*Zb&7E4LXx;l5#o|iC}jMB;vi>R|` zX1ZS;$XIEZ|w@X>&w6H)gDvP{+7UMoJc4668EAMbN^~Ob%8(~rPHZb zP0+exG5v$!NZTBIR7Lt7=eKU6u5F?8xm^UFTi?W#2D3>mrx?CiA6dZa&EP_0r z$=yvg7i^iuDMeQ_pLp}fh8|+r3$=e9=12Q$&TQ27&ve)$sN(NKRXF9ZfcPuh?eXXA za%k}ptr%hl=V|*~{f5Y4?Ka&q66%Z?ttS6HdYGKowVsC6WSv6);ox3*b}=@swT{WI zzphxS4%`m?EHW;l&5sU9MG?u+;b+3sKo~_~+nI{302jPHa@v=Ju_3PQ=QH2S+z%ZV z<=uokq=jA3g<6UVbJZ`fHK)dgwU`;)Qu00q-oO&A(u=bXPj8~7%Enfzm1z;7mJN?C zT$C2oKE)jcl%;MyPy^Xbd;YMff7QymOTxz~`zxqs>u{}DPig|2^e?6*!~dm7G&+&i zKNt)jFZ(gE6L$<;1zKZW&R~9Y{UG=UHSq+~xfEg<5p-E$e@VtOC_WQ}2Wk^`&_{mP zaRP_x68+}_nZmmG<9DyVGSEDF?%2Sri1On>1X ztg1-fqo@Y|;d70JvO+&Fw^0SF`RZ!}o7OJkf|j%BE4b`I??!aAIczqB%aGtVFsCk51Cd`=(GnAGM88|5DbFu7@ zZ>VSV8$(JMvA|Sn{4>|uU;;HJ`K}>Roei(ePXRYEac$5l#)Wa5a+W#(Kx<8B=E zS=j&b9_h247igcZn%GOv$Kh14uScthC;-?ceE<5lz@kkL)&%D+ZA~Awup8jE=w~lI z_P2Jg|3h>U>n6Y3ooB|)4siBE{ap;GCs8NzX2w3;iq6(`7CaJIxAN6hlPOb!}he)*d4%%(rBvE>kFiDgd48# z?q+|ylm3K!*@L0eTh77~gW46G5C@1>xhUOf+bAfV=}do51+~cAL`3N!A)a{(O)vl4 z+Y9KjuEsoTMhaX=NO?gMw3gC0XDM_x1nG?y0_|Ba>^8 zsnHg!JJFTqy{|&3vV5wd4LgNv1|+wiw?{zOP3LE;A9Z;Tr0FymyFfyvqYT`zmix_I zXrkl{EsJw0QM1re;8^w^v_WF+Gb_c&lPbfkD|Sc;qMobbG5L%F2z{z9Ar$~etT7Il zHwr6O(DGarx663H$A4zCva=^l7FpTRtEYTft#!1AgZI~<4>3j-1d0lOHI3#b@hQ>_ zPM|Cr5jU};mFE{pXQc~?rq;=5NO(;%^Pe2F^}fPeM)L(h zz#-wpQ`D^Xu)DxAhnt-|nt9mE#Cyn91}ZDoI*mQXUn^`D$7~P=4wSRUj%2|Iu=3o{ zqz=q|k@J6K({PAsWDBy{dS-hdnbD(=?|0fZ0enP1cIOX0^U$ua+ticHwfy;aZ(1{L zU}9nJob3Cx45mt(0dy-c#eurftT=;9Hc7lm;z`Zn6R@em^i2+jgiK`O@VmxIiu?qh z5II#?lt%$G1L~6Q=uMvoeaFBaATsG;$?woky&Gn63BpmIBKqpC6Nk=`?na8SxNDQv z`+^_lDIcISCuJ@>0`qXwY9E=F*N8jsAkOKiiE=9)u)ve*O^;*NA}ODISgq0b zv{s9vh03T3CG658LJQ<-ZjiWsaxFTMkR9A%Eds?$GOPsu+Q;0#vA;yFEd zCpaWIf;Mi$WDSp+6$6>YwnG9&d#*C#;nWb8dnQ-Shy4aiaY$N1W&T^drIzp(MgVbI!V`8)Z9 zm;FVRnyaUxcJrAPi1%}BSm8mQ1KR=>Ec3Ysn3iRNY%h&SWbYM#1W!1DAxy8J?gWVc8=b>7N$wD zvhW`Ml$IHlY=Q89&TjZqt0b?^^$H zzl{QiWUb^!QzYbj^|+RAW&^2d(t$)X6>!-o?ioMQmoN<<7SM`8uoQUR;VIiSEh5B& zO}R)i#yC8wtNBw2)0g?6fN`2TMe$fG*)}lpdP((Yg?2+ltR7C2cX-tTy;B0Bd?T;Q zY-%exwL>LTlkEuUn8Cf6M2!5@V7=z_UM-m@uaY1?%$?-a36RSNi#Rh^k>q54Ve<)o zdx*w75=T0YnMlICjbP@mbt#tAQX_o>oUZgVrNven*|t4xN}<~W-7t-uX294~ks1?0 z%@`%YjQ!XM%vJ7l7&oC2BfU6AA@RQI$8qFw0Y(7$B;6a9gB(HVP9|Ylv=Zs@GEMzv z*=sGTws<^A)^eM$!kPVeDCqi6XO!e<8a$#$_7@DV7Z4CB=oz5O`Z**pM48P)&}Q z@~3^NYY&#uT?%7|ZA4Wl43qmRtF4T_y0q2%U(mp4Es8cIwZ5<}qWDAciO8eGIa#^9V8 z<~;}jIqIRt1P+lEk>dxl>C+B(3$sFswiG9c1xwAk2?10zEx-;Yp z8hu3Xk@1MveIWy(jP~(io$)6&uQ%P)=>t7dmu~bSn~S^+dZ+1Ey~|@Uyz8!ALOy97vM1TVJrdlU2_g)wmj+wb(j45&Q$x^_~?s- z8Q1hMFLI80ElZx88!+l8QZccJ04%x*mFFjQo+~WtUicHVPHHY&U63OX1sc-s$E7rW zFV`v6r_1v);mLeUcN)H%dWu9>T*D4?&g7F{Q}*)wp3qwY4#@f&=VXSS9z5GMlCV*= zE{jm>znFV?+A@e9`a8^=Wiu1qX^pJ42cHqg<1(UqM>nJ8s&mBC7!y@#|3>jzfGM)y zJPvo`MHV3?H1J(vVp4(!qC;|KL7)Q46j-I5!rZ0*-btC^=oAYzXTi$k+#)i^5$OI! z6GcI{hwE6M^p^Ld76SEW8ZLEFRrEZ5NLuFD_JuPkQk}!lA9OT##>Q^-~A1m>wOYBoyey;*_k6x2s374_Vk0F_@-NW#|G;lGDG%Zz^!3Qti~+#X4_q{ z^xKds{kn${WrE&y(!KWdw^IAb0%wxWjlCbN@%{%wPY6=hLpQM23loGrD$s)XNa{Y& zI|@gMvXkquHR`8T=!;DS;M4Wp#B6T$3kS{chP_T-+W1mfA0J4fFy z``7*i&i8r9yNSlVvSR;29Aq|mCLWy|-&<395IQ@AD&A12<4Igc3u`v12|J+~>QJ}| z6K=pWDhw>b<*tWy>8|Lqbyv#6lEJekRMCFLSXEALmBZ{z(#5l%(LoLiNCV+= z_#|cvyV`zbUH>bw@Lw*{a)h+JyH6+j%<{l7TYNQveL|fAw$%|)og|e^4n2N?{xD1K z=j5OanU7D?0jte1l)mW9I}zYdLcB>&rTL}WZ*b}dDGN{@>r6ASeio`ba~gtE{V~o6z4{%Z14-@-(3?i7P`wzj@TGsT zz^Hjft;>Yfv|IGS*~U`c)tQ`0v|&~enlmH!wNIg+51e^3>eK-kRi7q=`i1DXL$e!| zzP!5!4}~;~BB$_YDn8;)fO-sp4TQws-5t)-`rzxV`rWj|zy#tiqWTg2ns)8C*b(ro z&lfPODQj*Yp+=p)9yaLQm>_%N}BVcv(R+ZwVD`}cBPeHg)`#(rB<_k)SZuuGl_3>1~b(t z>!VLDCGD*Q`PMFpbs66I7U&2S#xt&&!=1wP4f9^uZ#JP5r1jy&q_UMFTupAB#s!J8 z^encmF1m3G&$7AB@{PkfNU{Lk6h?AFHLVY?%b(fWR4+FgziVejD3XlbKuX$2Jlbgd5`C`lsm*Ax1R&HD`+EU^^hFL{N zDZYmbX3`=G7eVZ&{Tsr6o2>m1nu0h_ba40%%eHX4sU7kyfM z(?hPd0RD)0C4O<439^(G>%Vd*S=}!z&O{voV#&+Q^@~T?dhK6K28sEgznUvh(c>8n z`Lz!5M}!SCw(vLev01@cgWUEuas1pRP&)G<>@FetarhaNIISyAIc zrDc|arlz)NjZJEbST48)ZbhkqiOOQgF0x$s@q6z7JeT`?miIm9yyuWgNPkXZtJq;` zt~{bAgnanQy_}SKE_%Y+pEd!@qhoLhgko}vX}7r{@*(a^EK|fU2Y>1{6vF`6bINV| zj-uJ#J$?Ct9?g9T!m<}<{?ULmB7$=9fS6Jdm6KYo=lj??qtsEF`I5gF0mv4gDrfqt zL86u3les?m2?l5*xfYp{s-M);&Y(W?F-_Mv3-1P2W9sSc7I_{sHh+4P{#0dLCFV2J zmQW9CP1&H?CT0P!9DnX$Atf*JZfnm}`{d#n(!d~_uR0LcDTTj_7WFD3PELA3B)L0( zXXQbrqFPKpx^zLhN7CBJ*<2$vQC-(xljtt$(LjakE>n~@NfEZh1kbrs9vXLre^)P= z`;_m1>2?I1ms);t`gmX3g|L%N4>(p8;PS$R$nvH{UMcYpVoSncI#qQtzY3%dC319E z_u@DsZJd?4eq}SxgF9oQ~i5A`P2TYK*(M4 zgUG_LJ}|4u#OgVOl&l`kxZu4GNE}!xoo))$MH?nu)tS@R(~F(BhWtGwG4y|A@40~S zB@fe4E~2M~vY(LQ5~kL2eI)VrrR{=7V|pKDWyY zh*?WLk!6PPELB0@(xIrfi(t*pxqF7WaXz>+>c;GOR3Sw#JTkL8PPr90c>z+PsaD_| zG?h#%^=I9qM3(WT4W@|Ff*LwuVGY;~)94u- z4ekKK9cywDin1~aY;YW#=28CjqH*bD_ImrFz){d)@(#_fdT)E+Y15#&MN#7N2Y~eu zVen7%d9!w!Vm74s1zT_z&Gz2I+Uds|g_eOgpu{*aPIM?sTV6@gB$+2BYjEj%D3#nEW%R*uZ2Q*ZuqY+`n@^3LJwSpN;ejPI%CQNI5D#Wf6|z2 z`dD9U+@n50FGDF7ejnlo=;k4&uGy}!nWv90DpT3^ghskkMG)=rRXN5&^Jmg}@*Y$_ zfN^rD*=egA6K zwVW8)2z;Ox)}4oTBQvz2@yr7~>zLI+zd+3y9_r}lO zi87*VgiE;YaRFu}>-hkAoTDFt{F6`+C;Ag8o82*Y)9`y6MvLf#W_v_41VH|EHA;DhN%69EJLJl*J&dM zjj(s+Z|qE4!aHF9P~b;b*vFKTvuehgwdlhru0dGha_7kjftJB7g-iSwON(-nXIeeM zxAhaPwI6i@->74hB+q7O25AlI77lq`tGY`C&Nbc8XIBZkYMe3MAkFU+SM_M1!68hU zsqb>DiH!n&DTJ12hme8f|44ngs_XjC+8oU~F7t2F!?AK@)7Cca3lj7HSIr|3P&}O^ zr&OOfjv6e%e3nrYPW%4n{e^|y2ELJS>?!kM74bRg+yJm45dAEW{nbOWnH4BKGro}6 zg&SgKn)+nz=^;SjPa9D$Hoe-A(!9Q?ggj&$;Ky$;w*&UoW$a%VYULgqX zi2l=zlFrwk67e5X6sO^i0tZpp)9>Zep#uc~l)j$+vMwl+a~COsss`yPi{}n;O0J?B zs4a60_}n#>t3c(8iM)zq??q-qZiEj~<97`gu+oG(BS_K>XXGa`up&w@>uh^9nVKJtE;}ACd&2nU;*B4C}CduJT)jm1W z;^v@hEU_EL@Mso6hZ6i|yjccDnSVz<39YwIiE_}{Uxy@5nnKE^o8s zl*lDJtzh-L+WkPlLM620FOB;^I{Vgic!yJHGnO=yI8h2Y^5s<0(a1{f=NxN(KM!#e zw+wiksTW=kR!8q|*ty2LY!*8Ct6)E)GC{)a&_5OeQ@J@UC$#^4fcQm)KtgA}#i=v( zhD&c*il^ox!ilTS^3icZ=W0#eOvY1ib;eXFQn^&nCDz8k8%6oPCTEASEdC(zNLH)w z5e(Y=`W-b@L_t7|AF#&356m?+nWSww`d{;+<~1~}0LGd-7sjGF5B4;tSejk;dE^dy z)D2QU1PPI<2vvROt0YCLW+xR>|6@OF><}XvtjiMo(&P}g8}$J`ma<4P*_7z6Z^a%( zXswzVtCB6P9}T(|<%xWlTuu)VZ2!Ovuj@kvqO5@Hqn7vc1t59$dRS$YPj&u0P{*~N zro%_bj-1U&kv{es@%vwmPg7UQpCX0GqUxG{+Dz?L-UZlGzF*CC_5>&bbk$=`+yY|? z-C3VyXpmI=)}Wg9>PE;bzN7uB%qwtN)2l3H@1XoBk)2=-?8xbqk0{D)6nh!y*P}O| zf+WeejqhEJUOB#!HQ&G z>!L<;SML|TKgQj7*B=q~3uz!FsvBd?i}JsfF#MYq!#!{#@XGd7)MTExZ1B4X9dlpGg1P?{D zQJr3U#x&-O{?bZ()3Xh1pD=nArP(YPsjAV?ZedEv6V~H4@TpvLOT|kHHaAWL6Bu`s z5!%6qnn2QHkYA!p8<8-ZF-_LzpO2Yt@Eqd!{F37;JTa3WK6?wEo`cpt_&|nxx1|>t z=D|_yB-49X4wMVPV?F}A*cE;=V<7!^F|{I6puZ|yUr??3efS4Xl$c{DYPt)2^hrS7 z)Q1b+yK~F9p8G(dGuvo5(xbTqc)vNb%l;Bwu!zxGzmHA1F-ZT2_fx|~JWq2!iUsU* ziLq4w3oX!1;%%dAN(mrC-0o1cEL0k5bj6^GAXd5dxsWz5_UlhY*T2A)F)TQt~MGS@RgY zf|MqQ2+Ie%(6Jb)+gOP{Wy_aZKYlSdn{UJHgOwZdUJ7x&uI>;ImC9Ov1R03Z813gC zn$}2`ekWfy_S12Ze{-%rWG>Kg(D#Mns^@nTN0a)&f(kXkd!Q;`UFfb4WGKE*j;wVx$}V`{-k+a+C6sGSt^s-&rlIjN7QEjUnWb6{*gu!8 zMXy1DfKHzUwETVp>4;zcP!95mG%G*hFCbfug=~@67H!Z-NK;PAUI9VMfk9RJjQ_>11o6)~laK z=?ClRiJb~434M(=irI(|bEfo#T6;y|8o|rouIA*ggUIZEFm{HUk2J&f8JZ}!Ojec> z;H=SvWF26pQ`sBGK-ty{$g1XBDy1hqK5E>eXs!(7*8T*|QPdO2h0@a<1@}y&(0e|$ z_my^&+GTmDg^3^W+p#dV;TlAP)Z*Q#YI9#rymNQaA%MJ9zR#CYW2-JLdZk#hT5dHr zvBiQ@2yx?k#x|>l){te(24Ej@4dm}48z3af9dy^57o7%{KhzvKpu27880D0kgr;q> z6hZv}dt7&=y0HO*{hh|T9vO~_M@}*x;eu}@2jC6S&KxUVczzPStpVbgw&Nkbz>rCT75US=%KmL%~xOMKNsY-a+Z}RPD6MU<@Z|<_(+YpHK zcLBzmf}5LGh~e}-O&$wThb_;=(RuREcv4>+yKcxl#L5p07KME_TqrTeQs_1WEQv0} zImGQjEfBzB`4ZnPmgCA@{{cYj@1--#Y0>){yjaWzr5YAd#QZshik$mYV}8J=tc@xy z)Vm_>>p1mistr>|WY>b5=y_UivB^=hU4K@a=EjK`@4_YzH#Wu0Ewf+^^VMg=?W9Ww z@~17}jA9aTGUi&2x~9*g_|RTIsBLA11gLBaj!a5yVTPbSIt*$?Lc#Xu!#g5lg%X{9J?SO)Nxh zn|Tk*PUzQn1U0UKGz|4oxqY@rFk~plj&uqoz{yZ@$7>d|`c#NyP`&me8c;msGiZR*YPbUWsL>9^Bw8*)xVfM@i zE9N1Ss^p)J7Ypxgp&B87=!A1_AwH+OG@eI)=2K9u&(k@U8%8rm*oTz#&@Z- z@R|{NmGpLmpD{}fNT)SE<=;@`!1?jpB>s+qJNO;JhSsN#cnB;#YqsNu??UOJc07m& zwd4)gDD3g z24#^g&gG__2f})bHt~bps!%rt>r=}A7Xdx#-0xwGO!{g%AD7$g7Iw9%=%(I>moDdmTMP$9_;Fu* zj{APHx5U*nIIn`POqNI452S+@Xxf`AsmbtVGT8#8uUF1Ob*?VvF_c9y?ury2if~0}|gCvtshGO5fEt zt!y|;uF+BM$*fxhv1&o!RmdIvhMbc*G^dq_|BmWJ`{C|PR>|n%f$Dc?;{3qwC0m`stJ$3HMX*&ALFA(jK$Kb~$9s=PJ^lVC@(1zAsLos-PqnK;BYQrfiyoEas(JW$O0-7A5`|vNX>Vx+n zyDLQZ$}gn3P?f(@QwnFo$P0k7hyy^6&%c9%!tL27qRm*@LM;oku#hxhx4SO1&ukY$ z!_oPk>bfo)A!f&N!hLcprM(Mm`Q_89cBk1P3U(E&TS=p58*m6>5q= z1hGBSK?W%YFDNwRjDwc8>g5>rLX&?AB<6T6{f8@86N>nf< zJTW4`;F4G}UGJG?qnK>^kg`;~z;pzEfBLp~C~nN`*hwV}vD%)@{`>KG&DXOR^QaXp z;4goCqOlr)BKkbU=lKt!EXwiUnr}UcUCGUS&x>h%OR1kJj%ZB>5S?0ZIye1x>dHw$ zfaL6uD#wBRDkkSg)W?`V)VKiYx4>nL{b2*Ss=Al?i-Je4B~CaElVj1-8_9MU(Z&DF zZ`h%J{oo&Is>-NX?+>(7hKkE9e_yDZ;7Ofb=CJ-6k!_n!I%`FJERslw>p{RyY`FC1^W4ZWqBM2TC!k<364T9YZ-zSC~ll zqJ0FZaX)fhbEqOX-ADX!Kk_r^*TDxS;C_xP>&Io+s7rJ`owTI8>tZE^v`MnH+eIU7 zbf;IEJC9Yvzsn2H4R55ywMkzzL&<%RPdGQ&7M8J$oYsZ`9rJYsc9^m9PtBW{lPDzz zf7nFLAM_hC<0NhP_iGp)Ri?8Y?ynjZ#l4rG1M@&94=Bc@pzs}_uEP?YA z0h4zO>pFr%P-6$&(D)vS&G>H90+*CRA8JCxyQtne3FImBvHl;@pL5rei&|B;L$eEu z=>_Ra1?Rc;-Lk^`-caFzFD%Wkx<`gExlA(G`;X-KLo)S4F6rcOmsj+A$@@G4H2Lr6 zf-bu@0bpOVf1dKx@DKg1$!(Ze zo#VYxc(H)ILfMbnhjIdLR4hg)E3RSc$??C**P8px?S{~F_Nlm%FeFv0I-Fzb@bdIf z66I%c?D0ayec92mn>khF-ZYPddPTEfr7VsyL z7H=L0jS{|+^J)N-<|nTptFdn>8fpiNZsWr#A1gd}4pO@IaloWtN1nj6oU>d^{MhMj zBlti}<8j;Y#ClLXTNr?noG&H6&u$9E+^c!zatLTk-fZ(0<`y=TyTyhq zQII~_e14Zi(6pyfbxBQC?4q!+FPhK5t&NDRG_eD>i+C%#&sN~oDV%NOy^U_Do-p|e zp^`>GPJl?t!F~?1Eb>_ME_I}-tRC4Id=zm>ir2h2=`2X^=j5`UMyc%vq5}PrNEK1a zc(0l7Ej>B@x+%+L!nlETh=Z0mbJ22d$HpO!>qMGY+y%p18(vSsjycOR!_y03ZZ?W0 zZ;FL;4Qx#Oop;_wW{KRYVf5B_5|W!{Fu9Rx*!@UImZE14`id;MEJ~XDu-$Z|qb`B5 z+_)Mxd?y@q*CX8fum|VD4IKfnVQH><1g(ZBVL*fb;W%fTH=V=({lmgG)sm*8gt?}b zj!eN{$du_?gj?iE-b^a<*JT2uU{%Jjbxn#J(^{}kw*f4-PgBN?C@P9_ z6_jAAp-Rw33PBy(u8XZX5}9D?oyn+#AIj7n)?F9u+DQs)sv_5e*M5)8?C2lNOdfT8 z<}dUr_5Sh|aNf$nqB_zN>5sH-^6(uT$88>2hRdVm3C60X{E~S-oXtw(66w0ps4CSj zf=%^g7SX27Q=;28vpETsr)`lNC|TSI;va<+ej!i|7sjtqD#E)cS0U118g@ zGFgxGHM3;erMjmQ`ibx&kyF3BdMR)5`*>spVz=)UoRPLA?tRW{!{h(WH1Io990a>g zaVzN=%9x+~A7pss33C(nV8al>@B26&K-9zI^bpWxYo406;}`^Z~vHHYAqp85w2m^Yc^-ytNCgx`p*g2 zfC{yZ?o034*1SuElIogI$lLlbxBN|{;V&^lUngOuaioMe={3$V z%J%q=sj~P~>2Ugk*@|!8oVmS?0>xqAv?lLnQur|xKsgwL>h(Ly>gu4cVZI%wC^Y(w zU?}l=WGa2H6e4fTsZqFI^b@z@+@d;6+yud#li}!OhPvptii?aqX7t@)f=~4jbP;`7 zg!lLXAJvG@>4Bw6?6A^@fBwW_nz+W1;pIgG~an!L-jo7s6ao3h%^y^qf`#X|EQ#LCX9&1)gAv_JrKo z5qJjKN75&WSiWC6R}225E_Zo`1Or>eIIL0flo*K0Tf*IJdB>-Nsaj@U>&X9 zFdg$abp@tWz)AfYrGy$jVP`l2Cp9@G_1|J`6eiDgi;fHGPM&}C_`ZY zXn-y7-KkuySvc=^W(>*uaz!cmks#^Oc{=a|a5jR$S}O;e9$?v=&5-SuVrOo~LO3iy zXV-75yE$#ed(ksD4c85btS{ShKvuzI8}44`m>h^k@vQ}HKFr_OMeZ^+KmzG zs-`EqlKvKq;~tp8E8<77CVk5zb8^Hf!+F6!vF3!rdeR$0k7A+;qpOG*bQug02R9xW zpO|th@*yRJKj4O@0zsrx&dU_1oqsX(qz${uTD&&a4aTVreYRuGoRIyfES0DH9ih#n z3b)tnWIdQ&CS9Q4*$}sBBvV2!`9BA@2s7`7@TF1P_!B<#n36EuZ`|N*m$er2f|TiX#wdm>xyRAYBTw0 zz?$Fy+Jl@Vx#^Vg12($zX(F7JwAN+#+jr~{_IY%u=|R+TNG_<7+a+|?S`O}1f#yyf z%pFz8e`Wke#IyNu78~bI#apvU@}ku3(u)jg%a|n!yC}IyVlOXXCk@37)ucu}nTzL@ zkUIv6`GwC^_-{JhpPa=!57=bDxjPgaq3-RnXc3Qa6)z2U&=h5KY+hFTN+cg)1> zi;9j6AtIf0RrX&o5pky@Pm_53PL)@q6&280cc2Dp zeVJ&s?BjT0Np*CrOa&J&r033Jc@MSfKAupYnXt=Py;x>9rR|+7dZW5#FX*l0pF#Md zrMHq;LF5BAG{IzA{~dmKpK5MZT(-97Ys{?4YC7#1d=Kgj8}{=LVqf&E^OOG!FI{Sk z2asl^%B8v(3jJH#di^K z4&I86)>o0Q>kAV6j+uW)w2_WI=f`A39Thqbgvw#(i9R+jb#AhsC{_{Qoxn+0Pm$db zKh+lz4kEo2{l!5CxH2_pF{vjxJhtX`1KUDb(c%+a}LdK~!x15&mJ+H{gG?8YnLhrfk$?Bt@1+bf-)>wPXTQjLnHxk^%slrP8xp{oJHV zH%>wcA`m~sb85w|7)L;7>V^$jo6B9|*mto0_OkGb!J00gv&xA4bSU42ni?w`tS)aZ z2F~ansD9@zy>7mMpe%0si+ne7lqJ-yZ>}YEY`)6}K^g1n%Am5)wfx+gdgL>BqB9mm z<6+_%Wuc&tvU?V@zQR?C66DjUT-@#1wOp^aHdy8&?#1vpPg9O&Cb~P2Q;90TWdIw1 zb5?A{-uFs(-8B_h)nEOC5!jZg+>g&!e|tj6NP8$G#t+rhYh9BtkRF$X4bec8@Mf}f zmn6)FSy zwWtN6{Y<@PySO8z#jp&F?!f&DY(3wYB`e{T@zxO?YI?ATl=mWJA&?XS(Uw+*lCGYq z>!yIF#KWNJ=);eH#M>kqvpEt}^mDY5HE&GZawd`8YPzePz-S@7^> zIo#j!N=+Lg(%JU~0S#jSW+KVL{03#0q7kyI;qir4)N+V*2XjjJMBxdh*%ou%i*2O8 z_8nIMYrAu0IUoHMQ}wE*6$T9BHKaSl_6}$)3*?oswa4gdVP%1*iMvtjx!hT!mk{$X z8b0fk;9sB`YV4vsBMvXDL<=t}3mDXP{fnxoSZYCid2holZ#Rf1ZnJ=MDe*WKfq zWcG@tHTi*!%8a`hizYMbQ__j7=`RM45ZE9F?W=zvwm(bokrfDhXxXV^?xb&y*Rse_ z$eE@En$;Sx*2$6EOFV^4Xg;Cw96`xIGC#vLE#N~AH|a+6gMlpN%?9Q`TbIsYr~5uH zN2@3X$xPe(33X{fE!NXg}%p&%#a&@Mm+;Ic2-nJ}nE{DYAYT=I*r{O!k<<)7={&WxlV6xvTgR+vb8U^bS<=?Xq}2;SoFGlz*@JU6nRgzEbx{>&5s@l}YW{=l>qFN|pVf zwO6+dZ^{yM%}PxRCO?jn$7Dfh(zx#NhfH9n_L$gr=@eCV_Smb*@dWoO##tFF6uE=2 zyg@piw(z$1s+nO|6Y93-yx5A!i)`W$mI3Rcl;D#LN~;L;P}qpjVgPT~FVWAr zVsZr|b~ZN|QZVhHM9ghZqTW4TlhOpbt!!7+>TgZ2zla(1*a*2FJQN70uar#_ciL$= z#N%HwQ{Gn(=G7?5keiC!^LsI*AAS$DU@zO;=?3akB8izTY&%b7*kf0F+rn4Ro_zJs!%g# zr&NS3byl2%+Xy1Qf_2vf%aL!iyS^Dx@<_YbgbU$3nrf$hOR4=UCPw_H?o&I^XTZCK zZK9#2XWpf~F7cL~GR1C*8Lp0?C{4?1<0`a6q+bYVf2yKa9X43wYN)t4gzEM|ce^tw zok?ZRD3a{1mMAye9u=MqcjKNN6;7t@yo1s%76~UBzLl25HP9O7DO-uh^%MvD^bHf$ zHuBnQFd)tdUZ_}LZJ0aqwnyV6<9fbEu1W z=+NfIoI|jE_DNPtHY@$L8oZpeMRzxO9eGQ(c#qjf1LJ;nCVywO=Bme;x{)Obo~j}NtqAR4F10D=EuNb}OuvO0~zV;^&y?bTGMxLr{SPc%mgTtb)# z@2(Wis!)jTz7`{UMsNaxi5IlcjwcC%hBEJm`+!evNyESq+Gc3PofzjRi7bXlamScf ziMw^w#1_0uRHo)8BkhRBU3Xty+~nYYOzJ?3dYy1Wt-Z$&2y29m3#<;4^FPEfk73SP zkP+Euwbpy)_S}myTqh~*wx;Noa;lIt)%+x5IXF+I=yM%{8F@XHqzEyF~jWm@si%q%`fsz!g{PMQ80qpg_m-*)TC z+`jC({}g`}7(%~c#z6+I9`=eHs@u)cu7^y&(XJku+e1R%o1M=&UmN)|?jqCIRLHd` z2UTvo!FDX^he zM;d1!u5f6f|0aAhkp|`vt@LneJfSacIQLJq7f4Jvz+5RlBWSOpI%qEo4Ag&gAqpts zgYb8oxKQL_m;n8)nNe{wJ}6&ti!4Qa++}-2ba)_vt4bWQ7Ev`e_h@eekHG}k9VWTH zo?d1ngbs%|b1r+5UlbnnRF}aSHo*8?ZnOU~rei&?Hpnk~IskH!{LRM>Pc8P9(Hc09 zrd@JerzZ`mK{4u#MCC2_7(k(ZVHbzzWPhGMaav!XTD7sac5U8aYAr9ozxveR zV~(i661)uXtm$#23#+ToH3`O~MYkD7ZXu_fE7)QFrDocFB*0#VtWqOSma3DM*BV0zP5#Nyo>5(0tm+D zyUH!bSXhv9ad^b0oX#gY(QNMvOi z7UU_8ZD!@^z{zkBw%N(rSvp*w)ys%(N?S1}GC>U)#sXPYZuJ!WuPJ|cH)}utx1JMI zq&PgR)yWg_AnFc8{{qgE-VyAkMlR>J;*8G8M<9H7-V^Ou#Qv$1WHf{0)=ui8c z)(@55%|d)tHot4MLi_$hF7Bq_oS^k3_^ob^t-Go_hSH66gq%0J>&yA9wfuQkWc;Uv ziNtrGI^WFXkGb%#S)lXt-hOzi4O|QQp5^^H|~F|dxQXdE1@oe>vf6yGHtsSHM32h!Cy^uN<4tz zt)|xMdpcPYuK1|)X`{56sJj>+P(P$C1tBZ1(|WChY!16oix_sjls`8j+wsUJ&=QRG z163X41I~kPW?rIdeP!F`6ec*^PC+DYEJ9a>&F=G)jaWV?#=>v16b|04&?)~rK^E(_ z!cav*qPm6w9&FWDya6lt73IzY62x+91&)<2K)oyoE(ga69UIL?-P=_)DlgHhu# z9Kjppcuz{XF8HnGPC6}Sr)(Ee1a-TcLqLXhsBH3IldZ(JyC&NUis(cYHRm@X*!jop zOOQqAPVR}*#8bfKP1R#QJz)g~kviPB;~MsImf|P^af|c~|H|TQKVpd9&-r>qMGB|| zzu^P53AY^^uNglj#1OaCB--`d8)zNn->u5my+Ukvonc0J>vXHI@y@&)&EXCZqhC#* z8)Q$^kI3pRL1IZ}Hi6Sl;t$bZ+z~bQiUj3fYT{%?@A%9A)w*qFZjYSHK1NN}&r}0f zuFu#x_#R0YVDDXN%b2}^sBvI5RCj%a?E>d1DC(f5-F|Bb0no{%2ABN<{WK~Z-Vvp0 zHy-OI*gV1>+yTVsM_Q=*o2mC2nC%j4L`-YKGw`O!JnebUX1&YL%Znfb-<2rC(uOVq zH?gKjuoN<9493Tm&rDzO!p!DNziAd5T2=9(0>vAx^_f}!J9I=^yYBT!A9Oa%wvzWo z2)|^}HJ%4{et{i&|LPx+;p%@G+bz2P3#0a9(^eJDo0*O z{PGoq7}DPsC1s3qp#ba4SNUI6$H_@(C(xPZ+VfmN0T4Mn@(}d%eWo@kb+6`C*C_Kf zCOmRv9pf9O5P!rhbQmr;J68z!e(epKXw9yabsqD;dTdY;&qyx63wr<4UX_7D|2Dm} zQI;e7eamMbCp`7{@k;>m?=2|O_w3YH#&+So>ze2N)*}HJrI+kMv{71hozn4{w13G- z`l*7Bzf`011sUh5N#vV`|5;=i_~Z5D)+C!vw(Gs(RGN9Z?Q_XE!aqM)Lvs73gH`rFYTN;{&ybJL6ZncLP}s`UG@4PZjWl& z*zo`&T(%vg!_pzlXq<_O`jdiJXLDltm*LFUd`NV!BVlnQayAJ_*i_Y3(WN1QR~8P?Jyatp68W4N>2` z4_F({9YkFK6gY@WcYlsIpWZ$CVu_#5u-MIfpIJ)&N`gI{#3HW=ozBA&Q4bYAygp%H zL$W}Aizd~E7&mj|U=+=%G$Qpzi7V&RT~Z;$9Sx`MW-bTT&iaERoYC(BNgr~Be4ogy zTvmgP6e?Xs3;Q>r-sU>JaT(!O`oPR7_*SX!GnGGX4P_CjPU~{_%8+&!GS{HHL{;CB zozfb<`FWJNDm{Y>Cr^_n9{1|cE=w#IY86*x_U-ke_c_y`KL1+!dpli!^+3k#Fb?j$ z9wk5dzMAtDEM3*gnvL|l$cbUr*%E_{$7q<3*{BUksPkcYalxBB9!`3%Y51XABk>yG zcl_8BC-N71*0RI&W9P@SG^P!o2X~RKYc5g6Rny0s?c!7skFyw=i8vZ~4sQU3& z_OZRBVjk}tttCvrc=trHiPx4p*$F-9t(|r!Cop?S=v=|-!G!D_FI7_bZR%LvQI!}m z*~!8c(C6-houiWY*ZE=FlHZXEy!$LMVWS33FW~a0x$uL{q^1!wWz5b_C4pCzCnz~F{y2u`C`k6Z(K0`pfCX*-I!GHr8PA+s$I+Ggy8oI zitjNuODNQ|*V=zp#^LEti)voSJwz>yuNKB~62d#}3*#0GNp|Ak_XEszoX_3l!R5f5 zDOd?(IboEJJ@kJPrgT?GF*$@To!%vcfg?A~kd^oka7y|b8g3>}nVlNTQ5IH3P({G0 zPK^Jf>Fx5AeQ~>GRi+}B>6JC8EYs8G64QFXcLpAXMw}HqZ9&f#-pT1{e%90=Ya@Ga zycILfJ_x5XDVd2mMo|rI=@@Wtl(N(CYe5nOz5B|z%=^_B%{tMz;Fg8Vzw{17>UkT8 zvja^DEkn$)OiWesh!qfwzfIVi&I1`a>9+w$jHneGUh4gm7*t?bQWfKSC5ws6#(frT z479nK1lht1`}?sja*Jlc$l#nq*@&$94e!cebpr@mOY(QnXU_hEFz;Heqkiz`E?0AM ztDS9Lz^Yhou(&5_%7yfUR6$HKy`5+GprLNyr`?$e&1Lz$zUcEErcFgZEsl+&KS!#- z+l{&RqPnvc)N^dgH+)m%F3o+Oy7ZfB*E<&;e=u8pxfnW`B^^7@;hq`a+TqxwcD}NO zIotG~^81eja$Z~~^{vhA{2A@ME7~-lYKOWk=RtEIo<7;Dj{@urDPz!V)NLIi$)lyM zO9Btl{k?j6dG?8oKsvpkAr7gEh-xIg6?TcZS75N7JY*{GDeqt5e^r!}s9(gPpL`O) z(mRtF9R+)&x)=HHEM@jzfONfqA0WlqaZd?AKhp*QM#!7+Y2+J(c`wnK#l$h@zaREN zGbpp8)GmKxDGqsc)&n?gztmMu;u`m^KMV&|3RjBI@8cg1wc>Aj?D221DbiL+5EHQ! z{+%DqtAOFAu(MY331W>}mPDT_}m|fk2V51u^fuBJO75d6m2gpNE!D~PA{BDImB7ZGkM}fB6C{-Ox3x(g)Wl~)+ zcT_V58?yF$VH#uX%`YWYv+QpNh~PM6#~uF4AH;E0$c)d}C(SzGWRsa9*pU3Vbb2ER zlP|p3z}W#(!-0?c`R=^!w2NxqRqE64^F<$s_N2JSCj8eCon4L{e93<1JVCEY9}c45 zG%1_YhPTE%1zXZsQs&EuV> z3rN)!m#1H0Qxx@!=~3N$K_IDYwA5uvn09c=#Z}x?a}_8XwX0d$$15LO%9Ejek<__) zvK~cQ6XCYz9$7wtTrCs+Ud#hOYz^I{wtAon?T3)eKa%CEWi{gj@^7LK3D2Cjj;^!V zqR7uR8m}zZtdyW4D<6t$ZOsw5!9x{CKdQ!KtA#Qk1rz^)rPLo7`T(nNL#^d zJkZ2GL+&zTyXWA=3VKsqp?-4xSi7NZ&c%zw%H#X{+XDhz9^cX9YOn>~$ei6GPV(pg z2GZx#sk2z*4I!+7e#jSLBg^tXNtQE`9t0`vWj2k@a!^Ka%wbC?qJpiV zT4rUGdsrUo%ToLXJLVbgX8#4UUR=kV)l1aJuZ+KuUU8pp_lzXHT2c|!M|*;=eVZtj zrNw^v;L|CLf3lD#oDOoVi=1`P<*gslM}VM)R^XsJ*c*NYto$D z-=0}*Sp0w8T?trI*S6Njt+cmFYPA9);82aNU=&bfN^GriEmZVU1x1L;Bo0Id36OA7 zODk2TDheV)YEh_F21RB_RD=i#gh81y0TD2SB!rOhQ14$`n^)SKd!UeX0(3WJ^r2bv{w+3a96d}Yo2jN4f;K~tsy_`QO-J1kzcJ9{|q&j=~qXO zf|<33eYtJz)q+~V)D{-wkg4^d=9Y;~E2(9c%|87QwskFIQ!na=BrhO6A6d({Yet?9km$R+US4xvng7IZ$00$_d4` zt{dXGJfd(Oc+_iX4VxM&v4!&}cWrqAjTs~T?Y^F<1lcrqX2XY&?~h_F?m|&R)=7{b zZ~e}AvM{TGk|z8c z!+GLQ#^bbBT^mi2ZJ7FfE|D>esGYjKg>pGZ9*(R#6n`We8BN&vIkieQtjY{?x{J4u zZCKQMEyDg@l9C|m2uG9O6om6Tu_rsl%LcQZO09%+R{q-^s=qmocPby57WjPTG?mel z7~`4SwbZgIwXlI#7%<2Q7W)&%g&WGO6rU$(BDwk6ZP~rOj|zCRtkg{Evi-RC6RxTV z$se%CrdHCeO_^i6P#m3ac*6+`dPU_jCF-C-Ig3Iow`3ABQKw4HF`H0$!<_o^`YYG2 zWQ?S5i{->PKdiGa^gD^qPFDzLM$n`2tzFlQ^0P_7eI`n08MwRwzh2T8H*~=aV~t8A z*2xsJG&|G}50DlIQaPk@mhN-4FqZuuW3K+Hyv)_zSlcN}SYtSDp(yazC4GY%LpKLL zqOa2S!_c=>!#gGLn(qwc@}XtJ3Sc@>j445Hry~nQKG9cpof0f@`7oZ%Z@e!X^o7{b zY4!{OwgrDL$*YlIj;$DbqaW3rSPl$thVIH!lpS_1vdG-p+5urkr<&slc?zt0b2yUtO=>#N=!%} zS!z%HJ658-Zn>6rsPv0~Y|wWDTxuuzwuF3^?^!jyPQ7%cTS{)oIGWn0_^j^A?+7vj%3reQ>%#7FX%TE&}KYBDf!^s}whOGe_n zgSt@pa%|xu`A+O&gP*69irtkbVi80v-~t#mZDrJ|OxZv&9m${OggtJHZzG<4m==oD zaOWz%J_S+>3^P=Tk?NvHl=GKX4c#;Kf)iGGqeP)n%ljSun)7ys_c{0;=9J&C&Q5L9 z4VSGw8LHpD0Hfk`tP4aoZ%xg(5nV3v15UFG;%S_N{Ho~N-MXs#UW*uxv#qXuufAfA z{YE%ZuAPY81K5q3IH%I5(3}c!j7z(VXFSW4X{Rt2)mUo$T(u6mJ;HB&Y2HpQw2-|M zPN9munIe?@@jZ2=RiSKs^eu8_>$zolKG`waaE6E%;+h>U+SssfdU5Z=AJad>%@5~< z(oABrkBhrf$R&0ofn+;jp~|$oxZWJ_p?@`QQD3mA_oHk>e?*8&hxNF%gDQxjZJDCp zvESsy#GS;NH-w4B(++w9L^B72;*zGw;cJ!sy6kXm*VG&^Sh}M%7c*Sl6@XoQGIXN% z0(>*R+%4}qZ6_sk6kNy(W#BbOkGmTx$zMk<#B9}XL_hS7fB^kxh7{UTUae=H4I}=J zv3cE*f)5Cc42^wwo|538XMuw@Q5Ddk)2ODe5ag$^1$%vd1HDj@gA z&cF)RAa~97^qjHsn+>dmGD9ZpX>YsDimnfd?kK;`PzeUSW4JZ}WQM&^CcSLxi$|00 zsIIwDV@bK>F!6q!)vR=w*bpE!W81e4wy2JhZegzA4?B#))wA9FGb%knA4E!jk9 z>{VISvvjAmHg28y`Qq_!bc2{7{B}{h}{8sHe z!z?~Ahnxw_`+mwpxi!8ZfJ9Hfs}^_An%H-Rz-q}s{GQsDsBEQC(CF1vGfZZA%(!kP zl}hJ`du_0pxC_X$|3Zc?)5zM7lAE8}SVrE@><6NW-%=j+YO`fr_d=Y;Yto|`?s=

    6{Azt^j@mZoy9&kO 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 UK3Rl=#FQB_8*=G@gVBut1{0N8uK)l5 literal 0 HcmV?d00001 diff --git a/r/shiny_exampleApp/helpers.R b/r/shiny_exampleApp/helpers.R new file mode 100644 index 0000000..0c8376c --- /dev/null +++ b/r/shiny_exampleApp/helpers.R @@ -0,0 +1,42 @@ +# Note: percent map is designed to work with the counties data set +# It may not work correctly with other data sets if their row order does +# not exactly match the order in which the maps package plots counties + +##Needs +#install.packages(c("maps", "mapproj")) + +percent_map <- function(var, color, legend.title, min = 0, max = 100) { + + # generate vector of fill colors for map + shades <- colorRampPalette(c("white", color))(100) + + # constrain gradient to percents that occur between min and max + var <- pmax(var, min) + var <- pmin(var, max) + percents <- as.integer(cut(var, 100, + include.lowest = TRUE, ordered = TRUE)) + fills <- shades[percents] + + # plot choropleth map + map("county", fill = TRUE, col = fills, + resolution = 0, lty = 0, projection = "polyconic", + myborder = 0, mar = c(0,0,0,0)) + + # overlay state borders + map("state", col = "white", fill = FALSE, add = TRUE, + lty = 1, lwd = 1, projection = "polyconic", + myborder = 0, mar = c(0,0,0,0)) + + # add a legend + inc <- (max - min) / 4 + legend.text <- c(paste0(min, " % or less"), + paste0(min + inc, " %"), + paste0(min + 2 * inc, " %"), + paste0(min + 3 * inc, " %"), + paste0(max, " % or more")) + + legend("bottomleft", + legend = legend.text, + fill = shades[c(1, 25, 50, 75, 100)], + title = legend.title) +} diff --git a/r/shiny_exampleApp/rsconnect/shinyapps.io/nutrs/shiny_exampleapp.dcf b/r/shiny_exampleApp/rsconnect/shinyapps.io/nutrs/shiny_exampleapp.dcf new file mode 100644 index 0000000..70762ef --- /dev/null +++ b/r/shiny_exampleApp/rsconnect/shinyapps.io/nutrs/shiny_exampleapp.dcf @@ -0,0 +1,8 @@ +name: shiny_exampleapp +title: +account: nutrs +server: shinyapps.io +appId: 201629 +bundleId: 925472 +url: https://nutrs.shinyapps.io/shiny_exampleapp/ +when: 1501711471.56152 diff --git a/r/shiny_exampleApp/server.R b/r/shiny_exampleApp/server.R new file mode 100644 index 0000000..eaf9d8a --- /dev/null +++ b/r/shiny_exampleApp/server.R @@ -0,0 +1,31 @@ +library(shiny) +library(maps) +library(mapproj) +source("helpers.R") +counties <- readRDS("data/counties.rds") + +shinyServer(function(input, output) { + + output$text1 <- renderText({ + paste("You have selected", input$select) + }) + + output$text2 <- renderText({ + paste("You have selected", input$slider2[1],"and", input$slider2[2]) + }) + + output$map <- renderPlot({ + args <- switch(input$var, + "Percent White" = list(counties$white, "darkgreen", "% White"), + "Percent Black" = list(counties$black, "black", "% Black"), + "Percent Hispanic" = list(counties$hispanic, "darkorange", "% Hispanic"), + "Percent Asian" = list(counties$asian, "darkviolet", "% Asian")) + + args$min <- input$range[1] + args$max <- input$range[2] + + do.call(percent_map, args) + }) + + } +) \ No newline at end of file diff --git a/r/shiny_exampleApp/ui.R b/r/shiny_exampleApp/ui.R new file mode 100644 index 0000000..0632188 --- /dev/null +++ b/r/shiny_exampleApp/ui.R @@ -0,0 +1,53 @@ +library(shiny) + + +shinyUI(fluidPage( + titlePanel("Calculate plant height"), + sidebarLayout( + sidebarPanel( + h3("Involved images"), + + fluidRow( + column(3, + h3("Help text"), + helpText("Tests: ")), + column(3, + fileInput("file", label = h3("File input"))), + column(3, + numericInput("num", + label = h3("Numeric input"), + value = 1)) + + ), + + fluidRow( + helpText("Create demographic maps with + information from the 2010 US Census."), + + selectInput("var", + label = "Choose a variable to display", + choices = c("Percent White", "Percent Black", + "Percent Hispanic", "Percent Asian"), + selected = "Percent White"), + + sliderInput("range", + label = "Range of interest:", + min = 0, max = 100, value = c(0, 100)) + ) + + ), + mainPanel( + textOutput("text1"), + textOutput("text2"), + #plotOutput(), + #tableOutput(), + + p("Got to the CIMMYT ", + a("web page", + href = "http://www.cimmyt.org/es/")), + img(src="circles in a circle Kandinsky.jpg", height = 400, width = 400), + + plotOutput("map") + ) + ) +)) \ No newline at end of file diff --git a/r/shiny_exampleApp/www/circles in a circle Kandinsky.jpg b/r/shiny_exampleApp/www/circles in a circle Kandinsky.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e9b6c4aa148fa5052fa6c6b50931f7dd0af95446 GIT binary patch literal 2887 zcmbW!c{J4T9tZI6m|79rymu@1Ar2y7#`H=Q-y&&vrhq^Kd?MW`KQ`W)@}u2m}J$ zxeef~0m3GMNS{yu1V8`)FyJmt0_Oo95NNmm6)-P&H+&EXm>0?ih3*a*d=DH3@47efJi(3&5bT-4p*?IPU;q7@z^DgF*5Dk1z-<4B~VF zvH$?$+{J8xoYW`4oK(*BZz zqm%RHE6D3Nyl&p|zWpE|Feo@A^kGbF+~fF!#3yO#8JStx&vSBL7MGNkl~+_&)xCLJ z-+*mwYJT6@)!ozE_o07uY#cv9_)H|t&do0@eqCCotkA!0e*eMPV*dQK>jDAbf3g0S z{fA4K>*C@50R+110`UZM2Ur-wD|d=d#Ml<JRQ8k#VW*d9>+Rg!&>DaGbr zoNot*%Q0gLIeod33a%dtGo1Ir~Gh^nolTWPUj?W}Z>?M<~v=Rmc7yAb9C-o5z%T&c>^uda^RoPux zq4=V3bo7})f0)xqU25SovByu#fzEiDz67CUR5Ap1ZjuQ&h^%jW+% z>qq=L=E(jujySQSB9OQKHY`(Y%Svv@y5)L}WY1-I5Bx4%hl(DsCnq;GS09gX+vLso zsvCfmHVLh4Jy5tX9yIFYdY0eBJZO!N6XSqOX7O^}L$hosvf#WFGG zdMk&7>3gEmYTb@Z3dFkq^nXn{)jE=3PZe|0>+R+MBCJ2DV*xH&gZ+R&=cjyXSdeSm z(tH6ihVg_B-4PA$ImiKGQOY5~oe#0m^&eF+c0)s|sE_3)byd7dC0?6+G{+mN^8F=A zHy3``d_HrP(2n#YnO|aMhWk`qT_xEt!kF>1P6;)U+h&!eaz;Tp8iEJIE+#oeCCsH$ zdlwGV?l&IHTxqtyn)(MiAnjXNb)egW^|c2E$1&AmM&zXh4p7bzFal_-S5_j+zg$1R zvu&P|tkqd~W?{6Hdo;+Z)XBY%IIQWgt>nE~l z+OxhJPtk`J)B>-aquhCeZP^o)nDIj(M>@*&2Q80*rHQZapD&OOk+s3$8Yghz5K=^f zhl{s@i+7f{Cu{uGslyiNujgibh2UrI6`vWNR%*(dmE94yy^E`$66TgVT=HbZBoQBT zr*G#5&NTUWoP_kUQ~Vkmp|`SibUH>@H7NCvm|1dEJ!nQo#9GCb?thw`7?`XsSMlKh zy#)DT(?NUiTy`?T8Q~~zVw(7nEOSNkWxW%&Ij?@YhCspCXT=s4>wYvmUPYAP-D)095ljilwi=tuxs3RvnvZI!tQn-k>f_noidipdp)FVw2H)YCI zQ!=70Yq#Us{K@k#lxGsIY68h9kndhKIMhY6-xN@Gh=j4ehN21}} zPJz{(jbiKi@B1riQ~k>_OVED!(C?2%-q6a~aAR7}6hK+305t0CUIr3tD0XO;iU z{tH1sUgC$Kpuh{CXGF?J+ho|ohX7Xoox2A5GprM5$2J@x>2^LUNw?qhVtHJi1sg=> zo0|@Jh(3r}WVAPItc%j(eY3kZh!I_`^0(ObH9H8r9O2l;eSC3UX4ahWvQl_1Ms~d( zvudO|e%c0#>TQ4PSTx7_ov`LVFn3LFpi?ZpH}1XRAi+)^{2JsQJ1edWIE`N#K-y*F zR}^RQTDd5!!AefDCB8HfqoS5ljiN5uADk6`*>A;m;>-*-(k~29~L=& zsjgbNETkUI=Nb8YNc36PK<-vb68Q}xb#8-)(!drS{l0!^v(wT0Mwv75ebxlpTjD)2 z?xLt@L`I>UmpSjTRgU(&eKI;XH+X->96q4nKpllbDL<+Yh3?GyoA zz}~SRFY6Ge@wJU4 zlao>jTRW4A$8brk-}MDgCGj)LUSwGp1A@epiQXQfo>x2{Jnbn2&OK6yzvI+QYse0K hpqNH!P`6MJ3l0nL^8ejJMLK=e^nl~zs}&sLKLBl#d-DJQ literal 0 HcmV?d00001 diff --git a/r/shiny_extractApp/data/AE_vuelos.csv b/r/shiny_extractApp/data/AE_vuelos.csv new file mode 100644 index 0000000..dce1746 --- /dev/null +++ b/r/shiny_extractApp/data/AE_vuelos.csv @@ -0,0 +1,211 @@ +Date,Date_format,Rol,Area,Sensor,Downloaded,Backup stage,Notes,plan,stage,shared_Mrgt/involved,Julia,GCP,GS_grande,L1,temp_download,check,extract?,,nu7 +161026,26/10/2016,fis,710,RGB,,auto (DS),mosaico Fis necesita ajuste por desfase. Hap ya Ajustado,,dsm & mosaic,1,,1,,,,q161026710,,, +161128,28/11/2016,bw_,oct,miniMCA,1,auto (DS),"microtops 5 h vuelo quedan, light clouds",ae_bw_oct_M,1,,,,,,,q161128oct,,, +161215,15/12/2016,fis,710,RGB,,dropbox/on the laptop,ajusté desface en el mosaico que está en Dropbox. La copia local en PC ajusté directo a la imagen enero 27. Sumé 0.35m porque salía debajo del DTM,,dsm & mosaic,1,,1,,,1,q161215710,,, +170107,07/01/2017,fis,hap,sequoia,1,,,,reflectance & NDVI,,,1,,,,q170107hap,,, +170107,07/01/2017,fis,hap,RGB,1,auto (DS),,,dsm & mosaic,1,,1,,,1,q170107hap,,, +170104,04/01/2017,nut,fx1,no,,,,,,,,,1,,,q170104fx1,,, +170109,09/01/2017,nut,fx2,sequoia,1,auto (DS),,ae_nut_jf2_Q,ndvi,,,1,1,,,q170109fx2,,, +170109,09/01/2017,nut,po5,sequoia,1,dropbox/AE,,ae_nut_po5_Q,ndvi,,,1,1,,,q170109po5,,, +170110,10/01/2017,bw_,810,FLIR,1,,,ae_bw_810_T,pix?,1,,,,,,q170110810,,, +170110,10/01/2017,frz,esc,FLIR,1,,,ae_frz_esc_T,celsius mosaic,1,,1,,,,q170110esc,1,, +170110,10/01/2017,frz,ros,FLIR,1,,,,celsius mosaic,,,1,,,,q170110ros,1,, +170110,10/01/2017,frz,ser,FLIR,1,,,,celsius mosaic,,,1,,,,q170110ser,1,, +170110,10/01/2017,bw_,810,HYPEr,1,auto (DS),irradiance from microtops,ae_bw_810_H,rfl_spr_ort,,,,,SOME DRIp PLOTS NOT COVERED,,q170110810,,, +170110,10/01/2017,frz,esc,HYPEr,1,auto (DS),irradiance from microtops,ae_frz_esc_H,rfl_spr_ort_geo,,,1,,,,q170110esc,1,, +170110,10/01/2017,frz,ros,HYPEr,1,auto (DS),irradiance from microtops,,rfl_spr_ort_geo,,,1,,,,q170110ros,1,, +170110,10/01/2017,frz,ser,HYPEr,1,auto (DS),irradiance from microtops,,rfl_spr_ort_geo,,,1,,,,q170110ser,1,, +170110,10/01/2017,nut,poc,miniMCA,1,auto (DS),,ae_nut_poc_M,ndvi,,,1,,,,m170110poc,,, +170110,10/01/2017,nut,fx2,miniMCA,1,auto (DS),,ae_nut_jf2_M,ndvi,,,1,,,,m170110fx2,,, +170110,10/01/2017,nut,po5,miniMCA,1,auto (DS),,ae_nut_po5_M,ndvi,,,1,,,,m170110po5,,, +170110,10/01/2017,nut,po4,miniMCA,1,auto (DS),,ae_nut_po4_M,ndvi,,,1,,,,m170110po4,,, +170110,10/01/2017,nut,poc,sequoia,1,dropbox/AE,,ae_nut_poc_Q,ndvi,,,1,1,,,q170110poc,,, +170112,12/01/2017,nut,val,sequoia,1,on the laptop,on the laptop & Dropbox AE,ae_nut_val_Q,ndvi,,,1,0,,,q170112val,,, +170112,12/01/2017,nut,tyc,sequoia,1,on the laptop,on the laptop & Dropbox AE,ae_nut_tyc_Q,ndvi,,,1,0,,,q170112tyc,,, +170113,13/01/2017,nut,ae1,sequoia,1,,"too small weat. We repeated later. bat11, 65% 11.5v 11min",,,,,0,0,,,q170113ae1,,, +170117,17/01/2017,frz,esc,FLIR,1,auto (DS),clouds on the image,ae_frz_esc_T,celsius mosaic,,,1,,,,q170117esc,1,, +170117,17/01/2017,frz,ros,FLIR,1,auto (DS),clouds on the image,,pno,,,,,,,q170117ros,0,, +170117,17/01/2017,frz,ser,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170117ser,1,, +170117,17/01/2017,bw_,810,FLIR,1,auto (DS),,ae_bw_810_T,pix?,1,,,,,,q170117810,,, +170117,17/01/2017,frz,esc,HYPEr,1,auto (DS),clouds on the image,ae_frz_esc_H,bsq,,,-,,,,q170117esc,0,, +170117,17/01/2017,frz,ros,HYPEr,1,auto (DS),clouds on the image,,bsq,,,-,,,,q170117ros,0,, +170117,17/01/2017,frz,ser,HYPEr,1,auto (DS),,,rfl_spr_ort_geo,,,1,,,,q170117ser,1,, +170117,17/01/2017,bw_,810,HYPEr,1,auto (DS),,ae_bw_810_H,rfl_spr_ort,,,,,SOME DRIp PLOTS NOT COVERED,,q170117810,,, +170119,19/01/2017,nut,ae1,sequoia,1,dropbox/AE,"clouds, wind to W 3.5m/s, batt12 61% 11.3v 11.5min",ae_nut_ae1_Q,ndvi,,,1,1,,,q170119ae1,,, +170123,23/01/2017,bw_,810,FLIR,1,auto (DS),,ae_bw_810_T,pix?,1,,,,,,q170123810,,, +170123,23/01/2017,frz,esc,FLIR,1,auto (DS),,ae_frz_esc_T,celsius mosaic,,,1,,,,q170123esc,1,, +170123,23/01/2017,frz,ros,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170123ros,1,, +170123,23/01/2017,frz,ser,FLIR,1,auto (DS),,ae_fis_710_R,celsius mosaic,,,1,,,,q170123ser,1,, +170123,23/01/2017,bw_,810,HYPEr,1,auto (DS),,ae_bw_810_H,rfl_spr_ort,,,,,SOME DRIp PLOTS NOT COVERED,,q170123810,,, +170123,23/01/2017,frz,esc,HYPEr,1,auto (DS),,ae_frz_esc_H,rfl_spr_ort_geo,,,1,,,,q170123esc,1,, +170123,23/01/2017,frz,ros,HYPEr,1,auto (DS),,ae_fis_hap_Q,rfl_spr_ort_geo,,,1,,,,q170123ros,1,, +170123,23/01/2017,frz,ser,HYPEr,1,auto (DS),,,rfl_spr_ort_geo,,,1,,,,q170123ser,1,, +170123,23/01/2017,fis,hap,RGB,1,on the laptop,"clear, low wind N",ae_fis_710_R,dsm & mosaic,1,,1,,,1,q170123hap,,, +170123,23/01/2017,fis,hap,sequoia,1,,"clear, low wind N",ae_fis_hap_Q,reflectance & NDVI,,,1,,,,q170123hap,,, +170123,23/01/2017,nut,ae2,miniMCA,1,dropbox/AE,"clouds around and wind, inverted drives 2 and 4 so they have wrong exposition time",,ndvi,,,1,,,,m170123ae2,,, +170125,25/01/2017,fis,hap,RGB,1,on the laptop,,,dsm & mosaic,1,,1,,,1,q170125hap,,, +170125,25/01/2017,fis,hap,sequoia,1,,,,reflectance & NDVI,,,1,,,,q170125hap,,, +170125,25/01/2017,nut,ae2,sequoia,1,,,,ndvi,,,1,1,,,q170125ae2,,, +170126,26/01/2017,nut,sa1,sequoia,1,dropbox/AE,"clouds, wind to W 5m/s",,ndvi,,,1,1,,,q170126sa1,,, +170127,27/01/2017,fis,hap,RGB,1,on the laptop,DSM has bad artifacts. Due to low overlapp? Was very windy,ae_fis_710_R,dsm & mosaic,1,,1,,,1,q170127hap,,, +170127,27/01/2017,fis,hap,sequoia,1,,,ae_fis_hap_Q,reflectance & NDVI,,,1,,,,q170127hap,,, +170130,30/01/2017,ceb,ofi,RGB,1,,"Respaldo raw data en disco externo ADATA ""A 2017"". oficinas cebeb",,mosaico,,,,,,,q170130ofi,,, +170131,31/01/2017,nut,ma1,sequoia,1,on the laptop,"proyecto en pc, nubes",,ndvi,,,0,1,,,q170131ma1,,, +170201,01/02/2017,nut,coc,sequoia,1,on the laptop,"mosaico en PC, claro",,ndvi,,,1,1,,,q170201coc,,, +170201,01/02/2017,nut,d16,sequoia,1,on the laptop,"Block1216, mosaico en PC, claro",,ndvi,,,1,1,,,q170201d16,,, +170201,01/02/2017,nut,po5,sequoia,1,on the laptop,"mosaico en PC, claro",,ndvi,,,1,1,,,q170201po5,,, +170202,02/02/2017,bw_,810,FLIR,1,auto (DS),,ae_bw_810_T,pix?,1,,,,,,q170202810,,, +170202,02/02/2017,frz,esc,FLIR,1,auto (DS),,ae_frz_esc_T,celsius mosaic,,,1,,,,q170202esc,1,, +170202,02/02/2017,frz,ros,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170202ros,1,, +170202,02/02/2017,frz,ser,FLIR,1,auto (DS),,ae_fis_710_R,celsius mosaic,,,1,,,,q170202ser,1,, +170202,02/02/2017,bw_,810,HYPEr,1,auto (DS),,ae_bw_810_H,rfl_spr_ort,,,,,SOME DRIp PLOTS NOT COVERED,,q170202810,,, +170202,02/02/2017,frz,esc,HYPEr,1,auto (DS),,ae_frz_esc_H,rfl_spr_ort_geo,,1,1,,,,q170202esc,1,, +170202,02/02/2017,frz,ros,HYPEr,1,auto (DS),,ae_fis_hap_Q,rfl_spr_ort_geo,,1,1,,,,q170202ros,1,, +170202,02/02/2017,frz,ser,HYPEr,1,auto (DS),,,rfl_spr_ort_geo,,1,1,,,,q170202ser,1,, +170202,02/02/2017,nut,ole,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170202ole,,, +170202,02/02/2017,nut,521,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170202521,,, +170202,02/02/2017,nut,pad,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170202pad,,, +170203,03/02/2017,nut,ole,sequoia,1,on the laptop/dropboxAE,junto ole y pad,,ndvi,,,1,1,,,q170203ole,,, +170203,03/02/2017,nut,pad,sequoia,1,on the laptop/dropboxAE,junto ole y pad,,ndvi,,,1,1,,,q170203pad,,, +170203,03/02/2017,nut,111,sequoia,1,auto (DS),,,ndvi,,,0,0,,,q170203111,,, +170202,02/02/2017,nut,710,sequoia,1,,,,,,,0,,,,q170202710,,, +170207,07/02/2017,ceb,ce1,NIR,1,,"Respaldo en disco externo ADATA ""A 2017""",,,,,,,,,q170207ce1,,, +170207,07/02/2017,ceb,ce2,NIR,1,,"Respaldo en disco externo ADATA ""A 2017""",,,,,,,,,q170207ce2,,, +170207,07/02/2017,nut,fx1,sequoia,1,auto (DS),,,ndvi,,,1,0,,,q170207fx1,,, +170207,07/02/2017,nut,fx2,sequoia,1,on the laptop/dropboxAE,,,ndvi,,,1,1,,,q170207fx2,,, +170210,10/02/2017,bw_,810,FLIR,1,auto (DS),,,pix?,1,,,,,,q170210810,,,pedacito sur +170210,10/02/2017,frz,esc,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170210esc,1,, +170210,10/02/2017,frz,ros,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170210ros,1,, +170210,10/02/2017,frz,ser,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170210ser,1,, +170210,10/02/2017,bw_,810,HYPEr,1,auto (DS),paneles referencia,,rfl_spr_ort,,,,,SOME DRIp PLOTS NOT COVERED,,q170210810,,, +170210,10/02/2017,frz,esc,HYPEr,1,auto (DS),,,rfl_spr_ort_geo,,1,1,,,,q170210esc,1,, +170210,10/02/2017,frz,ros,HYPEr,1,auto (DS),,,rfl_spr_ort_geo,,1,1,,,,q170210ros,1,, +170210,10/02/2017,frz,ser,HYPEr,1,auto (DS),,,rfl_spr_ort_geo,,,1,,,,q170210ser,1,, +170210,10/02/2017,nut,fx2,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170210fx2,,, +170210,10/02/2017,fis,710,RGB,1,on the laptop,,,dsm & mosaic,1,,1,,,,q170210710,,, +170210,10/02/2017,fis,hap,RGB,1,on the laptop,,,dsm & mosaic,1,,1,,,1,q170210hap,,, +170211,11/02/2017,nut,po5,sequoia,1,on the laptop,copiado al PC proyecto. sin biomasa?,,ndvi,,,1,0,,,q170211po5,,, +170211,11/02/2017,nut,coc,sequoia,1,on the laptop,copiado al PC proyecto.,,ndvi,,,1,1,,,q170211coc,,, +170211,11/02/2017,nut,d16,sequoia,1,on the laptop,"Block1216,copiado al PC proyecto. sin biomasa?",,ndvi,,,1,0,,,q170211d16,,, +170213,13/02/2017,fis,hap,RGB,1,on the laptop/ADATA A2017,,,dsm & mosaic,1,,1,,,1,q170213hap,,, +170213,13/02/2017,fis,hap,sequoia,1,,,,reflectance & NDVI,,,1,,,,q170213hap,,, +170215,15/02/2017,fis,hap,RGB,1,on the laptop/ADATA A2017,,,dsm & mosaic,1,,1,,,1,q170215hap,,, +170215,15/02/2017,frz,ser,RGB,1,,,,mosaico,,,1,,,,q170215ser,1,, +170215,15/02/2017,fis,hap,sequoia,1,,,,reflectance & NDVI,,,1,,,,q170215hap,,, +170216,16/02/2017,bw_,810,FLIR,1,auto (DS),,ae_bw_810_T,pix?,1,,,,,,q170216810,,,pedacitito al este +170216,16/02/2017,frz,esc,FLIR,1,auto (DS),,ae_frz_esc_T,celsius mosaic,,,1,,,,q170216esc,1,,pedacitito al este +170216,16/02/2017,frz,ser,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170216ser,1,,pedacitito al este +170216,16/02/2017,bw_,810,HYPEr,1,auto (DS),"nubes alrededor, jaz_bw",ae_bw_810_H,rfl_spr_ort,,,,,SOME DRIp PLOTS NOT COVERED,,q170216810,,,pedacitito al este +170216,16/02/2017,frz,esc,HYPEr,1,auto (DS),"nubes cerca,jaz_stars",ae_frz_esc_H,rfl_spr_ort_geo,,,1,,,,q170216esc,1,,pedacitito al este +170216,16/02/2017,frz,ser,HYPEr,1,auto (DS),"nubes alrededor,jaz_stars",,rfl_spr_ort_geo,,,1,,,,q170216ser,1,,pedacitito al este +170220,20/02/2017,frz,ros,NIR,1,,no RTK,,mosaico,,,…,,,,q170220ros,1,,pedacitito al este +170220,20/02/2017,fis,hap,RGB,1,on the laptop/ADATA A2017,,,dsm & mosaic,1,,1,,,1,q170220hap,,,pedacitito al este +170220,20/02/2017,fis,710,RGB,1,on the laptop/ADATA A2017,,,dsm & mosaic,1,,1,,,,q170220710,,,pedacitito al este +170220,20/02/2017,fis,hap,sequoia,1,,,,reflectance & NDVI,,,1,,,,q170220hap,,,pedacitito al este +170221,21/02/2017,nut,po5,sequoia,1,on the laptop,copiado al PC,,ndvi,,,1,1,,,q170221po5,,,pedacitito al este +170221,21/02/2017,nut,coc,sequoia,1,on the laptop,copiado al PC,,ndvi,,,1,1,,,q170221coc,,,pedacitito al este +170221,21/02/2017,nut,d16,sequoia,1,on the laptop,"Block1216,copiado al PC",,ndvi,,,1,1,,,q170221d16,,,pedacitito al este +170222,22/02/2017,bw_,810,FLIR,1,auto (DS),,,pix?,1,,,,,,q170222810,,,pedacitito al este +170222,22/02/2017,frz,esc,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170222esc,1,, +170222,22/02/2017,frz,ros,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170222ros,1,, +170222,22/02/2017,frz,ser,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170222ser,1,, +170222,22/02/2017,bw_,810,HYPEr,1,auto (DS),"despejado, jaz_170222",,rfl_spr_ort,0,,,,SOME DRIp PLOTS NOT COVERED,,q170222810,,, +170222,22/02/2017,frz,esc,HYPEr,1,auto (DS),"despejado, jaz_170222",,rfl_spr_ort_geo,,1,1,,,,q170222esc,1,, +170222,22/02/2017,frz,ros,HYPEr,1,auto (DS),"despejado, jaz_170222",,rfl_spr_ort_geo,,,1,,,,q170222ros,1,, +170222,22/02/2017,frz,ser,HYPEr,1,auto (DS),"despejado, jaz_170222",,rfl_spr_ort_geo,,1,1,,,,q170222ser,1,, +170222,22/02/2017,nut,521&230,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170222521&230,,, +170222,22/02/2017,fis,hap,RGB,1,on the laptop/ADATA A2017,,,dsm & mosaic,1,,1,,,1,q170222hap,,, +170227,27/02/2017,frz,esc,RGB,1,,no RTK,,mosaico,,,…,,,,q170227esc,1,, +170301,01/03/2017,nut,sa1,sequoia,1,on the laptop,copiado al pc el mosaico. cirrus,,ndvi,,,1,1,,,q170301sa1,,, +170301,01/03/2017,nut,sa2,sequoia,1,on the laptop,copiado proyecto al pc. cirrus,,ndvi,,,1,1,,,q170301sa2,,, +170302,02/03/2017,nut,cas,sequoia,1,dropbox/AE,,,ndvi,,,1,1,,,q170302cas,,, +170302,02/03/2017,nut,521&230,sequoia,1,dropbox/AE,,,ndvi,,,1,,,,q170302521&230,,, +170302,02/03/2017,nut,521&230,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170302521&230,,, +170308,08/03/2017,fis,hap,RGB,1,on the laptop/ADATA A2017,clouds,,dsm & mosaic,1,,1,,,1,q170308hap,,, +170310,10/03/2017,nut,521&230,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170310521&230,,, +170310,10/03/2017,nut,521&230,sequoia,1,dropbox/AE,,,ndvi,,,1,,,,q170310521&230,,, +170310,10/03/2017,bw_,810,FLIR,1,,,,pix?,1,,,,,,q170310810,,, +170310,10/03/2017,frz,ros,FLIR,1,,,,celsius mosaic,,,1,,,,q170310ros,1,, +170310,10/03/2017,frz,ser,FLIR,1,,,,celsius mosaic,,,1,,,,q170310ser,1,, +170310,10/03/2017,frz,ros,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170310ros,1,, +170310,10/03/2017,frz,ser,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170310ser,1,, +170313,13/03/2017,nut,po5,sequoia,1,on the laptop,,,ndvi,,,1,1,,,q170313po5,,, +170313,13/03/2017,nut,coc,sequoia,1,on the laptop,copiado mosaico al pc,,ndvi,,,1,1,,,q170313coc,,, +170313,13/03/2017,nut,d16,sequoia,1,on the laptop,"Block1216,copiado mosaico al pc",,ndvi,,,1,1,,,q170313d16,,, +170315,15/03/2017,bw_,810,FLIR,1,,,,pix?,1,,,,SOME DRIp PLOTS NOT COVERED,,q170315810,,, +170315,15/03/2017,frz,esc,FLIR,1,,,,celsius mosaic,,,1,,,,q170315esc,1,, +170315,15/03/2017,frz,ros,FLIR,1,,,,celsius mosaic,,,1,,,,q170315ros,1,, +170315,15/03/2017,frz,ser,FLIR,1,,,,celsius mosaic,,,1,,,,q170315ser,1,, +170315,15/03/2017,bw_,810,HYPEr,1,,,,rfl_spr_ort,0,,,,,,q170315810,,, +170315,15/03/2017,frz,esc,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170315esc,1,, +170315,15/03/2017,frz,ros,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170315ros,1,, +170315,15/03/2017,frz,ser,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170315ser,1,, +170315,15/03/2017,nut,521&230,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170315521&230,,, +170315,15/03/2017,nut,521&230,sequoia,1,dropbox/AE,,,ndvi,-,,1,,,,q170315521&230,,, +170324,24/03/2017,est,bw3,RGB,1,,"Respaldo raw data en disco externo ADATA ""A 2017"". despejado",,pix,-,,rtk 521,,,,q170324bw3,,, +170324,24/03/2017,est,bw4,RGB,1,,"Respaldo raw data en disco externo ADATA ""A 2017"". despejado",,pix,-,,rtk 521,,,,q170324bw4,,, +170329,29/03/2017,bw_,810,FLIR,1,,,,pix?,1,,,,,,q170329810,,,parte superior +170329,29/03/2017,frz,esc,FLIR,1,,,,celsius mosaic,-,,1,,,,q170329esc,1,, +170329,29/03/2017,frz,ros,FLIR,1,,,,celsius mosaic,-,,1,,,,q170329ros,1,, +170329,29/03/2017,frz,ser,FLIR,1,,,,celsius mosaic,-,,1,,,,q170329ser,1,, +170329,29/03/2017,sed,sed,FLIR,1,,,,celsius mosaic,,,1,,,,q170329sed,,, +170329,29/03/2017,bw_,810,HYPEr,1,,,,rfl_spr_ort,0,,,,"SOME DRIp PLOTS NOT COVERED, drip not adjusted",,q170329810,,, +170329,29/03/2017,frz,esc,HYPEr,1,,,,rfl_spr_ort_geo,-,,1,,,,q170329esc,1,, +170329,29/03/2017,frz,ros,HYPEr,1,,,,rfl_spr_ort_geo,-,,1,,,,q170329ros,1,, +170329,29/03/2017,frz,ser,HYPEr,1,,,,rfl_spr_ort_geo,-,,1,,,,q170329ser,1,, +170329,29/03/2017,nut,521&230,miniMCA,1,auto (DS),,,ndvi,-,,1,,,,m170329521&230,,, +170329,29/03/2017,sed,sed,miniMCA,1,,,,mosaico,-,,1,,,,q170329sed,,, +170330,30/03/2017,fis,hap,RGB,1,on the laptop/ADATA A2017,"there was an issue with the datum in pix 4D. I rested 32.316 m to get the plant height, but it looks some cm lower than the previous date.",,dsm & mosaic,1,,1,,,1,q170330hap,,, +170330,30/03/2017,fis,hap,sequoia,1,,,,reflectance & NDVI,1,,1,,,,q170330hap,,, +170403,03/04/2017,nut,po5,sequoia,1,on the laptop,proyecto copiado a PC,,pix…,,,0,1,,,q170403po5,,, +170403,03/04/2017,nut,coc,sequoia,1,on the laptop,proyecto copiado a PC,,ndvi,,,1,1,,,q170403coc,,, +170403,03/04/2017,nut,d16,sequoia,1,on the laptop,"Block1216,mosaico copiado a PC",,ndvi,,,1,1,,,q170403d16,,, +170405,05/04/2017,bw_,810,FLIR,1,,,,pix?,1,,,,,,q170405810,,, +170405,05/04/2017,frz,esc,FLIR,1,,,,celsius mosaic,,,1,,,,q170405esc,1,, +170405,05/04/2017,frz,ros,FLIR,1,,,,celsius mosaic,,,1,,,,q170405ros,1,, +170405,05/04/2017,frz,ser,FLIR,1,,,,celsius mosaic,,,1,,,,q170405ser,1,, +170405,05/04/2017,bw_,810,HYPEr,1,,checar pasadas extras,,rfl_spr_ort,0,,,,"SOME DRIp PLOTS NOT COVERED, drip not adjusted nor october area",,q170405810,,, +170405,05/04/2017,frz,esc,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170405esc,1,, +170405,05/04/2017,frz,ros,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170405ros,1,, +170405,05/04/2017,frz,ser,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170405ser,1,, +170405,05/04/2017,nut,521&230,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170405521&230,,, +170406,06/04/2017,nut,521&230,sequoia,1,dropbox/AE,,,ndvi,,,1,,,,q170406521&230,,, +170411,11/04/2017,bw_,810,FLIR,1,,out of focus,,tif,-,,,,,,q170411810,,, +170411,11/04/2017,frz,esc,FLIR,1,,,,celsius mosaic,-,,1,,,,q170411esc,1,, +170411,11/04/2017,bw_,810,HYPEr,1,,,,rfl_spr_ort,0,,,,"SOME DRIp PLOTS NOT COVERED, drip not adjusted nor october area, nor 2 IR",,q170411810,,, +170411,11/04/2017,frz,esc,HYPEr,1,,,,rfl_spr_ort_geo,-,,1,,,,q170411esc,1,, +170411,11/04/2017,sed,sed,miniMCA,1,,,,mosaico,-,,1,,,,q170411sed,,, +170411,11/04/2017,sed,sed,FLIR,1,,"out of focus, 20cm",,tif,-,,,,,,q170411sed,,, +170411,11/04/2017,bw_,hea,miniMCA,1,,,,ndvi,0,,1,,,,q170411hea,,, +170411,11/04/2017,bw_,hea,FLIR,1,,"out of focus, 20cm",,tif,0,,,,,,q170411hea,,, +170418,18/04/2017,frz,esc,FLIR,1,,,,celsius mosaic,,,1,,,,q170418esc,1,, +170418,18/04/2017,frz,ros,FLIR,1,,,,celsius mosaic,,,1,,,,q170418ros,1,, +170418,18/04/2017,frz,ser,FLIR,1,,,,celsius mosaic,,,1,,,,q170418ser,1,, +170418,18/04/2017,sed,sed,FLIR,1,,,,celsius mosaic,,,1,,,,q170418sed,,, +170418,18/04/2017,frz,esc,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170418esc,1,, +170418,18/04/2017,frz,ros,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170418ros,1,, +170418,18/04/2017,frz,ser,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170418ser,1,, +170426,26/04/2017,sed,sed,FLIR,1,,,,celsius mosaic,,,1,,,,q170426sed,,, +170426,26/04/2017,sed,sed,miniMCA,1,,,,mosaico,,,1,,,,q170426sed,,, +170426,26/04/2017,bw_,sed,FLIR,1,,también bw heat salió en la foto,,pno…,,,,,,,q170426sed,,, +170502,02/05/2017,bw_,hea,FLIR,1,,,,cel,,,,,ok,,q170502hea,,, +170502,02/05/2017,bw_,hea,HYPEr,1,,,,rfl_spr_ort,,,,,ok,,q170502hea,,, +170511,11/05/2017,sed,sed,FLIR,,,,,celsius mosaic,,,1,,,,q170511sed,,, +170511,11/05/2017,sed,sed,miniMCA,1,,,,mosaico,,,1,,,,q170511sed,,, +170511,11/05/2017,bw_,hea,FLIR,,,,,cel,,,,,ok,,q170511hea,,, +170511,11/05/2017,bw_,hea,HYPEr,,,,,capture error,,,,,issues,,q170511hea,,, +170512,12/05/2017,bw_,sed,RGB,1,auto (DS),,,mosaico,,,1,,,,q170512sed,,, +170512,12/05/2017,bw_,hea,RGB,1,auto (DS),,,mosaico,,,1,,,,q170512hea,,, +170522,22/05/2017,bw_,hea,FLIR,1,auto (DS),,,cel,,,,,ok,,q170522hea,,, +170522,22/05/2017,bw_,hea,HYPEr,1,auto (DS),"cirrus, Jaz 80 81 82 83",,rfl_spr_ort,,,,,issues,,q170522hea,,, +170531,31/05/2017,bw_,hea,FLIR,,,,,cel,,,,,ok,,q170531hea,,, +170531,31/05/2017,bw_,hea,HYPEr,1,,very windy,,rfl_spr_ort,,,,,issues,,q170531hea,,, +170531,31/05/2017,sed,sed,FLIR,1,,"clear sky, windy",,celsius mosaic,,,1,,,,q170531sed,,, +170531,31/05/2017,sed,sed,miniMCA,1,,"very windy, weeds all around",,mosaico,,,1,,,,q170531sed,,, +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, diff --git a/r/shiny_extractApp/helpers.R b/r/shiny_extractApp/helpers.R new file mode 100644 index 0000000..548fbe2 --- /dev/null +++ b/r/shiny_extractApp/helpers.R @@ -0,0 +1,35 @@ +saveData <- function(data) { + #data <- t(data) + + #test to save to file + write.csv(data, file="C://Dropbox//data//shiny_output_test.csv") +} + +#Load data function... +loadDBData <- function() { + # create a connection to a DB in postres + # save the password that we can "hide" it as best as we can by collapsing it + pw <- { + "cimmyt" + } + + # loads the PostgreSQL driver + drv <- dbDriver("PostgreSQL") + # creates a connection to the postgres database + # note that "con" will be used later in each connection to the database + # here the connection values should be specified + connection <- dbConnect(drv, dbname = "ceneb_nut", + host = "localhost", port = 5432, + user = "postgres", password = pw) + rm(pw) # removes the password + + # fetch the data from postgreSQL #capture" table + df_log <- dbGetQuery(connection, "SELECT * from capture") #Returns a dataframe type + + # close the connection when finished + dbDisconnect(connection) + dbUnloadDriver(drv) + ##>>>>>>>>>>>>># } connection to DB losed + + df_log +} \ No newline at end of file diff --git a/r/shiny_extractApp/rsconnect/shinyapps.io/nutrs/shiny_exampleapp.dcf b/r/shiny_extractApp/rsconnect/shinyapps.io/nutrs/shiny_exampleapp.dcf new file mode 100644 index 0000000..70762ef --- /dev/null +++ b/r/shiny_extractApp/rsconnect/shinyapps.io/nutrs/shiny_exampleapp.dcf @@ -0,0 +1,8 @@ +name: shiny_exampleapp +title: +account: nutrs +server: shinyapps.io +appId: 201629 +bundleId: 925472 +url: https://nutrs.shinyapps.io/shiny_exampleapp/ +when: 1501711471.56152 diff --git a/r/shiny_extractApp/server.R b/r/shiny_extractApp/server.R new file mode 100644 index 0000000..39be958 --- /dev/null +++ b/r/shiny_extractApp/server.R @@ -0,0 +1,75 @@ +#This procedure loads the log DB of the flights +#thanks https://ipub.com/shiny-crud-app/ +# https://rstudio.github.io/DT/options.html +# Thanks to https://shiny.rstudio.com/articles/persistent-data-storage.html +#thanks to R documentation +#Edited: Lorena + +library (raster) +library (sp) +library(rgdal) +require("RPostgreSQL") +library(rgdal) +source("helpers.R") + +shinyServer(function(input, output,session) { + + #############Get the data from the DB + df_log <- loadDBData() + + #Get the available unique data from the log table + sensors <- unique(df_log$sensor) #sensors + #date <- unique(df_log$cap_date) #dates + trials <- unique(df_log$area) #trials + + + #get the sensors as the options of a check box + output$choose_cam <- renderUI({ + # If missing input, return to avoid error later in function + #if(is.null(sensors)) + # return() + + # Create the checkboxes and select them all by default + checkboxGroupInput("chk_cam", "Choose sensors", + choices = sensors, + selected = NULL) + }) + + #get the available trials as the options of a check box + output$choose_trial <- renderUI({ + # If missing input, return to avoid error later in function + #if(is.null(sensors)) + # return() + + # Create the checkboxes and select them all by default + checkboxGroupInput("chk_trial", "Choose trial", + choices = trials, + selected = NULL) + }) + + + #Render the table to display in the GUI + output$logTable <- DT::renderDataTable({ + + #update after submit is clicked + input$submit + #Filter the data as needed + df_log <- df_log[df_log$area %in% c(input$chk_trial) & df_log$sensor %in% c(input$chk_cam), ] + #save to csv the data + #saveData(df_log) # This works! + + #The data retrieved from the DB, filtered + df_log #This will be showed in the table UI + + + },options = list(pageLength = 15)) #show 15 rows by default + + #React when a row is selected + # (Not working yet) # ! # + # observeEvent(input$logTable_rows_selected, { + # output$txtOut <- renderText({ + # data <- loadData()[input$logTable_rows_selected,] ### loadData() function???? + # sprintf("You have selected: %s",data)}) #!# this doesnt work, how get the value selected I just get the index within the filtered table + # }) + } +) \ No newline at end of file diff --git a/r/shiny_extractApp/ui.R b/r/shiny_extractApp/ui.R new file mode 100644 index 0000000..7a02017 --- /dev/null +++ b/r/shiny_extractApp/ui.R @@ -0,0 +1,31 @@ +#show the table of the flights info + +# thanks to https://shiny.rstudio.com/articles/datatables.html +# thanks to https://gist.github.com/wch/4211337 + + +library("shiny") +library(DT) + + +shinyUI(fluidPage( + titlePanel("Log control"), + + #For the inputs + sidebarLayout( + sidebarPanel( + h3("Select options"), + uiOutput("choose_cam"), #check options cam populated by the input table + uiOutput("choose_trial") #check options trial populated by the input table + + ), + + #For the outputs + mainPanel( + h3("Log"), + DT::dataTableOutput("logTable"), + textOutput("txtOut") #here I want to show the selected row + + ) + ) +)) \ No newline at end of file diff --git a/r/shiny_extractApp/www/circles in a circle Kandinsky.jpg b/r/shiny_extractApp/www/circles in a circle Kandinsky.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e9b6c4aa148fa5052fa6c6b50931f7dd0af95446 GIT binary patch literal 2887 zcmbW!c{J4T9tZI6m|79rymu@1Ar2y7#`H=Q-y&&vrhq^Kd?MW`KQ`W)@}u2m}J$ zxeef~0m3GMNS{yu1V8`)FyJmt0_Oo95NNmm6)-P&H+&EXm>0?ih3*a*d=DH3@47efJi(3&5bT-4p*?IPU;q7@z^DgF*5Dk1z-<4B~VF zvH$?$+{J8xoYW`4oK(*BZz zqm%RHE6D3Nyl&p|zWpE|Feo@A^kGbF+~fF!#3yO#8JStx&vSBL7MGNkl~+_&)xCLJ z-+*mwYJT6@)!ozE_o07uY#cv9_)H|t&do0@eqCCotkA!0e*eMPV*dQK>jDAbf3g0S z{fA4K>*C@50R+110`UZM2Ur-wD|d=d#Ml<JRQ8k#VW*d9>+Rg!&>DaGbr zoNot*%Q0gLIeod33a%dtGo1Ir~Gh^nolTWPUj?W}Z>?M<~v=Rmc7yAb9C-o5z%T&c>^uda^RoPux zq4=V3bo7})f0)xqU25SovByu#fzEiDz67CUR5Ap1ZjuQ&h^%jW+% z>qq=L=E(jujySQSB9OQKHY`(Y%Svv@y5)L}WY1-I5Bx4%hl(DsCnq;GS09gX+vLso zsvCfmHVLh4Jy5tX9yIFYdY0eBJZO!N6XSqOX7O^}L$hosvf#WFGG zdMk&7>3gEmYTb@Z3dFkq^nXn{)jE=3PZe|0>+R+MBCJ2DV*xH&gZ+R&=cjyXSdeSm z(tH6ihVg_B-4PA$ImiKGQOY5~oe#0m^&eF+c0)s|sE_3)byd7dC0?6+G{+mN^8F=A zHy3``d_HrP(2n#YnO|aMhWk`qT_xEt!kF>1P6;)U+h&!eaz;Tp8iEJIE+#oeCCsH$ zdlwGV?l&IHTxqtyn)(MiAnjXNb)egW^|c2E$1&AmM&zXh4p7bzFal_-S5_j+zg$1R zvu&P|tkqd~W?{6Hdo;+Z)XBY%IIQWgt>nE~l z+OxhJPtk`J)B>-aquhCeZP^o)nDIj(M>@*&2Q80*rHQZapD&OOk+s3$8Yghz5K=^f zhl{s@i+7f{Cu{uGslyiNujgibh2UrI6`vWNR%*(dmE94yy^E`$66TgVT=HbZBoQBT zr*G#5&NTUWoP_kUQ~Vkmp|`SibUH>@H7NCvm|1dEJ!nQo#9GCb?thw`7?`XsSMlKh zy#)DT(?NUiTy`?T8Q~~zVw(7nEOSNkWxW%&Ij?@YhCspCXT=s4>wYvmUPYAP-D)095ljilwi=tuxs3RvnvZI!tQn-k>f_noidipdp)FVw2H)YCI zQ!=70Yq#Us{K@k#lxGsIY68h9kndhKIMhY6-xN@Gh=j4ehN21}} zPJz{(jbiKi@B1riQ~k>_OVED!(C?2%-q6a~aAR7}6hK+305t0CUIr3tD0XO;iU z{tH1sUgC$Kpuh{CXGF?J+ho|ohX7Xoox2A5GprM5$2J@x>2^LUNw?qhVtHJi1sg=> zo0|@Jh(3r}WVAPItc%j(eY3kZh!I_`^0(ObH9H8r9O2l;eSC3UX4ahWvQl_1Ms~d( zvudO|e%c0#>TQ4PSTx7_ov`LVFn3LFpi?ZpH}1XRAi+)^{2JsQJ1edWIE`N#K-y*F zR}^RQTDd5!!AefDCB8HfqoS5ljiN5uADk6`*>A;m;>-*-(k~29~L=& zsjgbNETkUI=Nb8YNc36PK<-vb68Q}xb#8-)(!drS{l0!^v(wT0Mwv75ebxlpTjD)2 z?xLt@L`I>UmpSjTRgU(&eKI;XH+X->96q4nKpllbDL<+Yh3?GyoA zz}~SRFY6Ge@wJU4 zlao>jTRW4A$8brk-}MDgCGj)LUSwGp1A@epiQXQfo>x2{Jnbn2&OK6yzvI+QYse0K hpqNH!P`6MJ3l0nL^8ejJMLK=e^nl~zs}&sLKLBl#d-DJQ literal 0 HcmV?d00001 diff --git a/r/shiny_importData/global.R b/r/shiny_importData/global.R new file mode 100644 index 0000000..1120d6f --- /dev/null +++ b/r/shiny_importData/global.R @@ -0,0 +1,3 @@ +library("shiny") +library("foreign") +library (DT) \ No newline at end of file diff --git a/r/shiny_importData/notas.txt b/r/shiny_importData/notas.txt new file mode 100644 index 0000000..e183b1a --- /dev/null +++ b/r/shiny_importData/notas.txt @@ -0,0 +1 @@ +Gracias a https://gist.github.com/SachaEpskamp/5796467 \ No newline at end of file diff --git a/r/shiny_importData/server.R b/r/shiny_importData/server.R new file mode 100644 index 0000000..3d72cb1 --- /dev/null +++ b/r/shiny_importData/server.R @@ -0,0 +1,101 @@ +shinyServer(function(input, output) { + + ### Argument names: + ArgNames <- reactive({ + Names <- names(formals(input$readFunction)[-1]) + Names <- Names[Names!="..."] + return(Names) + }) + + # Argument selector: + output$ArgSelect <- renderUI({ + if (length(ArgNames())==0) return(NULL) + + selectInput("arg","Argument:",ArgNames()) + }) + + ## Arg text field: + output$ArgText <- renderUI({ + fun__arg <- paste0(input$readFunction,"__",input$arg) + + if (is.null(input$arg)) return(NULL) + + Defaults <- formals(input$readFunction) + + if (is.null(input[[fun__arg]])) + { + textInput(fun__arg, label = "Enter value:", value = deparse(Defaults[[input$arg]])) + } else { + textInput(fun__arg, label = "Enter value:", value = input[[fun__arg]]) + } + }) + + + ### Data import: + Dataset <- reactive({ + if (is.null(input$file)) { + # User has not uploaded a file yet + return(data.frame()) + } + + args <- grep(paste0("^",input$readFunction,"__"), names(input), value = TRUE) + + argList <- list() + for (i in seq_along(args)) + { + argList[[i]] <- eval(parse(text=input[[args[i]]])) + } + names(argList) <- gsub(paste0("^",input$readFunction,"__"),"",args) + + argList <- argList[names(argList) %in% ArgNames()] + + Dataset <- as.data.frame(do.call(input$readFunction,c(list(input$file$datapath),argList))) + return(Dataset) + }) + + # Select variables: + output$varselect <- renderUI({ + + if (identical(Dataset(), '') || identical(Dataset(),data.frame())) return(NULL) + + # Variable selection: + selectInput("vars", "Variables to use:", + names(Dataset()), names(Dataset()), multiple =TRUE) + }) + + # Show table: + output$table <- DT::renderDataTable({ + + if (is.null(input$vars) || length(input$vars)==0) return(NULL) + + return(Dataset()[,input$vars,drop=FALSE]) + }) + + + ### Download dump: + + output$downloadDump <- downloadHandler( + filename = "Rdata.R", + content = function(con) { + + assign(input$name, Dataset()[,input$vars,drop=FALSE]) + + dump(input$name, con) + } + ) + + ### Download save: + + output$downloadSave <- downloadHandler( + filename = "Rdata.RData", + content = function(con) { + + assign(input$name, Dataset()[,input$vars,drop=FALSE]) + + save(list=input$name, file=con) + } + ) + +}) + + diff --git a/r/shiny_importData/ui.R b/r/shiny_importData/ui.R new file mode 100644 index 0000000..90e377e --- /dev/null +++ b/r/shiny_importData/ui.R @@ -0,0 +1,70 @@ + +shinyUI(pageWithSidebar( + + # Header: + headerPanel("R data reader"), + + # Input in sidepanel: + sidebarPanel( + tags$style(type='text/css', ".well { max-width: 20em; }"), + # Tags: + tags$head( + tags$style(type="text/css", "select[multiple] { width: 100%; height:10em}"), + tags$style(type="text/css", "select { width: 100%}"), + tags$style(type="text/css", "input { width: 19em; max-width:100%}") + ), + + # Select filetype: + selectInput("readFunction", "Function to read data:", c( + # Base R: + "read.table", + "read.csv", + "read.csv2", + "read.delim", + "read.delim2", + + # foreign functions: + "read.spss", + "read.arff", + "read.dbf", + "read.dta", + "read.epiiinfo", + "read.mtp", + "read.octave", + "read.ssd", + "read.systat", + "read.xport", + + # Advanced functions: + "scan", + "readLines" + )), + + # Argument selecter: + htmlOutput("ArgSelect"), + + # Argument field: + htmlOutput("ArgText"), + + # Upload data: + fileInput("file", "Upload data-file:"), + + # Variable selection: + htmlOutput("varselect"), + + br(), + + textInput("name","Dataset name:","Data"), + + downloadLink('downloadDump', 'Download source'), + downloadLink('downloadSave', 'Download binary') + + ), + + # Main: + mainPanel( + + DT::dataTableOutput("table") + + ) +)) \ No newline at end of file diff --git a/r/shiny_listFiles/data/AE_vuelos.csv b/r/shiny_listFiles/data/AE_vuelos.csv new file mode 100644 index 0000000..dce1746 --- /dev/null +++ b/r/shiny_listFiles/data/AE_vuelos.csv @@ -0,0 +1,211 @@ +Date,Date_format,Rol,Area,Sensor,Downloaded,Backup stage,Notes,plan,stage,shared_Mrgt/involved,Julia,GCP,GS_grande,L1,temp_download,check,extract?,,nu7 +161026,26/10/2016,fis,710,RGB,,auto (DS),mosaico Fis necesita ajuste por desfase. Hap ya Ajustado,,dsm & mosaic,1,,1,,,,q161026710,,, +161128,28/11/2016,bw_,oct,miniMCA,1,auto (DS),"microtops 5 h vuelo quedan, light clouds",ae_bw_oct_M,1,,,,,,,q161128oct,,, +161215,15/12/2016,fis,710,RGB,,dropbox/on the laptop,ajusté desface en el mosaico que está en Dropbox. La copia local en PC ajusté directo a la imagen enero 27. Sumé 0.35m porque salía debajo del DTM,,dsm & mosaic,1,,1,,,1,q161215710,,, +170107,07/01/2017,fis,hap,sequoia,1,,,,reflectance & NDVI,,,1,,,,q170107hap,,, +170107,07/01/2017,fis,hap,RGB,1,auto (DS),,,dsm & mosaic,1,,1,,,1,q170107hap,,, +170104,04/01/2017,nut,fx1,no,,,,,,,,,1,,,q170104fx1,,, +170109,09/01/2017,nut,fx2,sequoia,1,auto (DS),,ae_nut_jf2_Q,ndvi,,,1,1,,,q170109fx2,,, +170109,09/01/2017,nut,po5,sequoia,1,dropbox/AE,,ae_nut_po5_Q,ndvi,,,1,1,,,q170109po5,,, +170110,10/01/2017,bw_,810,FLIR,1,,,ae_bw_810_T,pix?,1,,,,,,q170110810,,, +170110,10/01/2017,frz,esc,FLIR,1,,,ae_frz_esc_T,celsius mosaic,1,,1,,,,q170110esc,1,, +170110,10/01/2017,frz,ros,FLIR,1,,,,celsius mosaic,,,1,,,,q170110ros,1,, +170110,10/01/2017,frz,ser,FLIR,1,,,,celsius mosaic,,,1,,,,q170110ser,1,, +170110,10/01/2017,bw_,810,HYPEr,1,auto (DS),irradiance from microtops,ae_bw_810_H,rfl_spr_ort,,,,,SOME DRIp PLOTS NOT COVERED,,q170110810,,, +170110,10/01/2017,frz,esc,HYPEr,1,auto (DS),irradiance from microtops,ae_frz_esc_H,rfl_spr_ort_geo,,,1,,,,q170110esc,1,, +170110,10/01/2017,frz,ros,HYPEr,1,auto (DS),irradiance from microtops,,rfl_spr_ort_geo,,,1,,,,q170110ros,1,, +170110,10/01/2017,frz,ser,HYPEr,1,auto (DS),irradiance from microtops,,rfl_spr_ort_geo,,,1,,,,q170110ser,1,, +170110,10/01/2017,nut,poc,miniMCA,1,auto (DS),,ae_nut_poc_M,ndvi,,,1,,,,m170110poc,,, +170110,10/01/2017,nut,fx2,miniMCA,1,auto (DS),,ae_nut_jf2_M,ndvi,,,1,,,,m170110fx2,,, +170110,10/01/2017,nut,po5,miniMCA,1,auto (DS),,ae_nut_po5_M,ndvi,,,1,,,,m170110po5,,, +170110,10/01/2017,nut,po4,miniMCA,1,auto (DS),,ae_nut_po4_M,ndvi,,,1,,,,m170110po4,,, +170110,10/01/2017,nut,poc,sequoia,1,dropbox/AE,,ae_nut_poc_Q,ndvi,,,1,1,,,q170110poc,,, +170112,12/01/2017,nut,val,sequoia,1,on the laptop,on the laptop & Dropbox AE,ae_nut_val_Q,ndvi,,,1,0,,,q170112val,,, +170112,12/01/2017,nut,tyc,sequoia,1,on the laptop,on the laptop & Dropbox AE,ae_nut_tyc_Q,ndvi,,,1,0,,,q170112tyc,,, +170113,13/01/2017,nut,ae1,sequoia,1,,"too small weat. We repeated later. bat11, 65% 11.5v 11min",,,,,0,0,,,q170113ae1,,, +170117,17/01/2017,frz,esc,FLIR,1,auto (DS),clouds on the image,ae_frz_esc_T,celsius mosaic,,,1,,,,q170117esc,1,, +170117,17/01/2017,frz,ros,FLIR,1,auto (DS),clouds on the image,,pno,,,,,,,q170117ros,0,, +170117,17/01/2017,frz,ser,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170117ser,1,, +170117,17/01/2017,bw_,810,FLIR,1,auto (DS),,ae_bw_810_T,pix?,1,,,,,,q170117810,,, +170117,17/01/2017,frz,esc,HYPEr,1,auto (DS),clouds on the image,ae_frz_esc_H,bsq,,,-,,,,q170117esc,0,, +170117,17/01/2017,frz,ros,HYPEr,1,auto (DS),clouds on the image,,bsq,,,-,,,,q170117ros,0,, +170117,17/01/2017,frz,ser,HYPEr,1,auto (DS),,,rfl_spr_ort_geo,,,1,,,,q170117ser,1,, +170117,17/01/2017,bw_,810,HYPEr,1,auto (DS),,ae_bw_810_H,rfl_spr_ort,,,,,SOME DRIp PLOTS NOT COVERED,,q170117810,,, +170119,19/01/2017,nut,ae1,sequoia,1,dropbox/AE,"clouds, wind to W 3.5m/s, batt12 61% 11.3v 11.5min",ae_nut_ae1_Q,ndvi,,,1,1,,,q170119ae1,,, +170123,23/01/2017,bw_,810,FLIR,1,auto (DS),,ae_bw_810_T,pix?,1,,,,,,q170123810,,, +170123,23/01/2017,frz,esc,FLIR,1,auto (DS),,ae_frz_esc_T,celsius mosaic,,,1,,,,q170123esc,1,, +170123,23/01/2017,frz,ros,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170123ros,1,, +170123,23/01/2017,frz,ser,FLIR,1,auto (DS),,ae_fis_710_R,celsius mosaic,,,1,,,,q170123ser,1,, +170123,23/01/2017,bw_,810,HYPEr,1,auto (DS),,ae_bw_810_H,rfl_spr_ort,,,,,SOME DRIp PLOTS NOT COVERED,,q170123810,,, +170123,23/01/2017,frz,esc,HYPEr,1,auto (DS),,ae_frz_esc_H,rfl_spr_ort_geo,,,1,,,,q170123esc,1,, +170123,23/01/2017,frz,ros,HYPEr,1,auto (DS),,ae_fis_hap_Q,rfl_spr_ort_geo,,,1,,,,q170123ros,1,, +170123,23/01/2017,frz,ser,HYPEr,1,auto (DS),,,rfl_spr_ort_geo,,,1,,,,q170123ser,1,, +170123,23/01/2017,fis,hap,RGB,1,on the laptop,"clear, low wind N",ae_fis_710_R,dsm & mosaic,1,,1,,,1,q170123hap,,, +170123,23/01/2017,fis,hap,sequoia,1,,"clear, low wind N",ae_fis_hap_Q,reflectance & NDVI,,,1,,,,q170123hap,,, +170123,23/01/2017,nut,ae2,miniMCA,1,dropbox/AE,"clouds around and wind, inverted drives 2 and 4 so they have wrong exposition time",,ndvi,,,1,,,,m170123ae2,,, +170125,25/01/2017,fis,hap,RGB,1,on the laptop,,,dsm & mosaic,1,,1,,,1,q170125hap,,, +170125,25/01/2017,fis,hap,sequoia,1,,,,reflectance & NDVI,,,1,,,,q170125hap,,, +170125,25/01/2017,nut,ae2,sequoia,1,,,,ndvi,,,1,1,,,q170125ae2,,, +170126,26/01/2017,nut,sa1,sequoia,1,dropbox/AE,"clouds, wind to W 5m/s",,ndvi,,,1,1,,,q170126sa1,,, +170127,27/01/2017,fis,hap,RGB,1,on the laptop,DSM has bad artifacts. Due to low overlapp? Was very windy,ae_fis_710_R,dsm & mosaic,1,,1,,,1,q170127hap,,, +170127,27/01/2017,fis,hap,sequoia,1,,,ae_fis_hap_Q,reflectance & NDVI,,,1,,,,q170127hap,,, +170130,30/01/2017,ceb,ofi,RGB,1,,"Respaldo raw data en disco externo ADATA ""A 2017"". oficinas cebeb",,mosaico,,,,,,,q170130ofi,,, +170131,31/01/2017,nut,ma1,sequoia,1,on the laptop,"proyecto en pc, nubes",,ndvi,,,0,1,,,q170131ma1,,, +170201,01/02/2017,nut,coc,sequoia,1,on the laptop,"mosaico en PC, claro",,ndvi,,,1,1,,,q170201coc,,, +170201,01/02/2017,nut,d16,sequoia,1,on the laptop,"Block1216, mosaico en PC, claro",,ndvi,,,1,1,,,q170201d16,,, +170201,01/02/2017,nut,po5,sequoia,1,on the laptop,"mosaico en PC, claro",,ndvi,,,1,1,,,q170201po5,,, +170202,02/02/2017,bw_,810,FLIR,1,auto (DS),,ae_bw_810_T,pix?,1,,,,,,q170202810,,, +170202,02/02/2017,frz,esc,FLIR,1,auto (DS),,ae_frz_esc_T,celsius mosaic,,,1,,,,q170202esc,1,, +170202,02/02/2017,frz,ros,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170202ros,1,, +170202,02/02/2017,frz,ser,FLIR,1,auto (DS),,ae_fis_710_R,celsius mosaic,,,1,,,,q170202ser,1,, +170202,02/02/2017,bw_,810,HYPEr,1,auto (DS),,ae_bw_810_H,rfl_spr_ort,,,,,SOME DRIp PLOTS NOT COVERED,,q170202810,,, +170202,02/02/2017,frz,esc,HYPEr,1,auto (DS),,ae_frz_esc_H,rfl_spr_ort_geo,,1,1,,,,q170202esc,1,, +170202,02/02/2017,frz,ros,HYPEr,1,auto (DS),,ae_fis_hap_Q,rfl_spr_ort_geo,,1,1,,,,q170202ros,1,, +170202,02/02/2017,frz,ser,HYPEr,1,auto (DS),,,rfl_spr_ort_geo,,1,1,,,,q170202ser,1,, +170202,02/02/2017,nut,ole,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170202ole,,, +170202,02/02/2017,nut,521,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170202521,,, +170202,02/02/2017,nut,pad,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170202pad,,, +170203,03/02/2017,nut,ole,sequoia,1,on the laptop/dropboxAE,junto ole y pad,,ndvi,,,1,1,,,q170203ole,,, +170203,03/02/2017,nut,pad,sequoia,1,on the laptop/dropboxAE,junto ole y pad,,ndvi,,,1,1,,,q170203pad,,, +170203,03/02/2017,nut,111,sequoia,1,auto (DS),,,ndvi,,,0,0,,,q170203111,,, +170202,02/02/2017,nut,710,sequoia,1,,,,,,,0,,,,q170202710,,, +170207,07/02/2017,ceb,ce1,NIR,1,,"Respaldo en disco externo ADATA ""A 2017""",,,,,,,,,q170207ce1,,, +170207,07/02/2017,ceb,ce2,NIR,1,,"Respaldo en disco externo ADATA ""A 2017""",,,,,,,,,q170207ce2,,, +170207,07/02/2017,nut,fx1,sequoia,1,auto (DS),,,ndvi,,,1,0,,,q170207fx1,,, +170207,07/02/2017,nut,fx2,sequoia,1,on the laptop/dropboxAE,,,ndvi,,,1,1,,,q170207fx2,,, +170210,10/02/2017,bw_,810,FLIR,1,auto (DS),,,pix?,1,,,,,,q170210810,,,pedacito sur +170210,10/02/2017,frz,esc,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170210esc,1,, +170210,10/02/2017,frz,ros,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170210ros,1,, +170210,10/02/2017,frz,ser,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170210ser,1,, +170210,10/02/2017,bw_,810,HYPEr,1,auto (DS),paneles referencia,,rfl_spr_ort,,,,,SOME DRIp PLOTS NOT COVERED,,q170210810,,, +170210,10/02/2017,frz,esc,HYPEr,1,auto (DS),,,rfl_spr_ort_geo,,1,1,,,,q170210esc,1,, +170210,10/02/2017,frz,ros,HYPEr,1,auto (DS),,,rfl_spr_ort_geo,,1,1,,,,q170210ros,1,, +170210,10/02/2017,frz,ser,HYPEr,1,auto (DS),,,rfl_spr_ort_geo,,,1,,,,q170210ser,1,, +170210,10/02/2017,nut,fx2,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170210fx2,,, +170210,10/02/2017,fis,710,RGB,1,on the laptop,,,dsm & mosaic,1,,1,,,,q170210710,,, +170210,10/02/2017,fis,hap,RGB,1,on the laptop,,,dsm & mosaic,1,,1,,,1,q170210hap,,, +170211,11/02/2017,nut,po5,sequoia,1,on the laptop,copiado al PC proyecto. sin biomasa?,,ndvi,,,1,0,,,q170211po5,,, +170211,11/02/2017,nut,coc,sequoia,1,on the laptop,copiado al PC proyecto.,,ndvi,,,1,1,,,q170211coc,,, +170211,11/02/2017,nut,d16,sequoia,1,on the laptop,"Block1216,copiado al PC proyecto. sin biomasa?",,ndvi,,,1,0,,,q170211d16,,, +170213,13/02/2017,fis,hap,RGB,1,on the laptop/ADATA A2017,,,dsm & mosaic,1,,1,,,1,q170213hap,,, +170213,13/02/2017,fis,hap,sequoia,1,,,,reflectance & NDVI,,,1,,,,q170213hap,,, +170215,15/02/2017,fis,hap,RGB,1,on the laptop/ADATA A2017,,,dsm & mosaic,1,,1,,,1,q170215hap,,, +170215,15/02/2017,frz,ser,RGB,1,,,,mosaico,,,1,,,,q170215ser,1,, +170215,15/02/2017,fis,hap,sequoia,1,,,,reflectance & NDVI,,,1,,,,q170215hap,,, +170216,16/02/2017,bw_,810,FLIR,1,auto (DS),,ae_bw_810_T,pix?,1,,,,,,q170216810,,,pedacitito al este +170216,16/02/2017,frz,esc,FLIR,1,auto (DS),,ae_frz_esc_T,celsius mosaic,,,1,,,,q170216esc,1,,pedacitito al este +170216,16/02/2017,frz,ser,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170216ser,1,,pedacitito al este +170216,16/02/2017,bw_,810,HYPEr,1,auto (DS),"nubes alrededor, jaz_bw",ae_bw_810_H,rfl_spr_ort,,,,,SOME DRIp PLOTS NOT COVERED,,q170216810,,,pedacitito al este +170216,16/02/2017,frz,esc,HYPEr,1,auto (DS),"nubes cerca,jaz_stars",ae_frz_esc_H,rfl_spr_ort_geo,,,1,,,,q170216esc,1,,pedacitito al este +170216,16/02/2017,frz,ser,HYPEr,1,auto (DS),"nubes alrededor,jaz_stars",,rfl_spr_ort_geo,,,1,,,,q170216ser,1,,pedacitito al este +170220,20/02/2017,frz,ros,NIR,1,,no RTK,,mosaico,,,…,,,,q170220ros,1,,pedacitito al este +170220,20/02/2017,fis,hap,RGB,1,on the laptop/ADATA A2017,,,dsm & mosaic,1,,1,,,1,q170220hap,,,pedacitito al este +170220,20/02/2017,fis,710,RGB,1,on the laptop/ADATA A2017,,,dsm & mosaic,1,,1,,,,q170220710,,,pedacitito al este +170220,20/02/2017,fis,hap,sequoia,1,,,,reflectance & NDVI,,,1,,,,q170220hap,,,pedacitito al este +170221,21/02/2017,nut,po5,sequoia,1,on the laptop,copiado al PC,,ndvi,,,1,1,,,q170221po5,,,pedacitito al este +170221,21/02/2017,nut,coc,sequoia,1,on the laptop,copiado al PC,,ndvi,,,1,1,,,q170221coc,,,pedacitito al este +170221,21/02/2017,nut,d16,sequoia,1,on the laptop,"Block1216,copiado al PC",,ndvi,,,1,1,,,q170221d16,,,pedacitito al este +170222,22/02/2017,bw_,810,FLIR,1,auto (DS),,,pix?,1,,,,,,q170222810,,,pedacitito al este +170222,22/02/2017,frz,esc,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170222esc,1,, +170222,22/02/2017,frz,ros,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170222ros,1,, +170222,22/02/2017,frz,ser,FLIR,1,auto (DS),,,celsius mosaic,,,1,,,,q170222ser,1,, +170222,22/02/2017,bw_,810,HYPEr,1,auto (DS),"despejado, jaz_170222",,rfl_spr_ort,0,,,,SOME DRIp PLOTS NOT COVERED,,q170222810,,, +170222,22/02/2017,frz,esc,HYPEr,1,auto (DS),"despejado, jaz_170222",,rfl_spr_ort_geo,,1,1,,,,q170222esc,1,, +170222,22/02/2017,frz,ros,HYPEr,1,auto (DS),"despejado, jaz_170222",,rfl_spr_ort_geo,,,1,,,,q170222ros,1,, +170222,22/02/2017,frz,ser,HYPEr,1,auto (DS),"despejado, jaz_170222",,rfl_spr_ort_geo,,1,1,,,,q170222ser,1,, +170222,22/02/2017,nut,521&230,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170222521&230,,, +170222,22/02/2017,fis,hap,RGB,1,on the laptop/ADATA A2017,,,dsm & mosaic,1,,1,,,1,q170222hap,,, +170227,27/02/2017,frz,esc,RGB,1,,no RTK,,mosaico,,,…,,,,q170227esc,1,, +170301,01/03/2017,nut,sa1,sequoia,1,on the laptop,copiado al pc el mosaico. cirrus,,ndvi,,,1,1,,,q170301sa1,,, +170301,01/03/2017,nut,sa2,sequoia,1,on the laptop,copiado proyecto al pc. cirrus,,ndvi,,,1,1,,,q170301sa2,,, +170302,02/03/2017,nut,cas,sequoia,1,dropbox/AE,,,ndvi,,,1,1,,,q170302cas,,, +170302,02/03/2017,nut,521&230,sequoia,1,dropbox/AE,,,ndvi,,,1,,,,q170302521&230,,, +170302,02/03/2017,nut,521&230,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170302521&230,,, +170308,08/03/2017,fis,hap,RGB,1,on the laptop/ADATA A2017,clouds,,dsm & mosaic,1,,1,,,1,q170308hap,,, +170310,10/03/2017,nut,521&230,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170310521&230,,, +170310,10/03/2017,nut,521&230,sequoia,1,dropbox/AE,,,ndvi,,,1,,,,q170310521&230,,, +170310,10/03/2017,bw_,810,FLIR,1,,,,pix?,1,,,,,,q170310810,,, +170310,10/03/2017,frz,ros,FLIR,1,,,,celsius mosaic,,,1,,,,q170310ros,1,, +170310,10/03/2017,frz,ser,FLIR,1,,,,celsius mosaic,,,1,,,,q170310ser,1,, +170310,10/03/2017,frz,ros,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170310ros,1,, +170310,10/03/2017,frz,ser,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170310ser,1,, +170313,13/03/2017,nut,po5,sequoia,1,on the laptop,,,ndvi,,,1,1,,,q170313po5,,, +170313,13/03/2017,nut,coc,sequoia,1,on the laptop,copiado mosaico al pc,,ndvi,,,1,1,,,q170313coc,,, +170313,13/03/2017,nut,d16,sequoia,1,on the laptop,"Block1216,copiado mosaico al pc",,ndvi,,,1,1,,,q170313d16,,, +170315,15/03/2017,bw_,810,FLIR,1,,,,pix?,1,,,,SOME DRIp PLOTS NOT COVERED,,q170315810,,, +170315,15/03/2017,frz,esc,FLIR,1,,,,celsius mosaic,,,1,,,,q170315esc,1,, +170315,15/03/2017,frz,ros,FLIR,1,,,,celsius mosaic,,,1,,,,q170315ros,1,, +170315,15/03/2017,frz,ser,FLIR,1,,,,celsius mosaic,,,1,,,,q170315ser,1,, +170315,15/03/2017,bw_,810,HYPEr,1,,,,rfl_spr_ort,0,,,,,,q170315810,,, +170315,15/03/2017,frz,esc,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170315esc,1,, +170315,15/03/2017,frz,ros,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170315ros,1,, +170315,15/03/2017,frz,ser,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170315ser,1,, +170315,15/03/2017,nut,521&230,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170315521&230,,, +170315,15/03/2017,nut,521&230,sequoia,1,dropbox/AE,,,ndvi,-,,1,,,,q170315521&230,,, +170324,24/03/2017,est,bw3,RGB,1,,"Respaldo raw data en disco externo ADATA ""A 2017"". despejado",,pix,-,,rtk 521,,,,q170324bw3,,, +170324,24/03/2017,est,bw4,RGB,1,,"Respaldo raw data en disco externo ADATA ""A 2017"". despejado",,pix,-,,rtk 521,,,,q170324bw4,,, +170329,29/03/2017,bw_,810,FLIR,1,,,,pix?,1,,,,,,q170329810,,,parte superior +170329,29/03/2017,frz,esc,FLIR,1,,,,celsius mosaic,-,,1,,,,q170329esc,1,, +170329,29/03/2017,frz,ros,FLIR,1,,,,celsius mosaic,-,,1,,,,q170329ros,1,, +170329,29/03/2017,frz,ser,FLIR,1,,,,celsius mosaic,-,,1,,,,q170329ser,1,, +170329,29/03/2017,sed,sed,FLIR,1,,,,celsius mosaic,,,1,,,,q170329sed,,, +170329,29/03/2017,bw_,810,HYPEr,1,,,,rfl_spr_ort,0,,,,"SOME DRIp PLOTS NOT COVERED, drip not adjusted",,q170329810,,, +170329,29/03/2017,frz,esc,HYPEr,1,,,,rfl_spr_ort_geo,-,,1,,,,q170329esc,1,, +170329,29/03/2017,frz,ros,HYPEr,1,,,,rfl_spr_ort_geo,-,,1,,,,q170329ros,1,, +170329,29/03/2017,frz,ser,HYPEr,1,,,,rfl_spr_ort_geo,-,,1,,,,q170329ser,1,, +170329,29/03/2017,nut,521&230,miniMCA,1,auto (DS),,,ndvi,-,,1,,,,m170329521&230,,, +170329,29/03/2017,sed,sed,miniMCA,1,,,,mosaico,-,,1,,,,q170329sed,,, +170330,30/03/2017,fis,hap,RGB,1,on the laptop/ADATA A2017,"there was an issue with the datum in pix 4D. I rested 32.316 m to get the plant height, but it looks some cm lower than the previous date.",,dsm & mosaic,1,,1,,,1,q170330hap,,, +170330,30/03/2017,fis,hap,sequoia,1,,,,reflectance & NDVI,1,,1,,,,q170330hap,,, +170403,03/04/2017,nut,po5,sequoia,1,on the laptop,proyecto copiado a PC,,pix…,,,0,1,,,q170403po5,,, +170403,03/04/2017,nut,coc,sequoia,1,on the laptop,proyecto copiado a PC,,ndvi,,,1,1,,,q170403coc,,, +170403,03/04/2017,nut,d16,sequoia,1,on the laptop,"Block1216,mosaico copiado a PC",,ndvi,,,1,1,,,q170403d16,,, +170405,05/04/2017,bw_,810,FLIR,1,,,,pix?,1,,,,,,q170405810,,, +170405,05/04/2017,frz,esc,FLIR,1,,,,celsius mosaic,,,1,,,,q170405esc,1,, +170405,05/04/2017,frz,ros,FLIR,1,,,,celsius mosaic,,,1,,,,q170405ros,1,, +170405,05/04/2017,frz,ser,FLIR,1,,,,celsius mosaic,,,1,,,,q170405ser,1,, +170405,05/04/2017,bw_,810,HYPEr,1,,checar pasadas extras,,rfl_spr_ort,0,,,,"SOME DRIp PLOTS NOT COVERED, drip not adjusted nor october area",,q170405810,,, +170405,05/04/2017,frz,esc,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170405esc,1,, +170405,05/04/2017,frz,ros,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170405ros,1,, +170405,05/04/2017,frz,ser,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170405ser,1,, +170405,05/04/2017,nut,521&230,miniMCA,1,auto (DS),,,ndvi,,,1,,,,m170405521&230,,, +170406,06/04/2017,nut,521&230,sequoia,1,dropbox/AE,,,ndvi,,,1,,,,q170406521&230,,, +170411,11/04/2017,bw_,810,FLIR,1,,out of focus,,tif,-,,,,,,q170411810,,, +170411,11/04/2017,frz,esc,FLIR,1,,,,celsius mosaic,-,,1,,,,q170411esc,1,, +170411,11/04/2017,bw_,810,HYPEr,1,,,,rfl_spr_ort,0,,,,"SOME DRIp PLOTS NOT COVERED, drip not adjusted nor october area, nor 2 IR",,q170411810,,, +170411,11/04/2017,frz,esc,HYPEr,1,,,,rfl_spr_ort_geo,-,,1,,,,q170411esc,1,, +170411,11/04/2017,sed,sed,miniMCA,1,,,,mosaico,-,,1,,,,q170411sed,,, +170411,11/04/2017,sed,sed,FLIR,1,,"out of focus, 20cm",,tif,-,,,,,,q170411sed,,, +170411,11/04/2017,bw_,hea,miniMCA,1,,,,ndvi,0,,1,,,,q170411hea,,, +170411,11/04/2017,bw_,hea,FLIR,1,,"out of focus, 20cm",,tif,0,,,,,,q170411hea,,, +170418,18/04/2017,frz,esc,FLIR,1,,,,celsius mosaic,,,1,,,,q170418esc,1,, +170418,18/04/2017,frz,ros,FLIR,1,,,,celsius mosaic,,,1,,,,q170418ros,1,, +170418,18/04/2017,frz,ser,FLIR,1,,,,celsius mosaic,,,1,,,,q170418ser,1,, +170418,18/04/2017,sed,sed,FLIR,1,,,,celsius mosaic,,,1,,,,q170418sed,,, +170418,18/04/2017,frz,esc,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170418esc,1,, +170418,18/04/2017,frz,ros,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170418ros,1,, +170418,18/04/2017,frz,ser,HYPEr,1,,,,rfl_spr_ort_geo,,,1,,,,q170418ser,1,, +170426,26/04/2017,sed,sed,FLIR,1,,,,celsius mosaic,,,1,,,,q170426sed,,, +170426,26/04/2017,sed,sed,miniMCA,1,,,,mosaico,,,1,,,,q170426sed,,, +170426,26/04/2017,bw_,sed,FLIR,1,,también bw heat salió en la foto,,pno…,,,,,,,q170426sed,,, +170502,02/05/2017,bw_,hea,FLIR,1,,,,cel,,,,,ok,,q170502hea,,, +170502,02/05/2017,bw_,hea,HYPEr,1,,,,rfl_spr_ort,,,,,ok,,q170502hea,,, +170511,11/05/2017,sed,sed,FLIR,,,,,celsius mosaic,,,1,,,,q170511sed,,, +170511,11/05/2017,sed,sed,miniMCA,1,,,,mosaico,,,1,,,,q170511sed,,, +170511,11/05/2017,bw_,hea,FLIR,,,,,cel,,,,,ok,,q170511hea,,, +170511,11/05/2017,bw_,hea,HYPEr,,,,,capture error,,,,,issues,,q170511hea,,, +170512,12/05/2017,bw_,sed,RGB,1,auto (DS),,,mosaico,,,1,,,,q170512sed,,, +170512,12/05/2017,bw_,hea,RGB,1,auto (DS),,,mosaico,,,1,,,,q170512hea,,, +170522,22/05/2017,bw_,hea,FLIR,1,auto (DS),,,cel,,,,,ok,,q170522hea,,, +170522,22/05/2017,bw_,hea,HYPEr,1,auto (DS),"cirrus, Jaz 80 81 82 83",,rfl_spr_ort,,,,,issues,,q170522hea,,, +170531,31/05/2017,bw_,hea,FLIR,,,,,cel,,,,,ok,,q170531hea,,, +170531,31/05/2017,bw_,hea,HYPEr,1,,very windy,,rfl_spr_ort,,,,,issues,,q170531hea,,, +170531,31/05/2017,sed,sed,FLIR,1,,"clear sky, windy",,celsius mosaic,,,1,,,,q170531sed,,, +170531,31/05/2017,sed,sed,miniMCA,1,,"very windy, weeds all around",,mosaico,,,1,,,,q170531sed,,, +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, diff --git a/r/shiny_listFiles/helpers.R b/r/shiny_listFiles/helpers.R new file mode 100644 index 0000000..548fbe2 --- /dev/null +++ b/r/shiny_listFiles/helpers.R @@ -0,0 +1,35 @@ +saveData <- function(data) { + #data <- t(data) + + #test to save to file + write.csv(data, file="C://Dropbox//data//shiny_output_test.csv") +} + +#Load data function... +loadDBData <- function() { + # create a connection to a DB in postres + # save the password that we can "hide" it as best as we can by collapsing it + pw <- { + "cimmyt" + } + + # loads the PostgreSQL driver + drv <- dbDriver("PostgreSQL") + # creates a connection to the postgres database + # note that "con" will be used later in each connection to the database + # here the connection values should be specified + connection <- dbConnect(drv, dbname = "ceneb_nut", + host = "localhost", port = 5432, + user = "postgres", password = pw) + rm(pw) # removes the password + + # fetch the data from postgreSQL #capture" table + df_log <- dbGetQuery(connection, "SELECT * from capture") #Returns a dataframe type + + # close the connection when finished + dbDisconnect(connection) + dbUnloadDriver(drv) + ##>>>>>>>>>>>>># } connection to DB losed + + df_log +} \ No newline at end of file diff --git a/r/shiny_listFiles/rsconnect/shinyapps.io/nutrs/shiny_exampleapp.dcf b/r/shiny_listFiles/rsconnect/shinyapps.io/nutrs/shiny_exampleapp.dcf new file mode 100644 index 0000000..70762ef --- /dev/null +++ b/r/shiny_listFiles/rsconnect/shinyapps.io/nutrs/shiny_exampleapp.dcf @@ -0,0 +1,8 @@ +name: shiny_exampleapp +title: +account: nutrs +server: shinyapps.io +appId: 201629 +bundleId: 925472 +url: https://nutrs.shinyapps.io/shiny_exampleapp/ +when: 1501711471.56152 diff --git a/r/shiny_listFiles/server.R b/r/shiny_listFiles/server.R new file mode 100644 index 0000000..a9c0ca3 --- /dev/null +++ b/r/shiny_listFiles/server.R @@ -0,0 +1,75 @@ +#This procedure loads the log DB of the flights +#thanks https://ipub.com/shiny-crud-app/ +# https://rstudio.github.io/DT/options.html +# Thanks to https://shiny.rstudio.com/articles/persistent-data-storage.html +#thanks to R documentation +#Edited: Lorena + +library (raster) +library (sp) +library(rgdal) +require("RPostgreSQL") +library(rgdal) +source("helpers.R") + +shinyServer(function(input, output,session) { + + #############Get the data from the DB + df_log <- loadDBData() + + #Get the available unique data from the log table + sensors <- unique(df_log$sensor) #sensors + #date <- unique(df_log$cap_date) #dates + trials <- unique(df_log$area) #trials + + + #get the sensors as the options of a check box + output$choose_cam <- renderUI({ + # If missing input, return to avoid error later in function + #if(is.null(sensors)) + # return() + + # Create the checkboxes and select them all by default + checkboxGroupInput("chk_cam", "Choose sensors", + choices = sensors, + selected = NULL) + }) + + #get the available trials as the options of a check box + output$choose_trial <- renderUI({ + # If missing input, return to avoid error later in function + #if(is.null(sensors)) + # return() + + # Create the checkboxes and select them all by default + checkboxGroupInput("chk_trial", "Choose trial", + choices = trials, + selected = NULL) + }) + + + #Render the table to display in the GUI + output$logTable <- DT::renderDataTable({ + + #update after submit is clicked + input$submit + #Filter the data as needed + df_log <- df_log[df_log$area %in% c(input$chk_trial) & df_log$sensor %in% c(input$chk_cam), ] + #save to csv the data + #saveData(df_log) # This works! + + #The data retrieved from the DB, filtered + df_log #This will be showed in the table UI + + + },options = list(pageLength = 15)) #show 15 rows by default + + #React when a row is selected + # (Not working yet) # ! # + # observeEvent(input$logTable_rows_selected, { + # output$txtOut <- renderText({ + # data <- loadData()[input$logTable_rows_selected,] ### loadData() function???? + # sprintf("You have selected: %s",data)}) #!# this doesnt work, how get the value selected I just get the index within the filtered table + # }) + } +) \ No newline at end of file diff --git a/r/shiny_listFiles/ui.R b/r/shiny_listFiles/ui.R new file mode 100644 index 0000000..e69de29 diff --git a/r/shiny_listFiles/www/circles in a circle Kandinsky.jpg b/r/shiny_listFiles/www/circles in a circle Kandinsky.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e9b6c4aa148fa5052fa6c6b50931f7dd0af95446 GIT binary patch literal 2887 zcmbW!c{J4T9tZI6m|79rymu@1Ar2y7#`H=Q-y&&vrhq^Kd?MW`KQ`W)@}u2m}J$ zxeef~0m3GMNS{yu1V8`)FyJmt0_Oo95NNmm6)-P&H+&EXm>0?ih3*a*d=DH3@47efJi(3&5bT-4p*?IPU;q7@z^DgF*5Dk1z-<4B~VF zvH$?$+{J8xoYW`4oK(*BZz zqm%RHE6D3Nyl&p|zWpE|Feo@A^kGbF+~fF!#3yO#8JStx&vSBL7MGNkl~+_&)xCLJ z-+*mwYJT6@)!ozE_o07uY#cv9_)H|t&do0@eqCCotkA!0e*eMPV*dQK>jDAbf3g0S z{fA4K>*C@50R+110`UZM2Ur-wD|d=d#Ml<JRQ8k#VW*d9>+Rg!&>DaGbr zoNot*%Q0gLIeod33a%dtGo1Ir~Gh^nolTWPUj?W}Z>?M<~v=Rmc7yAb9C-o5z%T&c>^uda^RoPux zq4=V3bo7})f0)xqU25SovByu#fzEiDz67CUR5Ap1ZjuQ&h^%jW+% z>qq=L=E(jujySQSB9OQKHY`(Y%Svv@y5)L}WY1-I5Bx4%hl(DsCnq;GS09gX+vLso zsvCfmHVLh4Jy5tX9yIFYdY0eBJZO!N6XSqOX7O^}L$hosvf#WFGG zdMk&7>3gEmYTb@Z3dFkq^nXn{)jE=3PZe|0>+R+MBCJ2DV*xH&gZ+R&=cjyXSdeSm z(tH6ihVg_B-4PA$ImiKGQOY5~oe#0m^&eF+c0)s|sE_3)byd7dC0?6+G{+mN^8F=A zHy3``d_HrP(2n#YnO|aMhWk`qT_xEt!kF>1P6;)U+h&!eaz;Tp8iEJIE+#oeCCsH$ zdlwGV?l&IHTxqtyn)(MiAnjXNb)egW^|c2E$1&AmM&zXh4p7bzFal_-S5_j+zg$1R zvu&P|tkqd~W?{6Hdo;+Z)XBY%IIQWgt>nE~l z+OxhJPtk`J)B>-aquhCeZP^o)nDIj(M>@*&2Q80*rHQZapD&OOk+s3$8Yghz5K=^f zhl{s@i+7f{Cu{uGslyiNujgibh2UrI6`vWNR%*(dmE94yy^E`$66TgVT=HbZBoQBT zr*G#5&NTUWoP_kUQ~Vkmp|`SibUH>@H7NCvm|1dEJ!nQo#9GCb?thw`7?`XsSMlKh zy#)DT(?NUiTy`?T8Q~~zVw(7nEOSNkWxW%&Ij?@YhCspCXT=s4>wYvmUPYAP-D)095ljilwi=tuxs3RvnvZI!tQn-k>f_noidipdp)FVw2H)YCI zQ!=70Yq#Us{K@k#lxGsIY68h9kndhKIMhY6-xN@Gh=j4ehN21}} zPJz{(jbiKi@B1riQ~k>_OVED!(C?2%-q6a~aAR7}6hK+305t0CUIr3tD0XO;iU z{tH1sUgC$Kpuh{CXGF?J+ho|ohX7Xoox2A5GprM5$2J@x>2^LUNw?qhVtHJi1sg=> zo0|@Jh(3r}WVAPItc%j(eY3kZh!I_`^0(ObH9H8r9O2l;eSC3UX4ahWvQl_1Ms~d( zvudO|e%c0#>TQ4PSTx7_ov`LVFn3LFpi?ZpH}1XRAi+)^{2JsQJ1edWIE`N#K-y*F zR}^RQTDd5!!AefDCB8HfqoS5ljiN5uADk6`*>A;m;>-*-(k~29~L=& zsjgbNETkUI=Nb8YNc36PK<-vb68Q}xb#8-)(!drS{l0!^v(wT0Mwv75ebxlpTjD)2 z?xLt@L`I>UmpSjTRgU(&eKI;XH+X->96q4nKpllbDL<+Yh3?GyoA zz}~SRFY6Ge@wJU4 zlao>jTRW4A$8brk-}MDgCGj)LUSwGp1A@epiQXQfo>x2{Jnbn2&OK6yzvI+QYse0K hpqNH!P`6MJ3l0nL^8ejJMLK=e^nl~zs}&sLKLBl#d-DJQ literal 0 HcmV?d00001 diff --git a/r/shiny_output_test.csv b/r/shiny_output_test.csv new file mode 100644 index 0000000..05f8550 --- /dev/null +++ b/r/shiny_output_test.csv @@ -0,0 +1 @@ +"","id_capture","cap_date","cap_project","area","sensor" diff --git a/r/stackBandsSequoia.R b/r/stackBandsSequoia.R new file mode 100644 index 0000000..0197fda --- /dev/null +++ b/r/stackBandsSequoia.R @@ -0,0 +1,67 @@ +#### +# it is used to stack in one file the individual bands from the sequoia ( for COMPASS) +# It searches in the structure of the Pix4D results folders OR you can set to work on the base directory + +#0. First step : load packages +#install.packages(c("rgdal","raster")) +#require(raster) +#require(rgdal) #it is called in the functions file + +######################## DEFINE VARIABLES (Enter your variables) +# #Working directory +wd= choose.dir(default = "", caption = "Select base working directory for the imagery") +setwd(wd) +sprintf("Wd: %s",wd) + +#Choose file list as date | trial1 | trial2...(our standard format) +listDates <- choose.files(default = "", caption = "Selecciona la matriz de nombres y fechas de archivos a procesar", + multi = FALSE, filters = matrix(c("csv", "*.csv")), + index = nrow(Filters)) + +#choose shapefile directory. The name of the ROI is expected to be like: q21__af__roi where q21 is the 3 char id for the trial, af is the cycle id +shpFolder= choose.dir(default = "", caption = "Select the folder where the shapefiles are (Polygon ROIs to crop imagery)") +sprintf("shpF: %s",shpFolder) + +#trial <-"coc" #this will be selected from the matrix +#cam <- "q" this will be selected from the matrix +ext <- ".tif" #This is assumed +cycle <- "af" #code for the cycle. af is 2017-2018 +if_crop <- TRUE #tell if the imagery should be cropped + +################### Functions +source(file.path("C:","Dropbox","Software","Scripts","r","functions_ImgProcessing.R", fsep = .Platform$file.sep)) + +data############### Script +tryCatch({ + data<-read.table(listDates, header = TRUE,sep = ",") #get the data in the csv + row.names(data)<-data[,1] # name the rows as the date + dates<- row.names(data) + #Get the trial names + data<- data[,2:length(colnames(data))] #Remove 1st column that had the dates + trials<- colnames(data) #assign them as column names of the dataframe. This could be used to + + for (trial in trials){ + #read the roi boundary + roi <- get_shape(paste0(trial,"__",cycle,"__roi"),shpFolder) + for(date in dates){ + for(cam in data[date,trial]){ + if (cam != "-"){ + #construct the codename of the image + name <- paste0(cam,date,trial) + ##path of the standard Pix4D folder structure + path <- file.path(wd,name,name,"4_index","reflectance", fsep = "\\") + ##Use the working directory path if all the imagery bands were copied to 1 same location + #path <- wd + print(sprintf("processing bands... %s\\%s",path,name)) + #stack the bands and save in the WD + s <- stackSeq(name,path) + #cut the excess outside the ROI boundary + s_crop<-crop(s, extent(roi), snap="out") #require(raster) + outFile <- file.path(wd,paste0(name,"rfl.tif"), fsep = .Platform$file.sep) + print(paste("will write this to disk: ",outFile)) + writeRaster(s_crop, file=outFile, datatype='FLT4S',format="GTiff",overwrite=FALSE) + } + } + } + } +}) diff --git a/r/stackCVStoXLSX.R b/r/stackCVStoXLSX.R new file mode 100644 index 0000000..e933577 --- /dev/null +++ b/r/stackCVStoXLSX.R @@ -0,0 +1,24 @@ +####### +##script to save to Excel lots of CVS in a folder +####### +require(xlsx) +##Set working drectory +setwd("C:\Dropbox\data\AC\AC_SAM\data\m") + +##Something like this to read all the cvs files +##Another example of use: list.files("C:/temp",full=TRUE) +csv_files = list.files(pattern="*.csv$") #List of the files +data <- do.call("rbind", lapply(csv_files, read.csv, header=TRUE)) #Read them all, like a loop + +#Create file +library(xlsx) #load the package +write.xlsx(x = data, file = "test.excelfile.xlsx", + sheetName = "TestSheet", row.names = FALSE) + +#Write to existing file +workbook.sheets +workbook.test +addDataFrame(x = sample.dataframe, sheet = workbook.test, +row.names = FALSE, startColumn = 1) # write data to sheet starting on line 1, column 4 +saveWorkbook(workbook.sheets, "test.excelfile.xlsx") # and of course you need to save it. + diff --git a/r/stackMCAbandsAsExportedFromAutopano.R b/r/stackMCAbandsAsExportedFromAutopano.R new file mode 100644 index 0000000..0cbfab8 --- /dev/null +++ b/r/stackMCAbandsAsExportedFromAutopano.R @@ -0,0 +1,39 @@ +#Script to stack the Multispectra bands from the Autopano mosaic +#Names should be like: +# m[date][trial]pno-0.tif +# m[date][trial]pno-1.tif +# e.g. m160204bw8pno-1.tif +# The required input is: date and trial and the working directory +#This is assuming the name formatting of the greenplane +#0. First step : load packages +#install.packages(c("rgdal","raster")) +require(raster) +require(rgdal) + +#Function multibandStack +multibandStack <- function(imgBasename,wd) +{ + tryCatch({ + setwd(wd) + #Input file with bands 1,2,3 + img_basename<-imgBasename + img_0<-paste(img_basename,'-0.tif',sep = "") + imported_raster_0=raster(img_0) + #Input file with bands 4,5,6 + img_1<-paste(img_basename,'-1.tif',sep = "") + imported_raster_1=raster(img_1) + #plot(imported_raster_0) #see image just to test + #stack 6 bands in one pile + img=stack(list(img_0,img_1)) + #Write the tif to disk + writeRaster(img, file=paste(imgBasename,".tif",sep = ""),datatype='INT2U',format="GTiff",overwrite=FALSE) + }) +} + +#Working directory +date ="160129" +trial = "ros" +wd = paste('G:\\AD15_16\\',date,'\\m\\pno',sep="") +img_b<-paste('m',date,trial,'pno',sep="") +multibandStack(img_b,wd) + diff --git a/r/stackMCAbandsAsExportedFromAutopanoFolder.R b/r/stackMCAbandsAsExportedFromAutopanoFolder.R new file mode 100644 index 0000000..ebdf2c9 --- /dev/null +++ b/r/stackMCAbandsAsExportedFromAutopanoFolder.R @@ -0,0 +1,47 @@ +#Script to stack the Multispectra bands from the Autopano mosaic +#Names should be like: +# m[date][trial]pno-0.tif +# m[date][trial]pno-1.tif +# e.g. m160204bw8pno-1.tif +# The required input is: date and trial and the working directory +#This is assuming the name formatting of the greenplane +#0. First step : load packages +#install.packages(c("rgdal","raster")) +require(raster) +require(rgdal) +library(stringr) + +#Function multibandStack +multibandStack <- function(imgBasename, wd) +{ + tryCatch({ + setwd(wd) + #Input file with bands 1,2,3 + img_basename<-imgBasename + img_0<-paste(img_basename,'-0.tif',sep = "") + imported_raster_0=raster(img_0) + #Input file with bands 4,5,6 + img_1<-paste(img_basename,'-1.tif',sep = "") + imported_raster_1=raster(img_1) + #plot(imported_raster_0) #see image just to test + #stack 6 bands in one pile + img=stack(list(img_0,img_1)) + #Write the tif to disk + writeRaster(img, file=paste(imgBasename,".tif",sep = ""),datatype='INT2U',format="GTiff",overwrite=FALSE) + }) +} +########### START ########################## +#Working directory +wd="G:\\AD15_16\\160525\\m\\rfl" +setwd(wd) + +imgFilesList <-list.files(pattern="\\.tif$") +##Next the names of the images, collapse to get one entry per pair(-0.tif and -1.tif) +#imgsPairNames <- unique(str_extract(imgFilesList, "TTC[:digit:]{5}")) #For individual frames +imgsPairNames <- unique(str_extract(imgFilesList, ".{0,8}")) #For mosaics {0,13} +## Sets the pattern of name in files to be stacked +for (i in imgsPairNames){ + print(paste("Image:",i)) + multibandStack(i, wd) +} +paste(print("Finished merging",toString(length(imgsPairNames)),"images")) diff --git a/r/stackMCAbandsAsExportedFromAutopano_cmd.R b/r/stackMCAbandsAsExportedFromAutopano_cmd.R new file mode 100644 index 0000000..a607c8b --- /dev/null +++ b/r/stackMCAbandsAsExportedFromAutopano_cmd.R @@ -0,0 +1,53 @@ +#Script to stack the Multispectra bands from the Autopano mosaic +#Selecting them in the windows explorer and executing this file +#Names should be like: +# m[date][trial]pno-0.tif +# m[date][trial]pno-1.tif +# e.g. m160204bw8pno-1.tif +#This is assuming the name formatting of the greenplane +#TODO: +######filter to accept the input files in any order +#######(so far cant stack if the files are not ordered by name) + + +#0. First step : load packages +#install.packages(c("rgdal","raster")) +require(rgdal) + +require(raster) + +#Function multibandStack +multibandStack <- function(img_0,img_1) +{ + tryCatch({ + print(paste("primeras 3 bandas",img_0)) + print(paste("últimas 3 bandas",img_1)) + wd<-dirname(normalizePath(img_0)) + #print(wd) + setwd(wd) + #Img basename + imgBasename<-gsub("-0.tif", "", img_0) + #print(imgBasename) + #stack 6 bands in one pile + img=stack(list(img_0=img_0,img_1=img_1)) + #Write the tif to disk + writeRaster(img, file=paste(imgBasename,".tif",sep = ""),datatype='INT2U',format="GTiff",overwrite=FALSE) + print(paste("Imagen escrita: ",imgBasename,".tif",sep = "")) + }) +} + +#Call function with the images as parameters +print ("################# Inicio de script ##################") +args <- commandArgs(TRUE) +args<- sort(args) +#See the inputs +## Loop the args and call the function in pairs +nargs <- length(args)/2 +print (paste("# of images to create:",nargs)) +for (i in 1:nargs){ + #print(args[2*i-1]) + #print(args[2*i]) + multibandStack(args[2*i-1],args[i*2]) + print("Success in round!") +} + diff --git a/r/substract_raster.R b/r/substract_raster.R new file mode 100644 index 0000000..4dc1b0f --- /dev/null +++ b/r/substract_raster.R @@ -0,0 +1,58 @@ +require(rgdal) +require(raster) + + +###################### DEFINED FUNCTIONS (no need to edit) +#Function to substract the baseline to the DSM +rest <-function(r1,base){(r1-base)} + +#Function to select the apropriate roi for the trial +# Read the feature class +get_roi <- function(trial_roi) {readOGR(dsn=fgdb,layer=trial_roi)} + + +######################## DEFINE VARIABLES (Enter your variables) +## WD +setwd("C:/Dropbox/Lectura y cursos/R/Cimmyt_Spatial Analysis in R/") + +#Feature geodatabase to get ROI +fgdb = "C:\\Dropbox\\data\\AE\\physio\\ae_fisio.gdb" + +imgLocation = "C:\\AE\\" +out_raster = "C:\\Dropbox\\data\\AE\\physio\\ae_fisio.gdb" + +######################## Execute the thing +rasterBase <- raster("Data/Modis2008-2012/MYD13Q1.MRTWEB.A2012361.005.250m_16_days_NDVI.tif") +raster1 <- raster("Data/Modis2008-2012/MYD13Q1.MRTWEB.A2012265.005.250m_16_days_NDVI.tif") +#Select one file interactively +#raster <-raster(choose.files(default = getwd(), caption = "Select XX files", +# multi = FALSE, filter = Filters <- matrix(c("TIF", ".tif"), +# 1, 2, byrow = TRUE), index = 1)) + + +#plot (raster1) + +roi <- get_roi("hap__ae__bry") +#plot (roi) + +##Crop raster +#r_crop<-crop(raster, extent(roi), snap="out") + +#Substract rasters +height <- rest(raster1, rasterBase) +#plot(height) + +##Save ROI to shp +#writeOGR(roi, "C:\\Dropbox\\data\\AE\\physio\\shp\\hap__ae__bry.shp", layer="hap__ae__bry.shp", driver="ESRI Shapefile") + +##Name for resulting raster +out_raster <- "outputR" + +#save raster +writeRaster(height, file= paste(imgLocation,out_raster,sep=""),datatype='FLT4S',format="GTiff",overwrite=FALSE) + + +#TESTS--------------------------------------------------------- +dsm <- raster("G:/AE/161026/r161026fis/r161026hap/3_dsm_ortho/1_dsm/r161026hap_dsm.tif") +r_crop<-crop(dsm, extent(roi), snap="out") +plot(r_crop) diff --git a/r/summarizeGreenseekrReadings.R b/r/summarizeGreenseekrReadings.R new file mode 100644 index 0000000..3dac99c --- /dev/null +++ b/r/summarizeGreenseekrReadings.R @@ -0,0 +1,51 @@ +# get Greenseekr measurements + + +library(plyr) + + + + + +# ongoing + + + + + + + + + + + + + +# #Working directory +wd= choose.dir(default = "", caption = "Select working directory") +setwd(wd) +## What kind of files to seach +pattern="\\Avg.txt$" +#list all imagery in the folder +files <-list.files(pattern=pattern) + +#Here we will save the summary of the readings +gs <- data.frame(Plot="0", + NDVI=0.5, + stringsAsFactors=FALSE) +cols <- c("Plot", "NDVI") + +for(f in files) { + # read text + d<-read.table(f, header = TRUE,sep = ",") + #save just the coulumns I need + d <- d[,c("Plot", "NDVI")] + #Name the plot as the input filename + d$Plot <- f + gs <- rbind(gs,d) + +} + +#AVG +#avg_gs <- ddply(gs, .("Plot"), summarize,x = max(NDVI)) + diff --git a/r/tests_generate_matix_agreggate.R b/r/tests_generate_matix_agreggate.R new file mode 100644 index 0000000..e4a05ac --- /dev/null +++ b/r/tests_generate_matix_agreggate.R @@ -0,0 +1,9 @@ +library(data.table) +x <- matrix(c("TIF", 0.9,1,"ZIP", 0.5,2,"ZIP", 0.7,2), + 3, 3, byrow = TRUE) + +rownames(x) <- c("a","b","b") +colnames(x) <- c("name","val2","val1") +x <- as.data.frame(x) +x1 <-aggregate(. ~ name, x, mean, na.rm = TRUE) +df2 <- setDT(x)[, lapply(mean), by=.(name)] diff --git a/r/timeSeries_joinData.R b/r/timeSeries_joinData.R new file mode 100644 index 0000000..fe62c1c --- /dev/null +++ b/r/timeSeries_joinData.R @@ -0,0 +1,79 @@ +##Script to get the descriptive statistics of a time series data +##Rearrange the data to have it grouped by VIs +##Reads may csv in working directory with cerain pattern +## Saves the statistics in a TXT in the same location as the data file +##July 2015 + +################# Check these inputs######################### +##Set working directory to avoid giving the absolute path of files +##IMPORTANT: use the / slash instead of the backslash \ in the paths +##Or use double backslash \\ +wd<-("C:/vuelos/ab2014/Marco/") +setwd(wd) +## Sets the pattern of name in CSV files to be read, save names without extension +data_set = gsub(".csv", "", list.files(pattern="vis[0-9]*.csv")) +#Get dates of the measuremnts +dates<-sub("vis","",x=data_set) + +#Load to a dataframe each CSV file with all the VIs per date +for (i in 1:length(data_set)) { + #assigns to variables each of the CSV + #Select the columns after the 6th one, because the firsts have ancillary data + assign(data_set[i], read.csv(paste(data_set[i],".csv",sep=""), + header = TRUE, row.names = 1, + colClasses = c("character",rep("NULL",5),rep("numeric",41)))) +} +#Get names of vis +vis_list<-sub("[A-z]*[0-9]*_?","",x=colnames(get(data_set[i]))) + +#Create empty dataframe to store re organized data by VI, separately +#vis_data<-data.frame(data.frame(matrix(nrow = 114, ncol = 1))) +#create an array to store all the vis by date +vis_data <- array(0, dim=c(114,10,41), dimnames=c("points","dates","vis")) + +date<-1 #Initialize to use it before the loop +##Loop trough the VIS +for (vi in 1:length(vis_list)) { + #Name each row as the measurement point + rownames(vis_data)<-rownames(get(data_set[date])) + + ##Loop trough the dates of one VI to store it together + for (date in 1:length(dates)) { + + ##Solution with merge function. Had troubles making it doing the ""join"" + ##withe the row names that start with number but have a letter also, like 5R or 7S + #vis_data<-merge(vis_data,get(data_set[i])[,j],by="row.names", all = TRUE) + ##Solution assigning the values to the corresponding column + vis_data[,date,vi]<-get(data_set[date])[,vi] + } + colnames(vis_data)<-dates #Name each column with the date + + #################Managed separately + ##Use this to save results to files (41 VI = 41 files) + #dir.create(paste(wd,"vis_by_date/",sep="")) #Creates a directory to store vis by date + #write.csv(vis_data, file = paste(wd,"vis_by_date/", "VIalldates.csv", sep="")) + ##Use this to save to a variable + #assign(paste("VIalldates_",vis[j], sep=""),vis_data) + + ##Create empty dataframe to store re organized data by VI (to reset this) + ##Used with the MERGE alternative + #vis_data<-data.frame(data.frame(matrix(NA, nrow = 114, ncol = 1))) + #####################Managed separately +} +##To find the index which corresponds to a VI in the vis_array: +#match("BGI2", vis) + +#### Plot average values of VIS during Cycle to PDF +pdf(file=paste("vis_by_date/"," VIS along cycle.pdf", sep="")) +#par(mfrow=c(7,6)) +for (vi in 1:length(vis_list)) { + #Gets the average of all points by date, this means the meand is applied across the COLUMNS -> MARGIN=2 + plot(1:10, apply(vis_data[,,vis=vi], MARGIN=2, FUN=mean), + main=vis_list[vi], + xlab="All 10 image dates") + + ##Gets the average of a point "5R" across all dates + #points(1, mean(vis_data[match("5R", rownames(vis_data)),,vis=vi]), xlab="5R",main=vis[vi]) +} +dev.off()#Finish saving to PDF + diff --git a/r/ui.R b/r/ui.R new file mode 100644 index 0000000..d3af3a5 --- /dev/null +++ b/r/ui.R @@ -0,0 +1,70 @@ + +shinyUI(pageWithSidebar( + + # Header: + headerPanel("R data reader"), + + # Input in sidepanel: + sidebarPanel( + tags$style(type='text/css', ".well { max-width: 20em; }"), + # Tags: + tags$head( + tags$style(type="text/css", "select[multiple] { width: 100%; height:10em}"), + tags$style(type="text/css", "select { width: 100%}"), + tags$style(type="text/css", "input { width: 19em; max-width:100%}") + ), + + # Select filetype: + selectInput("readFunction", "Function to read data:", c( + # Base R: + "read.table", + "read.csv", + "read.csv2", + "read.delim", + "read.delim2", + + # foreign functions: + "read.spss", + "read.arff", + "read.dbf", + "read.dta", + "read.epiiinfo", + "read.mtp", + "read.octave", + "read.ssd", + "read.systat", + "read.xport", + + # Advanced functions: + "scan", + "readLines" + )), + + # Argument selecter: + htmlOutput("ArgSelect"), + + # Argument field: + htmlOutput("ArgText"), + + # Upload data: + fileInput("file", "Upload data-file:"), + + # Variable selection: + htmlOutput("varselect"), + + br(), + + textInput("name","Dataset name:","Data"), + + downloadLink('downloadDump', 'Download source'), + downloadLink('downloadSave', 'Download binary') + + ), + + # Main: + mainPanel( + + tableOutput("table") + + ) +)) \ No newline at end of file diff --git a/regex_example.txt b/regex_example.txt new file mode 100644 index 0000000..66e0d36 --- /dev/null +++ b/regex_example.txt @@ -0,0 +1,2 @@ +$patron='/\\\\([^\\\\]*)\\\\([^\\\\]*)\\\\([a-z]{1})([0-9]{6})([a-z0-9]{3})([a-z]{3})\.([a-zA-Z]+)$/'; +$txt='C:windows\misdocumentos\150315\h150315\h150315bw4spr.bsq'; \ No newline at end of file diff --git a/share/Toolbox.tbx b/share/Toolbox.tbx new file mode 100644 index 0000000000000000000000000000000000000000..1d32b848527d742cf7d9c7ee242acd1cfede3c0b GIT binary patch literal 132608 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 literal 0 HcmV?d00001 diff --git "a/tama\303\261o de la muestra representativa.xlsx" "b/tama\303\261o de la muestra representativa.xlsx" new file mode 100644 index 0000000000000000000000000000000000000000..5e01e8f0c904f8ebb36b4b248614d4b64b906022 GIT binary patch literal 14969 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 literal 0 HcmV?d00001 diff --git a/test.pro b/test.pro new file mode 100644 index 0000000..419e6d5 --- /dev/null +++ b/test.pro @@ -0,0 +1,24 @@ +PRO test; Start the application + e = ENVI() + + ; Open an input file + file = FILEPATH('150110_bw2_spr.bsq', ROOT_DIR='E:\150110\h150110\', $ + SUBDIRECTORY = ['ortho_res']) + raster = e.OpenRaster(file) + + ; generate a mask + mask = (raster.GetData(BAND=0) ge 220) + + ; write out the mask to a file + file = FILEPATH('test3.bsq', ROOT_DIR='c:\vuelos\', $ + SUBDIRECTORY = ['temp']) + maskRaster = ENVIRaster(mask, URI=file) + maskRaster.Save + + ; create a masked raster + rasterWithMask = ENVIMaskRaster(raster, MaskRaster) + + ; display the new raster, the masked areas are transparent + view = e.GetView() + layer = view.CreateLayer(rasterWithMask) +END \ No newline at end of file