├── .github ├── ISSUE_TEMPLATE.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .gitmodules ├── CONTRIBUTING.md ├── README.md ├── distance_to_assets ├── Distance To Assets_arcmap.tbx ├── Distance To Assets_pro.tbx ├── DistanceToAssets.gdb │ ├── a00000001.TablesByName.atx │ ├── a00000001.freelist │ ├── a00000001.gdbindexes │ ├── a00000001.gdbtable │ ├── a00000001.gdbtablx │ ├── a00000002.gdbtable │ ├── a00000002.gdbtablx │ ├── a00000003.gdbindexes │ ├── a00000003.gdbtable │ ├── a00000003.gdbtablx │ ├── a00000004.CatItemsByPhysicalName.atx │ ├── a00000004.CatItemsByType.atx │ ├── a00000004.FDO_UUID.atx │ ├── a00000004.freelist │ ├── a00000004.gdbindexes │ ├── a00000004.gdbtable │ ├── a00000004.gdbtablx │ ├── a00000004.spx │ ├── a00000005.CatItemTypesByName.atx │ ├── a00000005.CatItemTypesByParentTypeID.atx │ ├── a00000005.CatItemTypesByUUID.atx │ ├── a00000005.gdbindexes │ ├── a00000005.gdbtable │ ├── a00000005.gdbtablx │ ├── a00000006.CatRelsByDestinationID.atx │ ├── a00000006.CatRelsByOriginID.atx │ ├── a00000006.CatRelsByType.atx │ ├── a00000006.FDO_UUID.atx │ ├── a00000006.freelist │ ├── a00000006.gdbindexes │ ├── a00000006.gdbtable │ ├── a00000006.gdbtablx │ ├── a00000007.CatRelTypesByBackwardLabel.atx │ ├── a00000007.CatRelTypesByDestItemTypeID.atx │ ├── a00000007.CatRelTypesByForwardLabel.atx │ ├── a00000007.CatRelTypesByName.atx │ ├── a00000007.CatRelTypesByOriginItemTypeID.atx │ ├── a00000007.CatRelTypesByUUID.atx │ ├── a00000007.gdbindexes │ ├── a00000007.gdbtable │ ├── a00000007.gdbtablx │ ├── a0000000d.gdbindexes │ ├── a0000000d.gdbtable │ ├── a0000000d.gdbtablx │ ├── a0000000d.spx │ ├── a0000000e.gdbindexes │ ├── a0000000e.gdbtable │ ├── a0000000e.gdbtablx │ ├── a00000051.gdbindexes │ ├── a00000051.gdbtable │ ├── a00000051.gdbtablx │ ├── a00000051.spx │ ├── a00000054.gdbindexes │ ├── a00000054.gdbtable │ ├── a00000054.gdbtablx │ ├── a00000054.spx │ ├── a00000077.gdbindexes │ ├── a00000077.gdbtable │ ├── a00000077.gdbtablx │ ├── a00000077.spx │ ├── a00000079.gdbindexes │ ├── a00000079.gdbtable │ ├── a00000079.gdbtablx │ ├── a00000079.spx │ ├── a0000007d.freelist │ ├── a0000007d.gdbindexes │ ├── a0000007d.gdbtable │ ├── a0000007d.gdbtablx │ ├── a0000007d.spx │ ├── a0000007e.freelist │ ├── a0000007e.gdbindexes │ ├── a0000007e.gdbtable │ ├── a0000007e.gdbtablx │ ├── a0000007e.spx │ ├── gdb │ └── timestamps ├── layers │ ├── Assets Geocoded.lyr │ ├── Assets_Geocoded.lyrx │ ├── Bases Geocoded.lyr │ └── Bases_Geocoded.lyrx └── scratch.gdb │ ├── a00000001.TablesByName.atx │ ├── a00000001.gdbindexes │ ├── a00000001.gdbtable │ ├── a00000001.gdbtablx │ ├── a00000002.gdbtable │ ├── a00000002.gdbtablx │ ├── a00000003.gdbindexes │ ├── a00000003.gdbtable │ ├── a00000003.gdbtablx │ ├── a00000004.CatItemsByPhysicalName.atx │ ├── a00000004.CatItemsByType.atx │ ├── a00000004.FDO_UUID.atx │ ├── a00000004.gdbindexes │ ├── a00000004.gdbtable │ ├── a00000004.gdbtablx │ ├── a00000004.spx │ ├── a00000005.CatItemTypesByName.atx │ ├── a00000005.CatItemTypesByParentTypeID.atx │ ├── a00000005.CatItemTypesByUUID.atx │ ├── a00000005.gdbindexes │ ├── a00000005.gdbtable │ ├── a00000005.gdbtablx │ ├── a00000006.CatRelsByDestinationID.atx │ ├── a00000006.CatRelsByOriginID.atx │ ├── a00000006.CatRelsByType.atx │ ├── a00000006.FDO_UUID.atx │ ├── a00000006.gdbindexes │ ├── a00000006.gdbtable │ ├── a00000006.gdbtablx │ ├── a00000007.CatRelTypesByBackwardLabel.atx │ ├── a00000007.CatRelTypesByDestItemTypeID.atx │ ├── a00000007.CatRelTypesByForwardLabel.atx │ ├── a00000007.CatRelTypesByName.atx │ ├── a00000007.CatRelTypesByOriginItemTypeID.atx │ ├── a00000007.CatRelTypesByUUID.atx │ ├── a00000007.gdbindexes │ ├── a00000007.gdbtable │ ├── a00000007.gdbtablx │ ├── gdb │ └── timestamps ├── geonames ├── Geonames Tools_arcmap.tbx ├── Geonames Tools_pro.tbx └── scripts │ ├── CheckInput.py │ └── LoadGeonames.py ├── griddedreferencegraphic ├── Gridded Reference Graphic.CreateGRGFromArea.pyt.xml ├── Gridded Reference Graphic.CreateGRGFromPoint.pyt.xml ├── Gridded Reference Graphic.CreateReferenceSystemGRGFromArea.pyt.xml ├── Gridded Reference Graphic.NumberFeatures.pyt.xml ├── Gridded Reference Graphic.pyt ├── Gridded Reference Graphic.pyt.xml ├── Gridded_Reference_Graphic.pyt.xml ├── layers │ ├── GRG.lyr │ ├── GRG.lyrx │ ├── GRGInputArea.lyr │ ├── GRGInputPoint.lyr │ ├── InputArea_FeatureSet.lyr │ ├── InputArea_FeatureSet.lyrx │ ├── InputArea_FeatureSetGDB.lyr │ ├── NumberFeaturesAreaInput.lyr │ ├── NumberedFeatures.lyr │ ├── NumberedFeatures.lyrx │ ├── OutputRefGrid.lyr │ ├── RelativeGRGInputArea.lyr │ ├── RelativeGRGInputPoint.lyr │ ├── RelativeNumberFeaturesAreaInput.lyr │ └── featuresetsWebMerc.gdb │ │ ├── a00000001.TablesByName.atx │ │ ├── a00000001.gdbindexes │ │ ├── a00000001.gdbtable │ │ ├── a00000001.gdbtablx │ │ ├── a00000002.gdbtable │ │ ├── a00000002.gdbtablx │ │ ├── a00000003.gdbindexes │ │ ├── a00000003.gdbtable │ │ ├── a00000003.gdbtablx │ │ ├── a00000004.CatItemsByPhysicalName.atx │ │ ├── a00000004.CatItemsByType.atx │ │ ├── a00000004.FDO_UUID.atx │ │ ├── a00000004.freelist │ │ ├── a00000004.gdbindexes │ │ ├── a00000004.gdbtable │ │ ├── a00000004.gdbtablx │ │ ├── a00000004.spx │ │ ├── a00000005.CatItemTypesByName.atx │ │ ├── a00000005.CatItemTypesByParentTypeID.atx │ │ ├── a00000005.CatItemTypesByUUID.atx │ │ ├── a00000005.gdbindexes │ │ ├── a00000005.gdbtable │ │ ├── a00000005.gdbtablx │ │ ├── a00000006.CatRelsByDestinationID.atx │ │ ├── a00000006.CatRelsByOriginID.atx │ │ ├── a00000006.CatRelsByType.atx │ │ ├── a00000006.FDO_UUID.atx │ │ ├── a00000006.gdbindexes │ │ ├── a00000006.gdbtable │ │ ├── a00000006.gdbtablx │ │ ├── a00000007.CatRelTypesByBackwardLabel.atx │ │ ├── a00000007.CatRelTypesByDestItemTypeID.atx │ │ ├── a00000007.CatRelTypesByForwardLabel.atx │ │ ├── a00000007.CatRelTypesByName.atx │ │ ├── a00000007.CatRelTypesByOriginItemTypeID.atx │ │ ├── a00000007.CatRelTypesByUUID.atx │ │ ├── a00000007.gdbindexes │ │ ├── a00000007.gdbtable │ │ ├── a00000007.gdbtablx │ │ ├── a00000009.gdbindexes │ │ ├── a00000009.gdbtable │ │ ├── a00000009.gdbtablx │ │ ├── a00000009.spx │ │ ├── a0000000a.gdbindexes │ │ ├── a0000000a.gdbtable │ │ ├── a0000000a.gdbtablx │ │ ├── a0000000a.spx │ │ ├── a0000000b.gdbindexes │ │ ├── a0000000b.gdbtable │ │ ├── a0000000b.gdbtablx │ │ ├── a0000000b.spx │ │ ├── gdb │ │ └── timestamps └── scripts │ ├── GRGTools.py │ ├── GRGUtilities.py │ ├── RefGrid.py │ ├── Utilities.py │ ├── __init__.py │ ├── grg_tool_help_illustration.png │ └── num_feat_tool_help_illustration.png ├── img ├── CreateNewBranchDialogScreenshot.png ├── NewPullRequestButtonIcon.png └── solutions-geoprocessing-toolbox_screenshot_14APR2016_824x400.png ├── incident_analysis ├── Adjust Sample Data Dates Tools_arcmap.tbx ├── Adjust Sample Data Dates Tools_pro.tbx ├── Incident Analysis Tools_arcmap.tbx ├── Incident Analysis Tools_pro.tbx └── layers │ ├── ClusterAnalysis.lyr │ ├── ClusterAnalysis.lyrx │ ├── CountIncidentByLOC.lyr │ ├── CountIncidentByLOC.lyrx │ ├── Find Percent Change.lyrx │ ├── HotSpotsByArea.lyr │ ├── HotSpotsByArea.lyrx │ ├── IncidentDensityFeatures.lyr │ ├── IncidentDensityFeatures.lyrx │ ├── IncidentDensitySurface.lyr │ ├── IncidentDensitySurface.lyrx │ ├── IncidentHotSpots.lyr │ ├── IncidentHotSpots.lyrx │ ├── PercentChange.lyr │ └── PercentChange.lyrx ├── license.txt ├── military_features ├── Military Features Tools_arcmap.tbx ├── application │ ├── AppendMilitaryFeatures.exe │ ├── Data │ │ ├── FieldMapping.xml │ │ └── SymbolIDToFeatureClassRules.xml │ ├── ESRI.ArcGIS.ADF.Local.dll │ ├── ESRI.ArcGIS.Carto.dll │ ├── ESRI.ArcGIS.Display.dll │ ├── ESRI.ArcGIS.Editor.dll │ ├── ESRI.ArcGIS.Framework.dll │ ├── ESRI.ArcGIS.Geodatabase.dll │ ├── ESRI.ArcGIS.Geometry.dll │ ├── ESRI.ArcGIS.Geoprocessing.dll │ ├── ESRI.ArcGIS.System.dll │ └── ESRI.ArcGIS.Version.dll ├── data │ └── mil2525c │ │ └── dictionary │ │ └── mil2525c.dat └── scripts │ ├── AppendMessageFile.py │ ├── AppendMilitaryFeatures.py │ ├── CalcRepRuleField.py │ ├── CalcSIDCField.py │ ├── DictionaryConstants.py │ ├── GeometryConverter.py │ ├── MessageIterator.py │ ├── MilitaryUtilities.py │ ├── SymbolDictionary.py │ ├── WriteFeatureFromMessage.py │ ├── WriteMessageFile.py │ ├── WriteMessageFromFeature.py │ └── WriteMilitaryFeatureClass.py ├── sun_position_analysis ├── Sun Position Analysis Tools_arcmap.tbx ├── Sun Position Analysis Tools_pro.tbx ├── layers │ ├── Hillshade.lyr │ └── Hillshade.lyrx └── scripts │ └── spa.py └── utils └── test ├── .gitignore ├── ClearingOperationsTestKickDesktop.bat ├── ClearingOperationsTestKickPro.bat ├── ClearingOperationsTestRunner.py ├── Configuration.py ├── DataDownload.py ├── MilitaryFeaturesTestKickDesktop.bat ├── MilitaryFeaturesTestRunner.py ├── Readme.md ├── TestKickDesktop.bat ├── TestKickPro.bat ├── TestRunner.py ├── UnitTestUtilities.py ├── WritingTests.md ├── arcpyAssert.py ├── clearing_operations_tests ├── ClearingOperationsCreateGRGFromAreaTestCase.py ├── ClearingOperationsCreateGRGFromPointTestCase.py ├── ClearingOperationsNumberFeaturesTestCase.py ├── ClearingOperationsTestSuite.py ├── CreateReferenceSystemGRGFromAreaTestCase.py └── __init__.py ├── distance_to_assets_tests ├── DistanceToAssetsCodeAssetsToBasesTestCase.py ├── DistanceToAssetsCopyGeolocatedLocationsTestCase.py ├── DistanceToAssetsRouteAssetsToBasesAGOLTestCase.py ├── DistanceToAssetsRouteAssetsToBasesLocalTestCase.py ├── DistanceToAssetsSummarizeTestCase.py ├── DistanceToAssetsTestSuite.py └── __init__.py ├── geonames_tests ├── GeoNamesTestCase.py ├── GeoNamesToolsTestSuite.py └── __init__.py ├── incident_analysis_tests ├── ClusterAnalysisTestCase.py ├── CountIncidentsByLOCTestCase.py ├── FindPercentChangeTestCase.py ├── HotSpotsByAreaTestCase.py ├── IncidentAnalysisToolsTestSuite.py ├── IncidentDensityTestCase.py ├── IncidentHotSpotsTestCase.py └── __init__.py ├── military_aspects_of_weather_tests ├── ImportCRUToRasterTestCase.py ├── ImportWMOStationDataTestCase.py ├── ImportWMOStationsTestCase.py ├── MilitaryAspectsOfWeatherTestSuite.py └── SubsetRasterWorkspaceTestCase.py ├── military_features_tests ├── AppendMessageFileTestCase.py ├── AppendMilitaryFeaturesTestCase.py ├── CalculateRepRuleTestCase.py ├── CalculateSidcTestCase.py ├── MilitaryFeaturesToolsTestSuite.py ├── WriteMessageFileTestCase.py ├── WriteMilitaryFeatureFromMessageTestCase.py └── __init__.py ├── sun_position_analysis_tests ├── SunPositionAnalysisToolsTestSuite.py ├── SunPositionAndHillshadeTestCase.py └── __init__.py └── test_data └── Readme.md /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Expected Behavior 4 | 5 | 6 | 7 | ## Current Behavior 8 | 9 | 10 | 11 | ## Possible Solution 12 | 13 | 14 | 15 | ## Steps to Reproduce (for bugs) 16 | 17 | 18 | 1. 19 | 2. 20 | 3. 21 | 4. 22 | 23 | ## Context 24 | 25 | 26 | 27 | ## Your Environment 28 | 29 | * Version used: 30 | * Environment name and version (e.g. Chrome 39, node.js 5.4): 31 | * Operating System and version (desktop or mobile): 32 | * Link to your project: 33 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Description 4 | 5 | 6 | ## Related Issue 7 | 8 | 9 | 10 | 11 | 12 | ## Motivation and Context 13 | 14 | 15 | ## How Has This Been Tested? 16 | 17 | 18 | 19 | 20 | ## Screenshots (if appropriate): 21 | 22 | ## Types of changes 23 | 24 | - [ ] Bug fix (non-breaking change which fixes an issue) 25 | - [ ] New feature (non-breaking change which adds functionality) 26 | - [ ] Breaking change (fix or feature that would cause existing functionality to change) 27 | 28 | ## Checklist: 29 | 30 | 31 | - [ ] My code follows the code style of this project. 32 | - [ ] My change requires a change to the documentation. 33 | - [ ] I have updated the documentation accordingly. 34 | - [ ] I have read the **CONTRIBUTING** document. 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Defense Template specific ignores 2 | maps/ 3 | scratch/ 4 | log/ 5 | arc.dir 6 | #*.pyt.xml -- We cannot ignore these files... these are documentation 7 | *.zip 8 | *.zip 9 | *.7z 10 | *-old.* 11 | *-old 12 | *-sav 13 | *-sav.* 14 | *Copy.* 15 | *.log 16 | *.sav 17 | *.pyproj 18 | *.sln 19 | log*.txt 20 | 21 | ############# 22 | ## Python 23 | ############# 24 | 25 | *.py[co] 26 | 27 | # Packages 28 | *.egg 29 | *.egg-info 30 | dist 31 | build 32 | eggs 33 | parts 34 | bin 35 | var 36 | sdist 37 | develop-eggs 38 | .installed.cfg 39 | 40 | ################# 41 | ## Visual Studio 42 | ################# 43 | 44 | # Build Folders (you can keep bin if you'd like, to store dlls and pdbs) 45 | [Bb]in/ 46 | [Oo]bj/ 47 | 48 | ################# 49 | ## Eclipse 50 | ################# 51 | 52 | # General 53 | .metadata 54 | bin/ 55 | tmp/ 56 | dist/ 57 | *.tmp 58 | *.bak 59 | *.swp 60 | *~.nib 61 | 62 | # Eclipse 63 | local.properties 64 | .classpath 65 | .settings/ 66 | .loadpath 67 | 68 | # External tool builders 69 | .externalToolBuilders/ 70 | 71 | # Locally stored "Eclipse launch configurations" 72 | *.launch 73 | 74 | # CDT-specific 75 | .cproject 76 | 77 | # PDT-specific 78 | .buildpath 79 | # mstest test results 80 | TestResults 81 | 82 | ## Ignore Visual Studio temporary files, build results, and 83 | ## files generated by popular Visual Studio add-ons. 84 | 85 | # User-specific files 86 | *.suo 87 | *.user 88 | *.sln.docstates 89 | 90 | # Build results 91 | [Dd]ebug/ 92 | [Rr]elease/ 93 | x64/ 94 | *_i.c 95 | *_p.c 96 | *.ilk 97 | *.meta 98 | *.obj 99 | *.pch 100 | *.pdb 101 | *.pgc 102 | *.pgd 103 | *.rsp 104 | *.sbr 105 | *.tlb 106 | *.tli 107 | *.tlh 108 | *.tmp 109 | *.log 110 | *.vspscc 111 | *.vssscc 112 | .builds 113 | 114 | # Visual C++ cache files 115 | ipch/ 116 | *.aps 117 | *.ncb 118 | *.opensdf 119 | *.sdf 120 | 121 | # Visual Studio profiler 122 | *.psess 123 | *.vsp 124 | *.vspx 125 | 126 | # Guidance Automation Toolkit 127 | *.gpState 128 | 129 | # ReSharper is a .NET coding add-in 130 | _ReSharper* 131 | 132 | # NCrunch 133 | *.ncrunch* 134 | .*crunch*.local.xml 135 | 136 | # Installshield output folder 137 | [Ee]xpress 138 | 139 | # DocProject is a documentation generator add-in 140 | DocProject/buildhelp/ 141 | DocProject/Help/*.HxT 142 | DocProject/Help/*.HxC 143 | DocProject/Help/*.hhc 144 | DocProject/Help/*.hhk 145 | DocProject/Help/*.hhp 146 | DocProject/Help/Html2 147 | DocProject/Help/html 148 | 149 | # Click-Once directory 150 | publish 151 | 152 | # Publish Web Output 153 | *.Publish.xml 154 | 155 | # NuGet Packages Directory 156 | packages 157 | 158 | # Windows Azure Build Output 159 | csx 160 | *.build.csdef 161 | 162 | # Windows Store app package directory 163 | AppPackages/ 164 | 165 | # Others 166 | [Bb]in 167 | [Oo]bj 168 | sql 169 | TestResults 170 | [Tt]est[Rr]esult* 171 | *.Cache 172 | ClientBin 173 | [Ss]tyle[Cc]op.* 174 | ~$* 175 | *.dbmdl 176 | Generated_Code #added for RIA/Silverlight projects 177 | 178 | # Backup & report files from converting an old project file to a newer 179 | # Visual Studio version. Backup files are not needed, because we have git ;-) 180 | _UpgradeReport_Files/ 181 | Backup*/ 182 | UpgradeLog*.XML 183 | 184 | ############ 185 | ## Windows 186 | ############ 187 | 188 | # Windows image file caches 189 | Thumbs.db 190 | 191 | # Folder config file 192 | Desktop.ini 193 | 194 | *.lock 195 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/.gitmodules -------------------------------------------------------------------------------- /distance_to_assets/Distance To Assets_arcmap.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/Distance To Assets_arcmap.tbx -------------------------------------------------------------------------------- /distance_to_assets/Distance To Assets_pro.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/Distance To Assets_pro.tbx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000001.TablesByName.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000001.TablesByName.atx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000001.freelist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000001.freelist -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000001.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000001.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000001.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000001.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000001.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000001.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000002.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000002.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000002.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000002.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000003.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000003.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000003.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000003.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000003.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000003.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000004.CatItemsByPhysicalName.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000004.CatItemsByPhysicalName.atx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000004.CatItemsByType.atx: -------------------------------------------------------------------------------- 1 |  QTwy}~3 2 | {70737809-852C-4A03-9E22-2CECEA5B9BFA}{70737809-852C-4A03-9E22-2CECEA5B9BFA}{70737809-852C-4A03-9E22-2CECEA5B9BFA}{70737809-852C-4A03-9E22-2CECEA5B9BFA}{70737809-852C-4A03-9E22-2CECEA5B9BFA}{70737809-852C-4A03-9E22-2CECEA5B9BFA}{70737809-852C-4A03-9E22-2CECEA5B9BFA}{8C368B12-A12E-4C7E-9638-C9C64E69E98F}{C29DA988-8C3E-45F7-8B5C-18E51EE7BEB4}{C29DA988-8C3E-45F7-8B5C-18E51EE7BEB4}{C29DA988-8C3E-45F7-8B5C-18E51EE7BEB4}{C29DA988-8C3E-45F7-8B5C-18E51EE7BEB4}{C29DA988-8C3E-45F7-8B5C-18E51EE7BEB4}{C673FE0F-7280-404F-8532-20755DD8FC06}{CD06BC3B-789D-4C51-AAFA-A467912B8965}{F3783E6F-65CA-4514-8315-CE3985DAD3B1}& -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000004.FDO_UUID.atx: -------------------------------------------------------------------------------- 1 | }yQTw 2 | 3~ {005D5169-B867-4C4B-B874-401E32C04195}{0CA1130B-6676-4C9F-8D93-8D45A67BB223}{42536B0F-CF51-4762-B4AA-FD8C8756EA38}{5050DA40-4F79-4452-8773-055CE3EA40E2}{5DE4DF53-5FE7-416F-B213-265D10639E57}{635A7A98-692B-43D2-A761-5F3C4EE1C6C2}{719D22F7-10B1-4355-A0DC-826BABCA4649}{755D1777-67FC-431C-87AA-630DEA543011}{7F728F9D-B8AB-465A-B104-555AA6A1AFA2}{86849FB9-2DC3-44DC-A1E3-F1AEEC563FFC}{89CA3E75-D0F2-4267-971A-66F42BA9B9CE}{8BDE9317-842C-40B9-80D0-CC12390F34EE}{A19099DE-B978-46D7-9AC1-FDB1A3CED2A0}{BAF58939-EAEE-4FE2-A306-E1AF46B21A2D}{C1E2B4EF-A64B-427B-A2F0-BC8D2F4F23A3}{CDE24124-38CB-4008-B6FF-72EA59FEE854}& -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000004.freelist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000004.freelist -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000004.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000004.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000004.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000004.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000004.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000004.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000004.spx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000004.spx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000005.CatItemTypesByName.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000005.CatItemTypesByName.atx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000005.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000005.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000005.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000005.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000005.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000005.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000006.CatRelsByDestinationID.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000006.CatRelsByDestinationID.atx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000006.CatRelsByOriginID.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000006.CatRelsByOriginID.atx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000006.CatRelsByType.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000006.CatRelsByType.atx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000006.FDO_UUID.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000006.FDO_UUID.atx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000006.freelist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000006.freelist -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000006.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000006.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000006.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000006.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000006.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000006.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000007.CatRelTypesByBackwardLabel.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000007.CatRelTypesByBackwardLabel.atx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000007.CatRelTypesByForwardLabel.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000007.CatRelTypesByForwardLabel.atx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000007.CatRelTypesByName.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000007.CatRelTypesByName.atx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000007.CatRelTypesByUUID.atx: -------------------------------------------------------------------------------- 1 |  2 |    {0D10B3A7-2F64-45E6-B7AC-2FC27BF2133C}{17E08ADB-2B31-4DCD-8FDD-DF529E88F843}{55D2F4DC-CB17-4E32-A8C7-47591E8C71DE}{583A5BAA-3551-41AE-8AA8-1185719F3889}{5DD0C1AF-CB3D-4FEA-8C51-CB3BA8D77CDB}{5F9085E0-788F-4354-AE3C-34C83A7EA784}{725BADAB-3452-491B-A795-55F32D67229C}{79CC71C8-B7D9-4141-9014-B6373E236ABB}{8DB31AF1-DF7C-4632-AA10-3CC44B0C6914}{908A4670-1111-48C6-8269-134FDD3FE617}{A1633A59-46BA-4448-8706-D8ABE2B2B02E}{B32B8563-0B96-4D32-92C4-086423AE9962}{CC28387C-441F-4D7C-A802-41A160317FE0}{D022DE33-45BD-424C-88BF-5B1B6B957BD3}{D088B110-190B-4229-BDF7-89FDDD14D1EA}{DC739A70-9B71-41E8-868C-008CF46F16D7}{DC78F1AB-34E4-43AC-BA47-1C4EABD0E7C7}{E79B44E3-F833-4B12-90A1-364EC4DDC43E}& -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000007.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000007.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000007.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000007.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000007.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000007.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000000d.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000000d.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000000d.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000000d.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000000d.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000000d.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000000d.spx: -------------------------------------------------------------------------------- 1 | @ -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000000e.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000000e.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000000e.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000000e.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000051.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000051.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000051.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000051.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000051.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000051.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000051.spx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000051.spx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000054.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000054.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000054.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000054.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000054.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000054.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000054.spx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000054.spx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000077.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000077.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000077.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000077.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000077.gdbtablx: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000077.spx: -------------------------------------------------------------------------------- 1 | @ -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000079.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000079.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000079.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a00000079.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000079.gdbtablx: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a00000079.spx: -------------------------------------------------------------------------------- 1 | @ -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000007d.freelist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000007d.freelist -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000007d.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000007d.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000007d.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000007d.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000007d.spx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000007d.spx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000007e.freelist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000007e.freelist -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000007e.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000007e.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000007e.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000007e.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/a0000007e.spx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/a0000007e.spx -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/gdb: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /distance_to_assets/DistanceToAssets.gdb/timestamps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/DistanceToAssets.gdb/timestamps -------------------------------------------------------------------------------- /distance_to_assets/layers/Assets Geocoded.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/layers/Assets Geocoded.lyr -------------------------------------------------------------------------------- /distance_to_assets/layers/Bases Geocoded.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/layers/Bases Geocoded.lyr -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000001.TablesByName.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000001.TablesByName.atx -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000001.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000001.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000001.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000001.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000001.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000001.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000002.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000002.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000002.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000002.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000003.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000003.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000003.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000003.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000004.CatItemsByPhysicalName.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000004.CatItemsByPhysicalName.atx -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000004.CatItemsByType.atx: -------------------------------------------------------------------------------- 1 | {C673FE0F-7280-404F-8532-20755DD8FC06}{F3783E6F-65CA-4514-8315-CE3985DAD3B1}& -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000004.FDO_UUID.atx: -------------------------------------------------------------------------------- 1 | {2169BA37-0DD0-4FFD-8221-007D15CD9035}{E3584D5D-7916-4352-A930-EF9533C60643}& -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000004.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000004.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000004.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000004.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000004.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000004.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000004.spx: -------------------------------------------------------------------------------- 1 | @ -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000005.CatItemTypesByName.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000005.CatItemTypesByName.atx -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000005.CatItemTypesByUUID.atx: -------------------------------------------------------------------------------- 1 | "   ! "  2 | {28DA9E89-FF80-4D6D-8926-4EE2B161677D}{35B601F7-45CE-4AFF-ADB7-7702D3839B12}{4ED4A58E-621F-4043-95ED-850FBA45FCBC}{5B966567-FB87-4DDE-938B-B4B37423539D}{5ED667A3-9CA9-44A2-8029-D95BF23704B9}{70737809-852C-4A03-9E22-2CECEA5B9BFA}{73718A66-AFB9-4B88-A551-CFFA0AE12620}{74737149-DCB5-4257-8904-B9724E32A530}{76357537-3364-48AF-A4BE-783C7C28B5CB}{767152D3-ED66-4325-8774-420D46674E07}{77292603-930F-475D-AE4F-B8970F42F394}{7771FC7D-A38B-4FD3-8225-639D17E9A131}{787BEA35-4A86-494F-BB48-500B96145B58}{8405ADD5-8DF8-4227-8FAC-3FCADE073386}{8637F1ED-8C04-4866-A44A-1CB8288B3C63}{8C368B12-A12E-4C7E-9638-C9C64E69E98F}{A300008D-0CEA-4F6A-9DFA-46AF829A3DF2}{A3803369-5FC2-4963-BAE0-13EFFC09DD73}{B606A7E1-FA5B-439C-849C-6E9C2481537B}{C29DA988-8C3E-45F7-8B5C-18E51EE7BEB4}{C673FE0F-7280-404F-8532-20755DD8FC06}{CD06BC3B-789D-4C51-AAFA-A467912B8965}{D4912162-3413-476E-9DA4-2AEFBBC16939}{D5A40288-029E-4766-8C81-DE3F61129371}{D86502F9-9758-45C6-9D23-6DD1A0107B47}{D98421EB-D582-4713-9484-43304D0810F6}{DB1B697A-3BB6-426A-98A2-6EE7A4C6AED3}{DC64B6E4-DC0F-43BD-B4F5-F22385DCF055}{DC9EF677-1AA3-45A7-8ACD-303A5202D0DC}{E6302665-416B-44FA-BE33-4E15916BA101}{F3783E6F-65CA-4514-8315-CE3985DAD3B1}{F8413DCB-2248-4935-BFE9-315F397E5110}{FBDD7DD6-4A25-40B7-9A1A-ECC3D1172447}{FFD09C28-FE70-4E25-907C-AF8E8A5EC5F3}&" -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000005.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000005.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000005.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000005.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000005.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000005.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000006.CatRelsByDestinationID.atx: -------------------------------------------------------------------------------- 1 | & -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000006.CatRelsByOriginID.atx: -------------------------------------------------------------------------------- 1 | & -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000006.CatRelsByType.atx: -------------------------------------------------------------------------------- 1 | & -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000006.FDO_UUID.atx: -------------------------------------------------------------------------------- 1 | & -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000006.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000006.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000006.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000006.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000006.gdbtablx: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000007.CatRelTypesByBackwardLabel.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000007.CatRelTypesByBackwardLabel.atx -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000007.CatRelTypesByForwardLabel.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000007.CatRelTypesByForwardLabel.atx -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000007.CatRelTypesByName.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000007.CatRelTypesByName.atx -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000007.CatRelTypesByUUID.atx: -------------------------------------------------------------------------------- 1 |  2 |     {0D10B3A7-2F64-45E6-B7AC-2FC27BF2133C}{17E08ADB-2B31-4DCD-8FDD-DF529E88F843}{55D2F4DC-CB17-4E32-A8C7-47591E8C71DE}{583A5BAA-3551-41AE-8AA8-1185719F3889}{5DD0C1AF-CB3D-4FEA-8C51-CB3BA8D77CDB}{5F9085E0-788F-4354-AE3C-34C83A7EA784}{725BADAB-3452-491B-A795-55F32D67229C}{79CC71C8-B7D9-4141-9014-B6373E236ABB}{8DB31AF1-DF7C-4632-AA10-3CC44B0C6914}{908A4670-1111-48C6-8269-134FDD3FE617}{A1633A59-46BA-4448-8706-D8ABE2B2B02E}{B32B8563-0B96-4D32-92C4-086423AE9962}{CC28387C-441F-4D7C-A802-41A160317FE0}{D022DE33-45BD-424C-88BF-5B1B6B957BD3}{D088B110-190B-4229-BDF7-89FDDD14D1EA}{DC739A70-9B71-41E8-868C-008CF46F16D7}{DC78F1AB-34E4-43AC-BA47-1C4EABD0E7C7}{E79B44E3-F833-4B12-90A1-364EC4DDC43E}& -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000007.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000007.gdbindexes -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000007.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000007.gdbtable -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/a00000007.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/a00000007.gdbtablx -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/gdb: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /distance_to_assets/scratch.gdb/timestamps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/distance_to_assets/scratch.gdb/timestamps -------------------------------------------------------------------------------- /geonames/Geonames Tools_arcmap.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/geonames/Geonames Tools_arcmap.tbx -------------------------------------------------------------------------------- /geonames/Geonames Tools_pro.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/geonames/Geonames Tools_pro.tbx -------------------------------------------------------------------------------- /griddedreferencegraphic/Gridded Reference Graphic.pyt: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | ''' 3 | ------------------------------------------------------------------------------ 4 | Copyright 2017-2018 Esri 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | ------------------------------------------------------------------------------ 15 | ================================================== 16 | Gridded Reference Graphic.pyt 17 | -------------------------------------------------- 18 | requirements: ArcGIS 10.3.1+, ArcGIS Pro 2.1+ 19 | author: ArcGIS Solutions 20 | contact: support@esri.com 21 | company: Esri 22 | ================================================== 23 | description: 24 | Python toolbox container for Gridded Reference Graphic. 25 | ================================================== 26 | ''' 27 | 28 | 29 | from scripts.GRGTools import * 30 | 31 | 32 | class Toolbox(object): 33 | ''' 34 | Gridded Reference Graphic Toolbox class container. 35 | ''' 36 | 37 | def __init__(self): 38 | ''' constructor ''' 39 | self.label = u'Gridded Reference Graphic' 40 | self.alias = "grg" 41 | # NOTE: this description doesn't do anything, description shown in ArcGIS 42 | # comes from the pyt.xml file 43 | self.description = u'A Geoprocessing Toolbox for ArcGIS for Desktop that contains collections of tools GRG operations.' 44 | 45 | self.tools = [ 46 | 47 | # GRG 48 | CreateGRGFromArea, 49 | CreateGRGFromPoint, 50 | CreateReferenceSystemGRGFromArea, 51 | NumberFeatures, 52 | 53 | ] 54 | -------------------------------------------------------------------------------- /griddedreferencegraphic/Gridded Reference Graphic.pyt.xml: -------------------------------------------------------------------------------- 1 | 2 | 20180504141046001.0TRUE201807301603161500000005000ItemDescriptionc:\program files\arcgis\pro\Resources\Help\gpMilitary Tools<DIV STYLE="text-align:Left;"><DIV><P><SPAN><SPAN>A Geoprocessing Toolbox for ArcGIS for Desktop that contains collections of tools to import geometry from tables, determine ranges, and provide basic visibility analysis capabilities.</SPAN></SPAN></P></DIV></DIV>ArcToolbox Toolbox 3 | -------------------------------------------------------------------------------- /griddedreferencegraphic/Gridded_Reference_Graphic.pyt.xml: -------------------------------------------------------------------------------- 1 | 2 | 20180425164527001.0TRUE20180430213311c:\program files\arcgis\pro\Resources\Help\gpMilitary_ToolsArcToolbox Toolbox 3 | -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/GRG.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/GRG.lyr -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/GRGInputArea.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/GRGInputArea.lyr -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/GRGInputPoint.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/GRGInputPoint.lyr -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/InputArea_FeatureSet.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/InputArea_FeatureSet.lyr -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/InputArea_FeatureSetGDB.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/InputArea_FeatureSetGDB.lyr -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/NumberFeaturesAreaInput.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/NumberFeaturesAreaInput.lyr -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/NumberedFeatures.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/NumberedFeatures.lyr -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/OutputRefGrid.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/OutputRefGrid.lyr -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/RelativeGRGInputArea.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/RelativeGRGInputArea.lyr -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/RelativeGRGInputPoint.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/RelativeGRGInputPoint.lyr -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/RelativeNumberFeaturesAreaInput.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/RelativeNumberFeaturesAreaInput.lyr -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000001.TablesByName.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000001.TablesByName.atx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000001.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000001.gdbindexes -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000001.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000001.gdbtable -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000001.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000001.gdbtablx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000002.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000002.gdbtable -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000002.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000002.gdbtablx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000003.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000003.gdbindexes -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000003.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000003.gdbtable -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000004.CatItemsByPhysicalName.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000004.CatItemsByPhysicalName.atx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000004.freelist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000004.freelist -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000004.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000004.gdbindexes -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000004.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000004.gdbtable -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000004.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000004.gdbtablx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000004.spx: -------------------------------------------------------------------------------- 1 | @ -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000005.CatItemTypesByName.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000005.CatItemTypesByName.atx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000005.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000005.gdbindexes -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000005.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000005.gdbtable -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000005.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000005.gdbtablx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000006.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000006.gdbindexes -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000006.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000006.gdbtable -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000006.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000006.gdbtablx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000007.CatRelTypesByBackwardLabel.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000007.CatRelTypesByBackwardLabel.atx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000007.CatRelTypesByForwardLabel.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000007.CatRelTypesByForwardLabel.atx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000007.CatRelTypesByName.atx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000007.CatRelTypesByName.atx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000007.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000007.gdbindexes -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000007.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000007.gdbtable -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000007.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000007.gdbtablx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000009.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000009.gdbindexes -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000009.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000009.gdbtable -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000009.gdbtablx: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a00000009.spx: -------------------------------------------------------------------------------- 1 | @ -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000a.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000a.gdbindexes -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000a.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000a.gdbtable -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000a.gdbtablx: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000a.spx: -------------------------------------------------------------------------------- 1 | @ -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000b.gdbindexes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000b.gdbindexes -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000b.gdbtable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000b.gdbtable -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000b.gdbtablx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000b.gdbtablx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000b.spx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/a0000000b.spx -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/gdb: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /griddedreferencegraphic/layers/featuresetsWebMerc.gdb/timestamps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/layers/featuresetsWebMerc.gdb/timestamps -------------------------------------------------------------------------------- /griddedreferencegraphic/scripts/Utilities.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | ''' 3 | ------------------------------------------------------------------------------ 4 | Copyright 2017 Esri 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | ------------------------------------------------------------------------------ 17 | 18 | ================================================== 19 | Utilities.py 20 | ================================================== 21 | 22 | Utility module for Operational Graphics toolboxes 23 | 24 | ================================================== 25 | HISTORY: 26 | 27 | 9/3/2015 - mf - Created utilities.py to centralize common tool functions 28 | 9/14/2017 - mf - Update for resetLayerPaths 29 | 30 | ================================================== 31 | ''' 32 | 33 | import os 34 | import sys 35 | import string 36 | import random 37 | import arcpy 38 | 39 | PLATFORM_PRO = 'ARCGIS_PRO' 40 | PLATFORM_DESKTOP = 'ARCMAP' 41 | PLATFORM_OTHER = 'OTHER' 42 | PLATFORM_NOT_SET = 'NOT_SET' 43 | 44 | platform = None 45 | app_found = PLATFORM_NOT_SET 46 | 47 | # Returns Pro or ArcMap only 48 | def GetPlatform() : 49 | 50 | global platform 51 | 52 | if platform is None : 53 | 54 | platform = PLATFORM_DESKTOP 55 | 56 | installInfo = arcpy.GetInstallInfo() 57 | if installInfo['ProductName'] == 'ArcGISPro': 58 | platform = PLATFORM_PRO 59 | 60 | return platform 61 | 62 | # Returns Pro or ArcMap if running in application (where arcpy.mapping or arcpy.mp present) 63 | # and Other if in stand-alone arcpy 64 | def GetApplication(): 65 | '''Return app environment as: ARCMAP, ARCGIS_PRO, OTHER''' 66 | 67 | global app_found 68 | if app_found != PLATFORM_NOT_SET: 69 | return app_found 70 | 71 | try: 72 | from arcpy import mp 73 | except ImportError: 74 | try: 75 | from arcpy import mapping 76 | mxd = arcpy.mapping.MapDocument("CURRENT") 77 | app_found = PLATFORM_DESKTOP 78 | return app_found 79 | except: 80 | app_found = PLATFORM_OTHER 81 | return app_found 82 | try: 83 | aprx = arcpy.mp.ArcGISProject('CURRENT') 84 | app_found = PLATFORM_PRO 85 | return app_found 86 | except: 87 | app_found = PLATFORM_OTHER 88 | return app_found 89 | 90 | def MakeScratchGeodatabase(): 91 | ''' 92 | ''' 93 | name = ''.join([random.choice(string.ascii_uppercase) for _ in range(6)]) 94 | ws = arcpy.CreateFileGDB_management('%scratchFolder%',name,'CURRENT')[0] 95 | return ws -------------------------------------------------------------------------------- /griddedreferencegraphic/scripts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/scripts/__init__.py -------------------------------------------------------------------------------- /griddedreferencegraphic/scripts/grg_tool_help_illustration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/scripts/grg_tool_help_illustration.png -------------------------------------------------------------------------------- /griddedreferencegraphic/scripts/num_feat_tool_help_illustration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/griddedreferencegraphic/scripts/num_feat_tool_help_illustration.png -------------------------------------------------------------------------------- /img/CreateNewBranchDialogScreenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/img/CreateNewBranchDialogScreenshot.png -------------------------------------------------------------------------------- /img/NewPullRequestButtonIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/img/NewPullRequestButtonIcon.png -------------------------------------------------------------------------------- /img/solutions-geoprocessing-toolbox_screenshot_14APR2016_824x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/img/solutions-geoprocessing-toolbox_screenshot_14APR2016_824x400.png -------------------------------------------------------------------------------- /incident_analysis/Adjust Sample Data Dates Tools_arcmap.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/incident_analysis/Adjust Sample Data Dates Tools_arcmap.tbx -------------------------------------------------------------------------------- /incident_analysis/Adjust Sample Data Dates Tools_pro.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/incident_analysis/Adjust Sample Data Dates Tools_pro.tbx -------------------------------------------------------------------------------- /incident_analysis/Incident Analysis Tools_arcmap.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/incident_analysis/Incident Analysis Tools_arcmap.tbx -------------------------------------------------------------------------------- /incident_analysis/Incident Analysis Tools_pro.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/incident_analysis/Incident Analysis Tools_pro.tbx -------------------------------------------------------------------------------- /incident_analysis/layers/ClusterAnalysis.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/incident_analysis/layers/ClusterAnalysis.lyr -------------------------------------------------------------------------------- /incident_analysis/layers/CountIncidentByLOC.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/incident_analysis/layers/CountIncidentByLOC.lyr -------------------------------------------------------------------------------- /incident_analysis/layers/HotSpotsByArea.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/incident_analysis/layers/HotSpotsByArea.lyr -------------------------------------------------------------------------------- /incident_analysis/layers/IncidentDensityFeatures.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/incident_analysis/layers/IncidentDensityFeatures.lyr -------------------------------------------------------------------------------- /incident_analysis/layers/IncidentDensitySurface.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/incident_analysis/layers/IncidentDensitySurface.lyr -------------------------------------------------------------------------------- /incident_analysis/layers/IncidentHotSpots.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/incident_analysis/layers/IncidentHotSpots.lyr -------------------------------------------------------------------------------- /incident_analysis/layers/PercentChange.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/incident_analysis/layers/PercentChange.lyr -------------------------------------------------------------------------------- /military_features/Military Features Tools_arcmap.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/Military Features Tools_arcmap.tbx -------------------------------------------------------------------------------- /military_features/application/AppendMilitaryFeatures.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/application/AppendMilitaryFeatures.exe -------------------------------------------------------------------------------- /military_features/application/Data/FieldMapping.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Name 5 | uniquedesignation 6 | 7 | 8 | Parent 9 | higherformation 10 | 11 | 12 | DTG 13 | datetimevalid 14 | 15 | 16 | Quantity 17 | quantity 18 | 19 | 20 | X 21 | x 22 | 23 | 24 | Y 25 | y 26 | 27 | 28 | Z 29 | z 30 | 31 | 32 | SComment 33 | staffcomment 34 | 35 | 36 | Info 37 | additionalinformation 38 | 39 | 40 | EType 41 | type 42 | 43 | 44 | -------------------------------------------------------------------------------- /military_features/application/ESRI.ArcGIS.ADF.Local.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/application/ESRI.ArcGIS.ADF.Local.dll -------------------------------------------------------------------------------- /military_features/application/ESRI.ArcGIS.Carto.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/application/ESRI.ArcGIS.Carto.dll -------------------------------------------------------------------------------- /military_features/application/ESRI.ArcGIS.Display.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/application/ESRI.ArcGIS.Display.dll -------------------------------------------------------------------------------- /military_features/application/ESRI.ArcGIS.Editor.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/application/ESRI.ArcGIS.Editor.dll -------------------------------------------------------------------------------- /military_features/application/ESRI.ArcGIS.Framework.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/application/ESRI.ArcGIS.Framework.dll -------------------------------------------------------------------------------- /military_features/application/ESRI.ArcGIS.Geodatabase.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/application/ESRI.ArcGIS.Geodatabase.dll -------------------------------------------------------------------------------- /military_features/application/ESRI.ArcGIS.Geometry.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/application/ESRI.ArcGIS.Geometry.dll -------------------------------------------------------------------------------- /military_features/application/ESRI.ArcGIS.Geoprocessing.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/application/ESRI.ArcGIS.Geoprocessing.dll -------------------------------------------------------------------------------- /military_features/application/ESRI.ArcGIS.System.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/application/ESRI.ArcGIS.System.dll -------------------------------------------------------------------------------- /military_features/application/ESRI.ArcGIS.Version.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/application/ESRI.ArcGIS.Version.dll -------------------------------------------------------------------------------- /military_features/data/mil2525c/dictionary/mil2525c.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/military_features/data/mil2525c/dictionary/mil2525c.dat -------------------------------------------------------------------------------- /military_features/scripts/AppendMessageFile.py: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------------------- 2 | # Copyright 2013 Esri 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | #---------------------------------------------------------------------------------- 15 | # AppendMessageFile.py 16 | # Description: Converts Military Feature Class to XML file, but appends to XML file 17 | # instead of overwriting the existing file 18 | # Requirements: ArcGIS Desktop Standard 19 | #---------------------------------------------------------------------------------- 20 | import WriteMessageFromFeature 21 | 22 | WriteMessageFromFeature.appendFile = True 23 | WriteMessageFromFeature.writeMessageFile() 24 | -------------------------------------------------------------------------------- /military_features/scripts/MessageIterator.py: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------------------- 2 | # Copyright 2013 Esri 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | #---------------------------------------------------------------------------------- 15 | # MessageIterator.py 16 | # Description: Iterates through an xml file with Runtime/GeoMessage Message format 17 | # and returns message tags/values as a dictionary 18 | #---------------------------------------------------------------------------------- 19 | 20 | import xml.dom.minidom 21 | import os.path 22 | import DictionaryConstants 23 | 24 | class MessageIterator: 25 | 26 | # The Tag to search for 27 | MessageTagName = DictionaryConstants.MessageTagName # "geomessage" # ex. message -or- geomessage 28 | 29 | def __init__(self, messageFileName): 30 | self.messageFileName = messageFileName 31 | 32 | if not os.path.isfile(messageFileName) : 33 | msg = "File not found: " + messageFileName 34 | raise IOError(msg) 35 | 36 | doc = xml.dom.minidom.parse(messageFileName) 37 | self.messageNodes = doc.getElementsByTagName(MessageIterator.MessageTagName) # ex."message" 38 | self.currentMessageIndex = 0 39 | self.lastMessageIndex = len(self.messageNodes) - 1 40 | 41 | def getMessageSicControlPointsFromXml(self, messageElementXml) : 42 | 43 | node = messageElementXml 44 | 45 | if node.nodeType != xml.dom.Node.ELEMENT_NODE : 46 | return None, None, None 47 | 48 | attributes = { } 49 | 50 | # print 'Element name: %s' % node.nodeName 51 | 52 | try : 53 | sic = node.getElementsByTagName(DictionaryConstants.Tag_SymbolId)[0].childNodes[0].data 54 | except : 55 | print "Warning: No SIDC Tag in Message" 56 | sic = DictionaryConstants.DEFAULT_POINT_SIDC 57 | 58 | try : 59 | controlPoints = node.getElementsByTagName(DictionaryConstants.Tag_ControlPoints)[0].childNodes[0].data 60 | except : 61 | print "Warning: No ControlPoints Tag in Message" 62 | controlPoints = "0.0, 0.0" 63 | 64 | childNodes = node.getElementsByTagName("*") 65 | 66 | for childNode in childNodes: 67 | if childNode.nodeType == childNode.ELEMENT_NODE: 68 | # print childNode.tagName, childNode.childNodes[0].data 69 | tag = childNode.tagName 70 | if (not(tag == DictionaryConstants.Tag_SymbolId) \ 71 | or (tag == DictionaryConstants.Tag_ControlPoints)) : 72 | attributes[tag] = childNode.childNodes[0].data 73 | 74 | return sic, controlPoints, attributes 75 | 76 | def __iter__(self) : 77 | return self 78 | 79 | def next(self) : 80 | if self.currentMessageIndex > self.lastMessageIndex: 81 | raise StopIteration 82 | else: 83 | node = self.messageNodes[self.currentMessageIndex] 84 | sic, controlPoints, attributes = self.getMessageSicControlPointsFromXml(node) 85 | self.currentMessageIndex += 1 86 | 87 | return sic, controlPoints, attributes -------------------------------------------------------------------------------- /military_features/scripts/WriteMessageFile.py: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------------------- 2 | # Copyright 2013 Esri 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | #---------------------------------------------------------------------------------- 15 | # WriteMessageFile.py 16 | # Description: Converts Military Feature Class to XML file 17 | # Requirements: ArcGIS Desktop Standard 18 | #---------------------------------------------------------------------------------- 19 | 20 | import WriteMessageFromFeature 21 | 22 | WriteMessageFromFeature.writeMessageFile() 23 | -------------------------------------------------------------------------------- /military_features/scripts/WriteMilitaryFeatureClass.py: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------------------------------------- 2 | # Copyright 2013 Esri 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | #---------------------------------------------------------------------------------- 15 | # WriteMilitaryFeatureClass.py 16 | # Description: Converts XML file to Military Feature Class 17 | # Requirements: ArcGIS Desktop Standard 18 | #---------------------------------------------------------------------------------- 19 | 20 | import WriteFeatureFromMessage 21 | 22 | WriteFeatureFromMessage.writeFeaturesFromMessageFile() 23 | 24 | -------------------------------------------------------------------------------- /sun_position_analysis/Sun Position Analysis Tools_arcmap.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/sun_position_analysis/Sun Position Analysis Tools_arcmap.tbx -------------------------------------------------------------------------------- /sun_position_analysis/Sun Position Analysis Tools_pro.tbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/sun_position_analysis/Sun Position Analysis Tools_pro.tbx -------------------------------------------------------------------------------- /sun_position_analysis/layers/Hillshade.lyr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/sun_position_analysis/layers/Hillshade.lyr -------------------------------------------------------------------------------- /utils/test/.gitignore: -------------------------------------------------------------------------------- 1 | # ignore temporary test data 2 | test_data/ 3 | -------------------------------------------------------------------------------- /utils/test/ClearingOperationsTestKickDesktop.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | rem ------------------------------------------------------------------------------ 3 | rem Copyright 2015-2017 Esri 4 | rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | rem you may not use this file except in compliance with the License. 6 | rem You may obtain a copy of the License at 7 | rem 8 | rem http://www.apache.org/licenses/LICENSE-2.0 9 | rem 10 | rem Unless required by applicable law or agreed to in writing, software 11 | rem distributed under the License is distributed on an "AS IS" BASIS, 12 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | rem See the License for the specific language governing permissions and 14 | rem limitations under the License. 15 | rem ------------------------------------------------------------------------------ 16 | rem TestKickDesktop.bat 17 | rem ------------------------------------------------------------------------------ 18 | rem requirements: 19 | rem * ArcGIS Desktop 10.X+ 20 | rem * Python 2.7 21 | rem author: ArcGIS Solutions 22 | rem company: Esri 23 | rem ================================================== 24 | rem description: 25 | rem This file starts the test running for Desktop (Python 2.7) 26 | rem 27 | rem ================================================== 28 | rem history: 29 | rem 10/06/2015 - MF - placeholder 30 | rem 10/30/2015 - MF - tests running 31 | rem 12/01/2015 - JH - added parameter for default log file name 32 | rem 07/05/2016 - MF - updates to changes for Pro 1.3+ 33 | rem 02/24/2017 - MF - more updates for Pro 1.4.1/ArcMap 10.5 34 | rem 07/20/2017 - MF - split BAT into PRO and MAP versions 35 | rem ================================================== 36 | 37 | REM === TEST SETUP =================================== 38 | REM === TEST SETUP =================================== 39 | 40 | 41 | REM === LOG SETUP ==================================== 42 | REM usage: set LOG= 43 | REM name is optional; if not specified, name will be specified for you 44 | set LOG= 45 | REM === LOG SETUP ==================================== 46 | 47 | REM === RUN DESKTOP VERSION ========================== 48 | REM If you have BOTH versions of Python installed use 49 | REM these lines 50 | REM ================================================== 51 | 52 | ECHO Python 2.7 Tests ================================ 53 | REM The location of python.exe will depend upon your installation 54 | REM of Python 2.7. Modify the following line as necessary: 55 | "C:\Python27\ArcGIS10.3\python.exe" ClearingOperationsTestRunner.py %LOG% 56 | REM check if Desktop for ArcGIS/Python 2.7 tests failed 57 | IF %ERRORLEVEL% NEQ 0 ( 58 | ECHO 'One or more tests failed' 59 | ) ELSE ( 60 | ECHO 'Tests passed' 61 | ) 62 | REM === RUN DESKTOP VERSION ========================== 63 | 64 | 65 | REM === CLEANUP ====================================== 66 | REM === CLEANUP ====================================== 67 | 68 | EXIT /B %ERRORLEVEL% 69 | -------------------------------------------------------------------------------- /utils/test/ClearingOperationsTestKickPro.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | rem ------------------------------------------------------------------------------ 3 | rem Copyright 2015-2017 Esri 4 | rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | rem you may not use this file except in compliance with the License. 6 | rem You may obtain a copy of the License at 7 | rem 8 | rem http://www.apache.org/licenses/LICENSE-2.0 9 | rem 10 | rem Unless required by applicable law or agreed to in writing, software 11 | rem distributed under the License is distributed on an "AS IS" BASIS, 12 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | rem See the License for the specific language governing permissions and 14 | rem limitations under the License. 15 | rem ------------------------------------------------------------------------------ 16 | rem TestKickPro.bat 17 | rem ------------------------------------------------------------------------------ 18 | rem requirements: 19 | rem * ArcGIS Pro 1.3+ 20 | rem * Python Python 3.4+ 21 | rem author: ArcGIS Solutions 22 | rem company: Esri 23 | rem ================================================== 24 | rem description: 25 | rem This file starts the test running for ArcGIS Pro (Python 3.4+). 26 | rem 27 | rem ================================================== 28 | rem history: 29 | rem 10/06/2015 - MF - placeholder 30 | rem 10/30/2015 - MF - tests running 31 | rem 12/01/2015 - JH - added parameter for default log file name 32 | rem 07/05/2016 - MF - updates to changes for Pro 1.3+ 33 | rem 02/24/2017 - MF - more updates for Pro 1.4.1/ArcMap 10.5 34 | rem 07/20/2017 - MF - split BAT into PRO and MAP versions 35 | rem ================================================== 36 | 37 | REM === TEST SETUP =================================== 38 | REM === TEST SETUP =================================== 39 | 40 | 41 | REM === LOG SETUP ==================================== 42 | REM usage: set LOG= 43 | REM name is optional; if not specified, name will be specified for you 44 | set LOG= 45 | REM === LOG SETUP ==================================== 46 | 47 | REM === RUN PRO TESTS ================================ 48 | ECHO Python 3.4 Tests ================================ 49 | REM The location of python.exe will depend upon your installation 50 | REM of ArcGIS Pro. Modify the following line as necessary: 51 | "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe" ClearingOperationsTestRunner.py %LOG% 52 | REM check if ArcGIS Pro/Python 3.4 tests failed 53 | IF %ERRORLEVEL% NEQ 0 ( 54 | ECHO 'One or more tests failed' 55 | ) 56 | REM === RUN PRO TESTS ================================ 57 | 58 | 59 | REM === CLEANUP ====================================== 60 | REM === CLEANUP ====================================== 61 | 62 | EXIT /B %ERRORLEVEL% 63 | -------------------------------------------------------------------------------- /utils/test/ClearingOperationsTestRunner.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | ''' 3 | ------------------------------------------------------------------------------ 4 | Copyright 2015 - 2017 Esri 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | ------------------------------------------------------------------------------ 17 | TestRunner.py 18 | ------------------------------------------------------------------------------ 19 | requirements: 20 | * ArcGIS Desktop 10.X+ or ArcGIS Pro 1.X+ 21 | * Python 2.7 or Python 3.4 22 | author: ArcGIS Solutions 23 | company: Esri 24 | ================================================== 25 | description: 26 | Runs Individual Test Suite 27 | ================================================== 28 | ''' 29 | 30 | import datetime 31 | import logging 32 | import os 33 | import sys 34 | import unittest 35 | 36 | import arcpy 37 | 38 | import Configuration 39 | import UnitTestUtilities 40 | import DataDownload 41 | import TestRunner 42 | 43 | logFileFromBAT = None 44 | if len(sys.argv) > 1: 45 | logFileFromBAT = sys.argv[1] #if we have an explicit log file name passed in 46 | 47 | def main(): 48 | ''' main test logic ''' 49 | print("TestRunner.py - main") 50 | 51 | if Configuration.DEBUG == True: 52 | print("Debug messaging is ON") 53 | logLevel = logging.DEBUG 54 | else: 55 | print("Debug messaging is OFF") 56 | logLevel = logging.INFO 57 | 58 | # setup logger 59 | if not logFileFromBAT == None: 60 | Configuration.Logger = UnitTestUtilities.initializeLogger(logFileFromBAT, logLevel) 61 | else: 62 | Configuration.GetLogger(logLevel) 63 | 64 | print("Logging results to: " + str(Configuration.LoggerFile)) 65 | UnitTestUtilities.setUpLogFileHeader() 66 | 67 | result = runTestSuite() 68 | 69 | TestRunner.logTestResults(result) 70 | 71 | return result.wasSuccessful() 72 | 73 | def runTestSuite(): 74 | ''' collect all test suites before running them ''' 75 | if Configuration.DEBUG == True: print("TestRunner.py - runTestSuite") 76 | testSuite = unittest.TestSuite() 77 | result = unittest.TestResult() 78 | 79 | #What Platform are we running on? 80 | Configuration.GetPlatform() 81 | Configuration.Logger.info('Running on Platform: ' + Configuration.Platform) 82 | 83 | testSuite.addTests(addClearingOperationsSuite()) 84 | 85 | Configuration.Logger.info("running " + str(testSuite.countTestCases()) + " tests...") 86 | 87 | # Run all of the tests added above 88 | testSuite.run(result) 89 | 90 | Configuration.Logger.info("Test success: {0}".format(str(result.wasSuccessful()))) 91 | 92 | return result 93 | 94 | def addClearingOperationsSuite(): 95 | '''Add all Clearing operations Tests''' 96 | Configuration.Logger.debug("TestRunner.py - addClearingOperationsSuite") 97 | from clearing_operations_tests import ClearingOperationsTestSuite 98 | suite = ClearingOperationsTestSuite.getTestSuite() 99 | return suite 100 | 101 | # MAIN ============================================= 102 | if __name__ == "__main__": 103 | if Configuration.DEBUG == True: 104 | print("Starting TestRunner.py") 105 | 106 | exitAsBoolean = main() 107 | 108 | exitAsCode = 0 if exitAsBoolean else 1 109 | 110 | sys.exit(exitAsCode) 111 | -------------------------------------------------------------------------------- /utils/test/DataDownload.py: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------ 2 | # Copyright 2015 - 2017 Esri 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | #----------------------------------------------------------------------------- 15 | # DataDownload.py 16 | # Description: This script downloads sample data from ArcGIS Online, temporarily 17 | # saves the zip file, extracts the zip to the target location, then deletes the 18 | # temporary zip file. 19 | # Requirements: ArcGIS Desktop Standard 20 | # ---------------------------------------------------------------------------- 21 | # 22 | # ================================================== 23 | # history: 24 | # 12/01/2015 - JH - creation 25 | # ================================================== 26 | 27 | import arcpy 28 | import os 29 | import sys 30 | import logging 31 | import zipfile 32 | import UnitTestUtilities 33 | import Configuration 34 | 35 | def createDataFolder(path): 36 | ''' If it doesn't already exist, create directory ''' 37 | if not os.path.exists(path): 38 | os.makedirs(path) 39 | return path 40 | 41 | def createFGDB(gPath): 42 | ''' Create a file geodatabase from the input path. Path should include the file geodatabase name like: 43 | \...\\.gdb''' 44 | result = arcpy.CreateFileGDB_management(os.path.dirname(gPath), os.path.basename(gPath),"CURRENT") 45 | if result.maxSeverity > 1: 46 | arcpy.AddError("ERROR (DataDownload.createFileGDB): " + str(result.getMessages())) 47 | return None 48 | else: 49 | return path 50 | 51 | def saveOnlineDataAsZip(url, zipName): 52 | ''' Save the zip file from the specified url to the current directory, passing in ''' 53 | ''' the name to use for the saved zip file ''' 54 | try: 55 | # Python 2 56 | import urllib 57 | (zipFile, headers) = urllib.urlretrieve(url, zipName) 58 | return zipFile 59 | except: 60 | # Python 3 61 | import urllib.request 62 | (zipFile, headers) = urllib.request.urlretrieve(url, zipName) 63 | return zipFile 64 | 65 | def extractDataZip(zip, path): 66 | ''' Extract zip file data into the given path ''' 67 | with zipfile.ZipFile(zip) as f: 68 | f.extractall(path) 69 | 70 | def deleteZip(tempFile): 71 | ''' Delete the data zip file ''' 72 | os.remove(tempFile) 73 | 74 | def runDataDownload(dataPath, gdbPath, url): 75 | ''' Download and extract the geodatabase with specified gdbName from the given url to the basePath's data folder ''' 76 | createDataFolder(dataPath) 77 | gdbName = os.path.basename(gdbPath) 78 | 79 | exists = UnitTestUtilities.folderPathsExist([gdbPath]) 80 | 81 | if not exists: 82 | zipName = gdbName + ".zip" 83 | print("Zip Name: " + zipName) 84 | zipFile = saveOnlineDataAsZip(url, zipName) 85 | print("Extracting zip...") 86 | extractDataZip(zipFile, dataPath) 87 | print("Deleting zip...") 88 | deleteZip(zipFile) 89 | message = "Downloaded {0} to {1}".format(gdbName, dataPath) 90 | print(message) 91 | Configuration.Logger.info(message) 92 | 93 | return dataPath 94 | -------------------------------------------------------------------------------- /utils/test/MilitaryFeaturesTestKickDesktop.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | rem ------------------------------------------------------------------------------ 3 | rem Copyright 2015-2017 Esri 4 | rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | rem you may not use this file except in compliance with the License. 6 | rem You may obtain a copy of the License at 7 | rem 8 | rem http://www.apache.org/licenses/LICENSE-2.0 9 | rem 10 | rem Unless required by applicable law or agreed to in writing, software 11 | rem distributed under the License is distributed on an "AS IS" BASIS, 12 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | rem See the License for the specific language governing permissions and 14 | rem limitations under the License. 15 | rem ------------------------------------------------------------------------------ 16 | rem TestKickDesktop.bat 17 | rem ------------------------------------------------------------------------------ 18 | rem requirements: 19 | rem * ArcGIS Desktop 10.X+ 20 | rem * Python 2.7 21 | rem author: ArcGIS Solutions 22 | rem company: Esri 23 | rem ================================================== 24 | rem description: 25 | rem This file starts the test running for Desktop (Python 2.7) 26 | rem 27 | rem ================================================== 28 | rem history: 29 | rem 10/06/2015 - MF - placeholder 30 | rem 10/30/2015 - MF - tests running 31 | rem 12/01/2015 - JH - added parameter for default log file name 32 | rem 07/05/2016 - MF - updates to changes for Pro 1.3+ 33 | rem 02/24/2017 - MF - more updates for Pro 1.4.1/ArcMap 10.5 34 | rem 07/20/2017 - MF - split BAT into PRO and MAP versions 35 | rem ================================================== 36 | 37 | REM === TEST SETUP =================================== 38 | REM === TEST SETUP =================================== 39 | 40 | 41 | REM === LOG SETUP ==================================== 42 | REM usage: set LOG= 43 | REM name is optional; if not specified, name will be specified for you 44 | set LOG= 45 | REM === LOG SETUP ==================================== 46 | 47 | REM === RUN DESKTOP VERSION ========================== 48 | REM If you have BOTH versions of Python installed use 49 | REM these lines 50 | REM ================================================== 51 | 52 | ECHO Python 2.7 Tests ================================ 53 | REM The location of python.exe will depend upon your installation 54 | REM of Python 2.7. Modify the following line as necessary: 55 | "C:\Python27\ArcGIS10.3\python.exe" MilitaryFeaturesTestRunner.py %LOG% 56 | REM check if Desktop for ArcGIS/Python 2.7 tests failed 57 | IF %ERRORLEVEL% NEQ 0 ( 58 | ECHO 'One or more tests failed' 59 | ) ELSE ( 60 | ECHO 'Tests passed' 61 | ) 62 | REM === RUN DESKTOP VERSION ========================== 63 | 64 | 65 | REM === CLEANUP ====================================== 66 | REM === CLEANUP ====================================== 67 | 68 | EXIT /B %ERRORLEVEL% 69 | -------------------------------------------------------------------------------- /utils/test/MilitaryFeaturesTestRunner.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | ''' 3 | ------------------------------------------------------------------------------ 4 | Copyright 2015 - 2017 Esri 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | ------------------------------------------------------------------------------ 17 | TestRunner.py 18 | ------------------------------------------------------------------------------ 19 | requirements: 20 | * ArcGIS Desktop 10.X+ or ArcGIS Pro 1.X+ 21 | * Python 2.7 or Python 3.4 22 | author: ArcGIS Solutions 23 | company: Esri 24 | ================================================== 25 | description: 26 | Runs Individual Test Suite 27 | ================================================== 28 | ''' 29 | 30 | import datetime 31 | import logging 32 | import os 33 | import sys 34 | import unittest 35 | 36 | import arcpy 37 | 38 | import Configuration 39 | import UnitTestUtilities 40 | import DataDownload 41 | import TestRunner 42 | 43 | logFileFromBAT = None 44 | if len(sys.argv) > 1: 45 | logFileFromBAT = sys.argv[1] #if we have an explicit log file name passed in 46 | 47 | def main(): 48 | ''' main test logic ''' 49 | print("TestRunner.py - main") 50 | 51 | if Configuration.DEBUG == True: 52 | print("Debug messaging is ON") 53 | logLevel = logging.DEBUG 54 | else: 55 | print("Debug messaging is OFF") 56 | logLevel = logging.INFO 57 | 58 | # setup logger 59 | if not logFileFromBAT == None: 60 | Configuration.Logger = UnitTestUtilities.initializeLogger(logFileFromBAT, logLevel) 61 | else: 62 | Configuration.GetLogger(logLevel) 63 | 64 | print("Logging results to: " + str(Configuration.LoggerFile)) 65 | UnitTestUtilities.setUpLogFileHeader() 66 | 67 | result = runTestSuite() 68 | 69 | TestRunner.logTestResults(result) 70 | 71 | return result.wasSuccessful() 72 | 73 | def runTestSuite(): 74 | ''' collect all test suites before running them ''' 75 | if Configuration.DEBUG == True: print("TestRunner.py - runTestSuite") 76 | testSuite = unittest.TestSuite() 77 | result = unittest.TestResult() 78 | 79 | #What Platform are we running on? 80 | Configuration.GetPlatform() 81 | Configuration.Logger.info('Running on Platform: ' + Configuration.Platform) 82 | 83 | testSuite.addTests(addMilitaryFeaturesSuite()) 84 | 85 | Configuration.Logger.info("running " + str(testSuite.countTestCases()) + " tests...") 86 | 87 | # Run all of the tests added above 88 | testSuite.run(result) 89 | 90 | Configuration.Logger.info("Test success: {0}".format(str(result.wasSuccessful()))) 91 | 92 | return result 93 | 94 | def addMilitaryFeaturesSuite(): 95 | ''' Add all MilitaryFeatures tests ''' 96 | Configuration.Logger.debug("TestRunner.py - addMilitaryFeaturesSuite") 97 | from military_features_tests import MilitaryFeaturesToolsTestSuite 98 | suite = MilitaryFeaturesToolsTestSuite.getTestSuite() 99 | return suite 100 | 101 | # MAIN ============================================= 102 | if __name__ == "__main__": 103 | if Configuration.DEBUG == True: 104 | print("Starting TestRunner.py") 105 | 106 | exitAsBoolean = main() 107 | 108 | exitAsCode = 0 if exitAsBoolean else 1 109 | 110 | sys.exit(exitAsCode) 111 | -------------------------------------------------------------------------------- /utils/test/Readme.md: -------------------------------------------------------------------------------- 1 | # Running tests for solutions-geoprocessing-toolbox 2 | 3 | ## Sections 4 | * [Introduction](#introduction) 5 | * [Requirements](#requirements) 6 | * [For ArcGIS Pro](#for-arcgis-pro) 7 | * [For ArcGIS Desktop](#for-arcgis-desktop) 8 | * [Running the tests](#running-the-tests) 9 | * [Log files](#log-files) 10 | * [Reporting errors as Issues](#reporting-errors-as-issues) 11 | 12 | ## Introduction 13 | The unittests in this section of the repository are designed to test the geoprocessing tools contained within to make sure they are running consistently under different conditions. Automated testing, unittests are one type, help reduce the amount of time necessary to find defects or confirm their success. An automated test can run all of the tools in a significantly shorter amount of time than several people testing the tools manually. This should not be taken as an opportunity to skip other types of testing (ad-hoc, defect verification, template testing, system testing, etc.). 14 | 15 | ## Requirements 16 | ### For ArcGIS Pro 17 | * ArcGIS Pro 1.1+ 18 | * Python 3.4.1 for ArcGIS Pro 19 | 20 | ### For ArcGIS Desktkop 21 | * ArcGIS for Desktop 10.3.1+ 22 | * Python 2.7+ 23 | 24 | ## Running the tests 25 | The goal is to run the test suites for all of the tools against different versions of operating systems and versions of Python/ArcGIS. 26 | 27 | **It is important to not add any spaces to folder names. Changing folder names that have spaces will cause errors during execution of the tests.** 28 | 29 | 1. Check your Python versions. You need to have at least ONE of two required versions listed above. 30 | 2. Modify [**TestKickDesktop.bat** ](./TestKickDesktop.bat) or [**TestKickPro.bat**](./TestKickPro.bat) to run tests for the versions you have installed. This will mean you must modify the path to the python.exe in *TestKickStart.bat*. 31 | 3. Open a command prompt in *.\solutions-geoprocessing-toolbox\utils\test*. 32 | 4. Run the modified **TestKickDesktop.bat** or **TestKickPro.bat**. 33 | 5. Check the dialog for results and check the log file created by the tests. 34 | 35 | ## Log files 36 | The output from running the tests are stored in the *.\solutions-geoprocessing-toolbox\utils\test\log* folder. The files are named: 37 | 38 | SGT_YYYY-Month-DD_HH-MM-SS_seqX.log 39 | 40 | where: 41 | 42 | * YYYY - Four digit year 43 | * Month - American English name of month 44 | * DD - Two digit day of the month (01 - 31) 45 | * HH - Two digit hour of the day in 24-hour format (00 - 23) 46 | * MM - Two digit minute of the hour (00 - 59) 47 | * SS - Two digit second of the minute (00 - 59) 48 | * X - sequence number, if for reason two log files are created in the same exact second. Unlikely, but just in case. 49 | 50 | For example: 51 | 52 | SGT_2015-November-05_08-31-22_seq0.log 53 | 54 | This log file was created November 5th, 2015 at 8:31:22 AM and was the first log file created at that time. 55 | 56 | ## Reporting errors as Issues 57 | Any errors or problems need to be reported. If they go unmentioned, then they go unfixed. All issues should be logged in the solutions-geoprocessing-repository [Issues](https://github.com/Esri/solutions-geoprocessing-toolbox/issues). 58 | 59 | 1. First you should check the existing Issues to see if there is one already logged for the issue you found. If you find one that is the same or similar, please add a comment to it with the information in step 4 below. 60 | 2. Check the information you've collected. Make sure you've got a clear idea of what is happening, what you expected, and how the tool is expected to work. 61 | 3. Start a new issue and include the following information. 62 | 1. Add a good description of the problem. It should answer: 63 | 1. What tool were you using, what inputs did you use (be specific)? 64 | 2. What happened? 65 | 3. What did you expect to happen? 66 | 2. Numbered steps to reproduce the problem 67 | 3. Add a copy of the full error message 68 | 4. Include a copy of the log file 69 | 5. Assign to the repository owner. 70 | -------------------------------------------------------------------------------- /utils/test/TestKickDesktop.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | rem ------------------------------------------------------------------------------ 3 | rem Copyright 2015-2017 Esri 4 | rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | rem you may not use this file except in compliance with the License. 6 | rem You may obtain a copy of the License at 7 | rem 8 | rem http://www.apache.org/licenses/LICENSE-2.0 9 | rem 10 | rem Unless required by applicable law or agreed to in writing, software 11 | rem distributed under the License is distributed on an "AS IS" BASIS, 12 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | rem See the License for the specific language governing permissions and 14 | rem limitations under the License. 15 | rem ------------------------------------------------------------------------------ 16 | rem TestKickDesktop.bat 17 | rem ------------------------------------------------------------------------------ 18 | rem requirements: 19 | rem * ArcGIS Desktop 10.X+ 20 | rem * Python 2.7 21 | rem author: ArcGIS Solutions 22 | rem company: Esri 23 | rem ================================================== 24 | rem description: 25 | rem This file starts the test running for Desktop (Python 2.7) 26 | rem 27 | rem ================================================== 28 | rem history: 29 | rem 10/06/2015 - MF - placeholder 30 | rem 10/30/2015 - MF - tests running 31 | rem 12/01/2015 - JH - added parameter for default log file name 32 | rem 07/05/2016 - MF - updates to changes for Pro 1.3+ 33 | rem 02/24/2017 - MF - more updates for Pro 1.4.1/ArcMap 10.5 34 | rem 07/20/2017 - MF - split BAT into PRO and MAP versions 35 | rem ================================================== 36 | 37 | REM === TEST SETUP =================================== 38 | REM === TEST SETUP =================================== 39 | 40 | 41 | REM === LOG SETUP ==================================== 42 | REM usage: set LOG= 43 | REM name is optional; if not specified, name will be specified for you 44 | set LOG= 45 | REM === LOG SETUP ==================================== 46 | 47 | REM === RUN DESKTOP VERSION ========================== 48 | REM If you have BOTH versions of Python installed use 49 | REM these lines 50 | REM ================================================== 51 | 52 | ECHO Python 2.7 Tests ================================ 53 | REM The location of python.exe will depend upon your installation 54 | REM of Python 2.7. Modify the following line as necessary: 55 | "C:\Python27\ArcGIS10.3\python.exe" TestRunner.py %LOG% 56 | REM check if Desktop for ArcGIS/Python 2.7 tests failed 57 | IF %ERRORLEVEL% NEQ 0 ( 58 | ECHO 'One or more tests failed' 59 | ) ELSE ( 60 | ECHO 'Tests passed' 61 | ) 62 | REM === RUN DESKTOP VERSION ========================== 63 | 64 | 65 | REM === CLEANUP ====================================== 66 | REM === CLEANUP ====================================== 67 | 68 | EXIT /B %ERRORLEVEL% 69 | -------------------------------------------------------------------------------- /utils/test/TestKickPro.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | rem ------------------------------------------------------------------------------ 3 | rem Copyright 2015-2017 Esri 4 | rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | rem you may not use this file except in compliance with the License. 6 | rem You may obtain a copy of the License at 7 | rem 8 | rem http://www.apache.org/licenses/LICENSE-2.0 9 | rem 10 | rem Unless required by applicable law or agreed to in writing, software 11 | rem distributed under the License is distributed on an "AS IS" BASIS, 12 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | rem See the License for the specific language governing permissions and 14 | rem limitations under the License. 15 | rem ------------------------------------------------------------------------------ 16 | rem TestKickPro.bat 17 | rem ------------------------------------------------------------------------------ 18 | rem requirements: 19 | rem * ArcGIS Pro 1.3+ 20 | rem * Python Python 3.4+ 21 | rem author: ArcGIS Solutions 22 | rem company: Esri 23 | rem ================================================== 24 | rem description: 25 | rem This file starts the test running for ArcGIS Pro (Python 3.4+). 26 | rem 27 | rem ================================================== 28 | rem history: 29 | rem 10/06/2015 - MF - placeholder 30 | rem 10/30/2015 - MF - tests running 31 | rem 12/01/2015 - JH - added parameter for default log file name 32 | rem 07/05/2016 - MF - updates to changes for Pro 1.3+ 33 | rem 02/24/2017 - MF - more updates for Pro 1.4.1/ArcMap 10.5 34 | rem 07/20/2017 - MF - split BAT into PRO and MAP versions 35 | rem ================================================== 36 | 37 | REM === TEST SETUP =================================== 38 | REM === TEST SETUP =================================== 39 | 40 | 41 | REM === LOG SETUP ==================================== 42 | REM usage: set LOG= 43 | REM name is optional; if not specified, name will be specified for you 44 | set LOG= 45 | REM === LOG SETUP ==================================== 46 | 47 | REM === RUN PRO TESTS ================================ 48 | ECHO Python 3.4 Tests ================================ 49 | REM The location of python.exe will depend upon your installation 50 | REM of ArcGIS Pro. Modify the following line as necessary: 51 | "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe" TestRunner.py %LOG% 52 | REM check if ArcGIS Pro/Python 3.4 tests failed 53 | IF %ERRORLEVEL% NEQ 0 ( 54 | ECHO 'One or more tests failed' 55 | ) 56 | REM === RUN PRO TESTS ================================ 57 | 58 | 59 | REM === CLEANUP ====================================== 60 | REM === CLEANUP ====================================== 61 | 62 | EXIT /B %ERRORLEVEL% 63 | -------------------------------------------------------------------------------- /utils/test/WritingTests.md: -------------------------------------------------------------------------------- 1 | # Writing tests for solutions-geoprocessing-toolbox 2 | 3 | ## Sections 4 | * [Introduction](#introduction) 5 | * [The Test Structure](#the-test-structure) 6 | * [TestKickStart and TestRunner](testkickstart-and-testrunner) 7 | * [Test Suites](#test-suites) 8 | * [Test Cases](#test-cases) 9 | * [Test Data](#test-data) 10 | 11 | ## Introduction 12 | The goal of this document is to give an overview of how the solutions-geoprocessing-toolbox tests are structured and how they are intended to work. This is just an overview. To build new tests, the successful developer will need to review the existing tests as a guide for building their own. 13 | 14 | ## The Test Structure 15 | 16 | ### TestKick* and TestRunner 17 | These three files, along with some supporting files, start the tests, and determine which platform the tests will run within. 18 | 19 | - **TestKickDesktop.bat** is a simple .BAT file to run the tests under Python 2.7 for ArcGIS Desktop. 20 | 21 | - **TestKickPro.bat** is a simple .BAT file to run the tests under Python 3.x for ArcGIS Pro. 22 | 23 | - **TestRunner.py** organizes the test suites, runs the tests, and manages the results. 24 | 25 | ### Test Suites 26 | Test suites are collections of [Test Cases](#test-cases). There are two major levels of test suites. The top level are test suites for each of the six tool categories: capability, data_management, operational_graphics, patterns, suitability, visibility. 27 | 28 | The test suite files are named **All[category]TestSuite.py**. In each one is the collection the second level of test suites: the toolbox test suites. 29 | 30 | The toolbox test suites are the collection of test cases for each toolbox in the tool category. 31 | 32 | These are named **[toolbox name]TestSuite.py**. 33 | 34 | ### Test Cases 35 | Test cases are the collection of individual tests for a specific tool, or supporting toolset. 36 | 37 | They are named **[toolname]TestCase.py** 38 | 39 | ### Test Data 40 | The it is impossible to build a test without some kind of inputs. Some tests generate their own data internally (Check out the ERG tool tests as an example). But most will require some kind of output test data. 41 | 42 | * Test data **must** be stored on ArcGIS.com (owner:solutions_github). Contact repo owner to upload to this account. 43 | * Keep feature data in a file geodatabase. You should name it like your toolbox. 44 | * Any file data (CSV, TXT, XLSX, etc.) should be easy to identify which toolbox it belongs to. 45 | * Zip any data before uploading to ArcGIS.com (use type Desktop Application Template). 46 | 47 | ## Outline for writing tests 48 | ### 1. Make a separate branch from dev 49 | Use this as a chance to create a feature branch from **dev** which will be merged back in when you are done. THis keeps your work separate from other work and the main **dev** branch. 50 | 51 | ### 2. Get data and run the test manually 52 | Before you start writing any test code, collect your releasable data. Then manually run the tool or tools with the data. Make sure it works and you are familiar with the tool's operation and the expected results. 53 | 54 | ### 3. Write your test cases 55 | Use the existing Test Case files as a guide to get started writing your own. The goal is to run the tool to create output that can be tested by the unittest TestCase assert methods [link to assert methods](https://docs.python.org/3/library/unittest.html#unittest.TestCase). 56 | 57 | ### 4. Wire them up to the framework 58 | Create a Test Suite that calls your Test Case 59 | Add your Test Suite to the existing All[category]TestSuite.py 60 | 61 | ### 5. Run the test from TestKickStarter.bat 62 | -------------------------------------------------------------------------------- /utils/test/clearing_operations_tests/ClearingOperationsTestSuite.py: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------ 2 | # Copyright 2017 Esri 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | #------------------------------------------------------------------------------ 15 | 16 | import unittest 17 | import logging 18 | import Configuration 19 | 20 | from . import ClearingOperationsCreateGRGFromPointTestCase 21 | from . import ClearingOperationsCreateGRGFromAreaTestCase 22 | from . import ClearingOperationsNumberFeaturesTestCase 23 | from . import CreateReferenceSystemGRGFromAreaTestCase 24 | 25 | ''' Test suite for all tools in the Clearing Operationss Tools toolbox ''' 26 | 27 | def getTestSuite(): 28 | 29 | if Configuration.DEBUG == True: 30 | print(" ClearingOperationsTestSuite.getSuite") 31 | 32 | testSuite = unittest.TestSuite() 33 | 34 | ''' Add the Clearing Operations tests ''' 35 | 36 | loader = unittest.TestLoader() 37 | 38 | #Clearing Operations 39 | testSuite.addTest(loader.loadTestsFromTestCase(ClearingOperationsCreateGRGFromAreaTestCase.ClearingOperationsCreateGRGFromAreaTestCase)) 40 | testSuite.addTest(loader.loadTestsFromTestCase(ClearingOperationsNumberFeaturesTestCase.ClearingOperationsNumberFeaturesTestCase)) 41 | testSuite.addTest(loader.loadTestsFromTestCase(ClearingOperationsCreateGRGFromPointTestCase.ClearingOperationsCreateGRGFromPointTestCase)) 42 | 43 | #Gridded Reference Graphic 44 | testSuite.addTest(loader.loadTestsFromTestCase(CreateReferenceSystemGRGFromAreaTestCase.CreateReferenceSystemGRGFromAreaTestCase)) 45 | 46 | return testSuite 47 | -------------------------------------------------------------------------------- /utils/test/clearing_operations_tests/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /utils/test/distance_to_assets_tests/DistanceToAssetsSummarizeTestCase.py: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------ 2 | # Copyright 2015 Esri 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | #------------------------------------------------------------------------------ 15 | 16 | import logging 17 | import arcpy 18 | from arcpy.sa import * 19 | import sys 20 | import traceback 21 | import os 22 | 23 | sys.path.append(os.path.normpath(os.path.join(os.path.dirname(__file__), '..'))) 24 | 25 | import unittest 26 | import Configuration 27 | import UnitTestUtilities 28 | import DataDownload 29 | 30 | class DistanceToAssetsSummarizeTestCase(unittest.TestCase): 31 | toolboxUnderTest = None # Set to Pro or ArcMap toolbox at runtime 32 | 33 | scratchGDB = None 34 | def setUp(self): 35 | if Configuration.DEBUG == True: print(" DistanceToAssetsTestCase.setUp") 36 | 37 | ''' Initialization needed if running Test Case standalone ''' 38 | Configuration.GetLogger() 39 | Configuration.GetPlatform() 40 | ''' End standalone initialization ''' 41 | self.toolboxUnderTest = Configuration.distancetoAssetsToolboxPath + \ 42 | Configuration.GetToolboxSuffix() 43 | 44 | UnitTestUtilities.checkArcPy() 45 | DataDownload.runDataDownload(Configuration.distanceToAssetsDataPath, \ 46 | Configuration.distanceToAssetsInputGDB, Configuration.distanceToAssetsURL) 47 | 48 | 49 | if (self.scratchGDB == None) or (not arcpy.Exists(self.scratchGDB)): 50 | self.scratchGDB = UnitTestUtilities.createScratch(Configuration.distanceToAssetsDataPath) 51 | 52 | 53 | UnitTestUtilities.checkFilePaths([Configuration.distanceToAssetsDataPath]) 54 | 55 | UnitTestUtilities.checkGeoObjects([Configuration.distanceToAssetsInputGDB, self.toolboxUnderTest, self.scratchGDB]) 56 | 57 | def tearDown(self): 58 | if Configuration.DEBUG == True: print(" DistanceToAssets.tearDown") 59 | UnitTestUtilities.deleteScratch(self.scratchGDB) 60 | 61 | def testSummarize(self): 62 | if Configuration.DEBUG == True:print(".....DistanceToAssetsSummarizeTestCase.testSummarize") 63 | print("Importing toolbox...") 64 | arcpy.ImportToolbox(self.toolboxUnderTest) 65 | arcpy.env.overwriteOutput = True 66 | 67 | mergedRoutesOut = os.path.join(self.scratchGDB, "Assets_To_Base_All") 68 | distStatsOut = os.path.join(self.scratchGDB, "Distances_by_Base") 69 | 70 | arcpy.Model1_DistanceToAssets(mergedRoutesOut, distStatsOut, Configuration.distanceToAssetsInputGDB) 71 | 72 | result1 = arcpy.GetCount_management(mergedRoutesOut) 73 | count1 = int(result1.getOutput(0)) 74 | self.assertGreater(count1, 0) -------------------------------------------------------------------------------- /utils/test/distance_to_assets_tests/DistanceToAssetsTestSuite.py: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------ 2 | # Copyright 2015 Esri 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | #------------------------------------------------------------------------------ 15 | 16 | import unittest 17 | import logging 18 | import Configuration 19 | 20 | from . import DistanceToAssetsCodeAssetsToBasesTestCase 21 | from . import DistanceToAssetsCopyGeolocatedLocationsTestCase 22 | from . import DistanceToAssetsRouteAssetsToBasesLocalTestCase 23 | from . import DistanceToAssetsRouteAssetsToBasesAGOLTestCase 24 | from . import DistanceToAssetsSummarizeTestCase 25 | 26 | ''' Test suite for all tools in the Distance to Assets Tools toolbox ''' 27 | 28 | def getTestSuite(): 29 | 30 | if Configuration.DEBUG == True: 31 | print(" DistanceToAssetsTestSuite.getSuite") 32 | 33 | testSuite = unittest.TestSuite() 34 | 35 | ''' Add the Distance to Assets tests ''' 36 | 37 | loader = unittest.TestLoader() 38 | 39 | testSuite.addTest(loader.loadTestsFromTestCase(DistanceToAssetsCodeAssetsToBasesTestCase.DistanceToAssetsCodeAssetsToBasesTestCase)) 40 | testSuite.addTest(loader.loadTestsFromTestCase(DistanceToAssetsCopyGeolocatedLocationsTestCase.DistanceToAssetsCopyGeolocatedLocationsTestCase)) 41 | testSuite.addTest(loader.loadTestsFromTestCase(DistanceToAssetsRouteAssetsToBasesLocalTestCase.DistanceToAssetsRouteAssetsToBasesLocalTestCase)) 42 | testSuite.addTest(loader.loadTestsFromTestCase(DistanceToAssetsRouteAssetsToBasesAGOLTestCase.DistanceToAssetsRouteAssetsToBasesAGOLTestCase)) 43 | testSuite.addTest(loader.loadTestsFromTestCase(DistanceToAssetsSummarizeTestCase.DistanceToAssetsSummarizeTestCase)) 44 | 45 | return testSuite 46 | -------------------------------------------------------------------------------- /utils/test/distance_to_assets_tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/utils/test/distance_to_assets_tests/__init__.py -------------------------------------------------------------------------------- /utils/test/geonames_tests/GeoNamesToolsTestSuite.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | #------------------------------------------------------------------------------ 3 | # Copyright 2017 Esri 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | #------------------------------------------------------------------------------ 16 | 17 | import unittest 18 | import logging 19 | import Configuration 20 | 21 | from . import GeoNamesTestCase 22 | 23 | ''' Test suite for all tools in the Sun Position Analysis Tools toolbox ''' 24 | 25 | def getTestSuite(): 26 | 27 | if Configuration.DEBUG == True: 28 | print(" GeoNamesTestSuite.getSuite") 29 | 30 | testSuite = unittest.TestSuite() 31 | 32 | ''' Add the GeoNames tests ''' 33 | 34 | loader = unittest.TestLoader() 35 | 36 | testSuite.addTest(loader.loadTestsFromTestCase(GeoNamesTestCase.GeoNamesTestCase)) 37 | 38 | return testSuite 39 | -------------------------------------------------------------------------------- /utils/test/geonames_tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/utils/test/geonames_tests/__init__.py -------------------------------------------------------------------------------- /utils/test/incident_analysis_tests/IncidentAnalysisToolsTestSuite.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | ''' 3 | ----------------------------------------------------------------------------- 4 | Copyright 2015 Esri 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | ----------------------------------------------------------------------------- 17 | 18 | ================================================== 19 | IncidentAnalysisToolsTestSuite.py 20 | -------------------------------------------------- 21 | requirements: 22 | * ArcGIS Desktop 10.X+ or ArcGIS Pro 1.X+ 23 | * Python 2.7 or Python 3.4 24 | author: ArcGIS Solutions 25 | company: Esri 26 | ================================================== 27 | description: 28 | This test suite collects all of the Incident Analysis Tools toolbox test cases: 29 | * ClusterAnalysisTestCase.py 30 | * CountIncidentsByLOCTestCase.py 31 | * FindPercentChangeTestCase.py 32 | * HotSpotsByAreaTestCase.py 33 | * IncidentDensityTestCase.py 34 | * IncidentHotSpotsTestCase.py 35 | 36 | ================================================== 37 | history: 38 | 10/23/2015 - MF - intial coding started 39 | 04/25/2017 - EL - removed IncidentTableToPointTestCase.py 40 | 07/28/2017 - CM - Refactor 41 | ================================================== 42 | ''' 43 | 44 | import unittest 45 | import logging 46 | import Configuration 47 | 48 | from . import ClusterAnalysisTestCase 49 | from . import CountIncidentsByLOCTestCase 50 | from . import IncidentDensityTestCase 51 | from . import HotSpotsByAreaTestCase 52 | from . import IncidentHotSpotsTestCase 53 | from . import FindPercentChangeTestCase 54 | 55 | def getTestSuite(): 56 | 57 | if Configuration.DEBUG == True: print(" IncidentAnalysisToolsTestSuite.getTestSuite") 58 | 59 | ''' Test suite for all test cases for the Incident Analysis Tools toolbox ''' 60 | testSuite = unittest.TestSuite() 61 | 62 | ''' Add the Incident Analysis tests ''' 63 | 64 | loader = unittest.TestLoader() 65 | 66 | testSuite.addTest(loader.loadTestsFromTestCase(ClusterAnalysisTestCase.ClusterAnalysisTestCase)) 67 | testSuite.addTest(loader.loadTestsFromTestCase(CountIncidentsByLOCTestCase.CountIncidentsByLOCTestCase)) 68 | testSuite.addTest(loader.loadTestsFromTestCase(IncidentDensityTestCase.IncidentDensityTestCase)) 69 | testSuite.addTest(loader.loadTestsFromTestCase(HotSpotsByAreaTestCase.HotSpotsByAreaTestCase)) 70 | testSuite.addTest(loader.loadTestsFromTestCase(IncidentHotSpotsTestCase.IncidentHotSpotsTestCase)) 71 | testSuite.addTest(loader.loadTestsFromTestCase(FindPercentChangeTestCase.FindPercentChangeTestCase)) 72 | 73 | return testSuite 74 | 75 | 76 | -------------------------------------------------------------------------------- /utils/test/incident_analysis_tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/utils/test/incident_analysis_tests/__init__.py -------------------------------------------------------------------------------- /utils/test/military_aspects_of_weather_tests/ImportCRUToRasterTestCase.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | # ----------------------------------------------------------------------------- 3 | # Copyright 2015 Esri 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # ----------------------------------------------------------------------------- 16 | 17 | # ================================================== 18 | # ImportCRUToRasterTestCase.py 19 | # -------------------------------------------------- 20 | # requirements: 21 | # * ArcGIS Desktop 10.X+ 22 | # * Python 2.7 23 | # 24 | # author: ArcGIS Solutions 25 | # company: Esri 26 | # 27 | # ================================================== 28 | # history: 29 | # 2/10/2016 - JH - initial creation 30 | # ================================================== 31 | 32 | 33 | import unittest 34 | import arcpy 35 | import os 36 | import UnitTestUtilities 37 | import Configuration 38 | import DataDownload 39 | 40 | class ImportCRUToRasterTestCase(unittest.TestCase): 41 | ''' Test all tools and methods related to the Import CRU CL 2.0 To Raster tool 42 | in the Military Aspects of Weather toolbox''' 43 | 44 | inputCRUFolder = None 45 | outputWorkspace = None 46 | 47 | def setUp(self): 48 | if Configuration.DEBUG == True: print(" ImportCRUToRasterTestCase.setUp") 49 | UnitTestUtilities.checkArcPy() 50 | 51 | Configuration.suitabilityDataPath = DataDownload.runDataDownload(Configuration.suitabilityPaths, "MilitaryAspectsOfWeatherTestData", Configuration.maowURL) 52 | self.inputCRUFolder = os.path.join(Configuration.suitabilityDataPath, "CRUdata") 53 | self.outputWorkspace = os.path.join(Configuration.suitabilityDataPath, "CRURasters.gdb") 54 | 55 | UnitTestUtilities.checkFilePaths([Configuration.suitabilityDataPath, Configuration.maow_ToolboxPath, self.outputWorkspace]) 56 | 57 | def tearDown(self): 58 | if Configuration.DEBUG == True: print(" ImportCRUToRasterTestCase.tearDown") 59 | 60 | def test_import_cru_to_raster(self): 61 | try: 62 | if Configuration.DEBUG == True: print(" ImportCRUToRasterTestCase.test_import_cru_to_raster") 63 | arcpy.AddMessage("Testing Import CRU CL2.0 To Raster (Desktop)") 64 | 65 | arcpy.ImportToolbox(Configuration.maow_ToolboxPath, "maow") 66 | runToolMessage = "Running tool (Import CRU CL2.0 To Raster)" 67 | arcpy.AddMessage(runToolMessage) 68 | Configuration.Logger.info(runToolMessage) 69 | 70 | arcpy.ImportCRUCL2ToRaster_maow(self.inputCRUFolder, self.outputWorkspace) 71 | 72 | # check that dtr_feb raster exists, then check that its bandCount = 1 73 | dtr_feb_output = os.path.join(self.outputWorkspace, "dtr_feb") 74 | self.assertTrue(arcpy.Exists(dtr_feb_output)) 75 | dtr_desc = arcpy.Describe(dtr_feb_output) 76 | self.assertEqual(dtr_desc.bandCount, int(1)) 77 | 78 | except arcpy.ExecuteError: 79 | UnitTestUtilities.handleArcPyError() 80 | 81 | except: 82 | UnitTestUtilities.handleGeneralError() 83 | 84 | 85 | -------------------------------------------------------------------------------- /utils/test/military_aspects_of_weather_tests/ImportWMOStationDataTestCase.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | # ----------------------------------------------------------------------------- 3 | # Copyright 2015 Esri 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # ----------------------------------------------------------------------------- 16 | 17 | # ================================================== 18 | # ImportWMOStationDataTestCase.py 19 | # -------------------------------------------------- 20 | # requirements: 21 | # * ArcGIS Desktop 10.X 22 | # * Python 2.7 23 | # 24 | # author: ArcGIS Solutions 25 | # company: Esri 26 | # 27 | # ================================================== 28 | # history: 29 | # 2/10/2016 - JH - initial creation 30 | # ================================================== 31 | 32 | import unittest 33 | import arcpy 34 | import os 35 | import UnitTestUtilities 36 | import Configuration 37 | import DataDownload 38 | 39 | class ImportWMOStationDataTestCase(unittest.TestCase): 40 | ''' Test all tools and methods related to the Import WMO Station Data tool 41 | in the Military Aspects of Weather toolbox''' 42 | 43 | WMOGDB = None 44 | WMOFolder = None 45 | StationDataInputFC = None 46 | StationDataOutputFC = None 47 | outputFCName = None 48 | 49 | def setUp(self): 50 | if Configuration.DEBUG == True: print(" ImportWMOStationDataTestCase.setUp") 51 | UnitTestUtilities.checkArcPy() 52 | self.outputFCName = "WMOStationData" 53 | 54 | # DO NOT run data download again; dependent data is needed from the ImportWMOStationsTestCase 55 | self.WMOGDB = os.path.join(Configuration.suitabilityDataPath, "WMO.gdb") 56 | 57 | self.StationDataInputFC = os.path.join(self.WMOGDB, "WMOFC_output") 58 | self.StationDataOutputFC = os.path.join(self.WMOGDB, self.outputFCName) 59 | self.WMOFolder = os.path.join(Configuration.suitabilityDataPath, "WMOStationFiles") 60 | 61 | UnitTestUtilities.checkFilePaths([Configuration.suitabilityDataPath, Configuration.maow_ToolboxPath, self.WMOFolder, self.WMOGDB]) 62 | UnitTestUtilities.deleteIfExists(self.StationDataOutputFC) 63 | 64 | def tearDown(self): 65 | if Configuration.DEBUG == True: print(" ImportWMOStationDataTestCase.tearDown") 66 | 67 | def test_import_wmo_station_data(self): 68 | try: 69 | if Configuration.DEBUG == True: print(" ImportWMOStationDataTestCase.test_import_wmo_station_data") 70 | arcpy.AddMessage("Testing Import WMO Station Data (Desktop)") 71 | 72 | arcpy.ImportToolbox(Configuration.maow_ToolboxPath, "maow") 73 | runToolMessage = "Running tool (Import WMO Station Data)" 74 | arcpy.AddMessage(runToolMessage) 75 | Configuration.Logger.info(runToolMessage) 76 | 77 | arcpy.ImportWMOStationData_maow(self.WMOGDB, self.outputFCName, self.WMOFolder, self.StationDataInputFC) 78 | 79 | wmoStationCount = int(arcpy.GetCount_management(self.StationDataOutputFC).getOutput(0)) 80 | self.assertEqual(wmoStationCount, int(252)) 81 | 82 | except arcpy.ExecuteError: 83 | UnitTestUtilities.handleArcPyError() 84 | 85 | except: 86 | UnitTestUtilities.handleGeneralError() 87 | 88 | -------------------------------------------------------------------------------- /utils/test/military_aspects_of_weather_tests/ImportWMOStationsTestCase.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | # ----------------------------------------------------------------------------- 3 | # Copyright 2015 Esri 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # ----------------------------------------------------------------------------- 16 | 17 | # ================================================== 18 | # ImportWMOStationsTestCase.py 19 | # -------------------------------------------------- 20 | # requirements: 21 | # * ArcGIS Desktop 10.X+ 22 | # * Python 2.7 23 | # 24 | # author: ArcGIS Solutions 25 | # company: Esri 26 | # 27 | # ================================================== 28 | # history: 29 | # 2/10/2016 - JH - initial creation 30 | # ================================================== 31 | 32 | import unittest 33 | import arcpy 34 | import os 35 | import UnitTestUtilities 36 | import Configuration 37 | import DataDownload 38 | 39 | class ImportWMOStationsTestCase(unittest.TestCase): 40 | ''' Test all tools and methods related to the Import WMO Station Data tool 41 | in the Military Aspects of Weather toolbox''' 42 | 43 | WMOGDB = None 44 | WMOStationsFC = None 45 | stationsTextFile = None 46 | 47 | def setUp(self): 48 | if Configuration.DEBUG == True: print(" ImportWMOStationsTestCase.setUp") 49 | UnitTestUtilities.checkArcPy() 50 | Configuration.suitabilityDataPath = DataDownload.runDataDownload(Configuration.suitabilityPaths, "MilitaryAspectsOfWeatherTestData", Configuration.maowURL) 51 | self.stationsTextFile = os.path.join(Configuration.suitabilityDataPath, "WMOStations.tab") 52 | self.WMOGDB = os.path.join(Configuration.suitabilityDataPath, "WMO.gdb") 53 | self.WMOStationsFC = os.path.join(self.WMOGDB, "WMOFC_output") 54 | 55 | UnitTestUtilities.checkFilePaths([Configuration.suitabilityDataPath, Configuration.maow_ToolboxPath, self.WMOGDB]) 56 | UnitTestUtilities.deleteIfExists(self.WMOStationsFC) 57 | 58 | def tearDown(self): 59 | if Configuration.DEBUG == True: print(" ImportWMOStationsTestCase.tearDown") 60 | 61 | def test_import_wmo_stations(self): 62 | try: 63 | if Configuration.DEBUG == True: print(" ImportWMOStationsTestCase.test_import_wmo_stations") 64 | arcpy.AddMessage("Testing Import WMO Stations (Desktop)") 65 | 66 | arcpy.ImportToolbox(Configuration.maow_ToolboxPath, "maow") 67 | runToolMessage = "Running tool (Import WMO Stations)" 68 | arcpy.AddMessage(runToolMessage) 69 | Configuration.Logger.info(runToolMessage) 70 | 71 | arcpy.ImportWMOStations_maow(self.stationsTextFile, self.WMOStationsFC) 72 | 73 | # 12718 features should be in output feature class 74 | wmoStationCount = int(arcpy.GetCount_management(self.WMOStationsFC).getOutput(0)) 75 | self.assertEqual(wmoStationCount, int(12718)) 76 | 77 | except arcpy.ExecuteError: 78 | UnitTestUtilities.handleArcPyError() 79 | 80 | except: 81 | UnitTestUtilities.handleGeneralError() 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /utils/test/military_aspects_of_weather_tests/SubsetRasterWorkspaceTestCase.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | # ----------------------------------------------------------------------------- 3 | # Copyright 2015 Esri 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # ----------------------------------------------------------------------------- 16 | 17 | # ================================================== 18 | # SubsetRasterWorkspaceTestCase.py 19 | # -------------------------------------------------- 20 | # requirements: 21 | # * ArcGIS Desktop 10.X+ 22 | # * Python 2.7 23 | # 24 | # author: ArcGIS Solutions 25 | # company: Esri 26 | # 27 | # ================================================== 28 | # history: 29 | # 2/10/2016 - JH - initial creation 30 | # ================================================== 31 | 32 | 33 | import unittest 34 | import arcpy 35 | import os 36 | import UnitTestUtilities 37 | import Configuration 38 | import DataDownload 39 | 40 | class SubsetRasterWorkspaceTestCase(unittest.TestCase): 41 | ''' Test all tools and methods related to the Subset Raster Workspace tool 42 | in the Military Aspects of Weather toolbox''' 43 | 44 | sourceWorkspace = None 45 | targetWorkspace = None 46 | 47 | def setUp(self): 48 | if Configuration.DEBUG == True: print(" SubsetRasterWorkspaceTestCase.setUp") 49 | UnitTestUtilities.checkArcPy() 50 | 51 | # DO NOT run data download again; dependent data is needed from ImportCRUToRasterTestCase 52 | self.sourceWorkspace = os.path.join(Configuration.suitabilityDataPath, "CRURasters.gdb") 53 | self.targetWorkspace = os.path.join(Configuration.suitabilityDataPath, "SubsetRasters.gdb") 54 | 55 | UnitTestUtilities.checkFilePaths([Configuration.suitabilityDataPath, Configuration.maow_ToolboxPath, self.sourceWorkspace, self.targetWorkspace]) 56 | 57 | def tearDown(self): 58 | if Configuration.DEBUG == True: print(" SubsetRasterWorkspaceTestCase.tearDown") 59 | 60 | def test_subset_raster_workspace(self): 61 | try: 62 | if Configuration.DEBUG == True: print(" SubsetRasterWorkspaceTestCase.test_subset_raster_workspace") 63 | arcpy.AddMessage("Testing Subset Raster Workspace (Desktop)") 64 | 65 | arcpy.ImportToolbox(Configuration.maow_ToolboxPath, "maow") 66 | runToolMessage = "Running tool (Subset Raster Workspace)" 67 | arcpy.AddMessage(runToolMessage) 68 | Configuration.Logger.info(runToolMessage) 69 | 70 | inputAreaPath = os.path.join(self.sourceWorkspace, "AOI") 71 | inputArea = arcpy.FeatureSet(inputAreaPath) 72 | arcpy.SubsetRasterWorkspace_maow(inputArea, self.sourceWorkspace, self.targetWorkspace) 73 | 74 | dtr_feb_output = os.path.join(self.targetWorkspace, "dtr_feb") 75 | self.assertTrue(arcpy.Exists(dtr_feb_output)) 76 | dtr_desc = arcpy.Describe(dtr_feb_output) 77 | self.assertEqual(dtr_desc.bandCount, int(1)) 78 | 79 | except arcpy.ExecuteError: 80 | UnitTestUtilities.handleArcPyError() 81 | 82 | except: 83 | UnitTestUtilities.handleGeneralError() 84 | 85 | -------------------------------------------------------------------------------- /utils/test/military_features_tests/MilitaryFeaturesToolsTestSuite.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | #------------------------------------------------------------------------------ 3 | # Copyright 2017 Esri 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | #------------------------------------------------------------------------------ 16 | 17 | import unittest 18 | import logging 19 | import Configuration 20 | 21 | from . import AppendMilitaryFeaturesTestCase 22 | from . import AppendMessageFileTestCase 23 | from . import CalculateRepRuleTestCase 24 | from . import CalculateSidcTestCase 25 | from . import WriteMessageFileTestCase 26 | from . import WriteMilitaryFeatureFromMessageTestCase 27 | 28 | ''' Test suite for all tools in the toolbox ''' 29 | 30 | def getTestSuite(): 31 | 32 | if Configuration.DEBUG == True: 33 | print(" MilitaryFeaturesTestSuite.getSuite") 34 | 35 | testSuite = unittest.TestSuite() 36 | 37 | # IMPORTANT: this toolbox/suite does not run under Pro (ArcMap only) 38 | if Configuration.Platform == Configuration.PLATFORM_PRO : 39 | print('Skipping MilitaryFeatures Tests for Pro (ArcMap Only Tools)') 40 | return testSuite 41 | 42 | loader = unittest.TestLoader() 43 | 44 | ''' Add all the tests ''' 45 | testSuite.addTest(loader.loadTestsFromTestCase(AppendMilitaryFeaturesTestCase.AppendMilitaryFeaturesTestCase)) 46 | testSuite.addTest(loader.loadTestsFromTestCase(AppendMessageFileTestCase.AppendMessageFileTestCase)) 47 | testSuite.addTest(loader.loadTestsFromTestCase(CalculateRepRuleTestCase.CalculateRepRuleTestCase)) 48 | testSuite.addTest(loader.loadTestsFromTestCase(CalculateSidcTestCase.CalculateSidcTestCase)) 49 | testSuite.addTest(loader.loadTestsFromTestCase(WriteMessageFileTestCase.WriteMessageFileTestCase)) 50 | testSuite.addTest(loader.loadTestsFromTestCase(WriteMilitaryFeatureFromMessageTestCase.WriteMilitaryFeatureFromMessageTestCase)) 51 | 52 | return testSuite 53 | -------------------------------------------------------------------------------- /utils/test/military_features_tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/utils/test/military_features_tests/__init__.py -------------------------------------------------------------------------------- /utils/test/sun_position_analysis_tests/SunPositionAnalysisToolsTestSuite.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | ''' 3 | ----------------------------------------------------------------------------- 4 | Copyright 2015 Esri 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | ----------------------------------------------------------------------------- 17 | 18 | ================================================== 19 | SunPositionAnalysisToolsTestSuite.py 20 | -------------------------------------------------- 21 | requirments: 22 | * ArcGIS Desktop 10.X+ or ArcGIS Pro 1.X+ 23 | * Python 2.7 or Python 3.4 24 | author: ArcGIS Solutions 25 | company: Esri 26 | ================================================== 27 | description: 28 | This test suite collects all of the test cases for the 29 | Sun Position Analysis Tools toolboxes: 30 | * SunPositionAndHillshadeTestCase.py 31 | 32 | ================================================== 33 | history: 34 | 10/29/2015 - JH - wired up SunPositionAnalysisToolsTestSuite to run SunPositionAndHillshadeTestCase in Pro or Desktop 35 | 07/28/2017 - CM - Refactor 36 | ================================================== 37 | ''' 38 | 39 | import unittest 40 | import logging 41 | import Configuration 42 | 43 | from . import SunPositionAndHillshadeTestCase 44 | 45 | ''' Test suite for all tools in the Sun Position Analysis Tools toolbox ''' 46 | 47 | def getTestSuite(): 48 | 49 | if Configuration.DEBUG == True: 50 | print(" SunPositionAnalysisTestSuite.getSuite") 51 | 52 | testSuite = unittest.TestSuite() 53 | 54 | ''' Add the Sun Position tests ''' 55 | 56 | loader = unittest.TestLoader() 57 | 58 | testSuite.addTest(loader.loadTestsFromTestCase(SunPositionAndHillshadeTestCase.SunPositionAndHillshadeTestCase)) 59 | 60 | return testSuite 61 | -------------------------------------------------------------------------------- /utils/test/sun_position_analysis_tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Esri/solutions-geoprocessing-toolbox/689499ba6f72404a14127e9d790cfa364cf1a889/utils/test/sun_position_analysis_tests/__init__.py -------------------------------------------------------------------------------- /utils/test/test_data/Readme.md: -------------------------------------------------------------------------------- 1 | This folder is for temporary test data download --------------------------------------------------------------------------------