If you store the image in a folder and that is packaged as part of the AddIn then look at this Q&A it has some c# code to show you how to work out the folder location of where the AddIn is stored, it would then be a simple matter of building the path to the image and feeding it into picElement5.ImportPictureFromFile().
Here's what I settled on. It's a function that returns a dataframe with all rows from my desired fields.
def list_unique_fields(fp_feat, field):
import pandas as pd
# turn FIELD into list if not a list
if isinstance(field, list):
field = [field]
with arcpy.da.SearchCursor(fp_feat, field) as ...
It's not perfect but might work:
1. Split by attributes to get one feature class for each rectangle. I first had to add a new field and calculate using OID to get a field to split by. Output to an empty file geodatabase (test.gdb in my example)
2. Iterate over each split fc and create a fishnet using iterate output as template:
Merge the fishnets and ...
Workflow below works very well, except some minor glitches, see one in the middle:
PolygonToLine(in_features="parcels", out_feature_class="C:/SCRATCH/p_edges.shp", neighbor_option="IDENTIFY_NEIGHBORS")
SelectLayerByAttribute(in_layer_or_view="p_edges", selection_type="NEW_SELECTION", where_clause='"LEFT_FID" <>-1')
Sorry to resurrect this but here are at least some thoughts and pseudocode that might allow you to accomplish this.
With ArcGIS Pro, a layer file is in a .lyrx format and can be read as JSON. I am not sure if a .lyr is the same as I do not have one accessible to me right now, but I do know it is still a text format not binary. Therefore editing either is ...
I do not know where this information is stored but customisation is stored in the normal.mxt template. Often when ArcMap plays up then deleting this template does a "factory reset". On the next start up of ArcMap the normal.mxt is recreated.
WARNING: This deletes ALL customisation, so any toolbars or addins you have added and any corporate customisation of ...
Feature to polygon would do the trick if you have an advanced licence.
Otherwise, I am afraid that you will need to make two polygons manually on each side of the river, then you can use the split tool. If you only have one long river, this is quite fast to do with the "tracing" tool
If you work with vectors, apply a negative buffer of 100 m n all your polygons. Then you can measure the area of the remaining polygons intersected with your grid of interest.
If you work in raster, you can use the shrink tool, then create a binary raster (0,1) where the shrinked value equals the initial raster (with the Con tool), then use a focal stat to ...
During first geoprocessing step (rasterizing) use Environment Settings -> Processing Extent and for Extent select your shapefile with borders (or set these values manually for Top, Bottom, Left and Right) . That should fill your raster with Null values up to desired rectangle. These Null values you'll convert to 0s in your next step.
From the python docs:
zip() in conjunction with the * operator can be used to unzip a list:
So you could do:
with arcpy.da.SearchCursor(fp_in, ['OBJECTID', 'name']) as cursor:
rows = [row for row in cursor] # I don't know if zip() works with cursor (can't test)
objectid, name = list(zip(*rows)) # If it does work, use objectid, name = list(zip(*...
You can use pyqgis to automate such things.
Look at https://kartoza.com/en/blog/how-to-create-a-qgis-pdf-report-with-a-few-lines-of-python/ which was done using QGIS 2 series. You can easily adapt this to the Pyqgis 3 syntax.
For a gentle introduction to Pyqgis read https://anitagraser.com/pyqgis-101-introduction-to-qgis-python-programming-for-non-...
One solution is to change the snapping status for the fishnet layer.
Both ArcGIS and QGIS support the enabling/disabling of snapping for individual layers.
For ArcGIS, if you select "list by snapping" under the contents pane you can tick snapping on/off for each layer.
For QGIS, select Edit Advanced Configuration tool under the snapping toolbar to ...
Based on this answer, just calculate the log, then the arithmetic mean, then the exponent. You can do this in the raster calculator with something like:
Exp(FocalStatistics(Ln(your_raster), your_neighbourhood, "MEAN"))
You'll need to use script:
import numpy as np
iterable = arcpy.RasterToNumPyArray("DEM",nodata_to_value=np.NaN)
nan_array = np.isnan(iterable)
not_nan_array = ~ nan_array
a = iterable[not_nan_array]
A = np.log(a)
b = A.sum()/len(A)
credits to this post author.
The simplest way I know how to do this is to clip the raster to the extent of the landuse layer. Then I projected the clipped raster layer (as a geographic coordinate system) to a projected coordinate system appropriate to the region (in this case California Albers Teale 1983) using the Project tool.
Then used Resample tool on the projected layer by ...
The Define Projection tool is used when assigning/defining a coordinate reference system (CRS) to a dataset that doesn't have one defined at all (or changing an incorrectly defined CRS). It doesn't change the underlying coordinates.
The Project Raster tool is used to transform a raster from one CRS to another. It does change the underlying coordinates.
Ok so you don't need to set a raster cell size. If you set the zone to the polygon ID field you will get a table with mean climate values for each polygon (your expected 20,000) and then you can join this by the ID field back to your vector dataset.
Might be worth a thought:
If the undesired points are significantly(or just noticeably) higher than the rest of the data, you can convert to .txt, open in spreadsheet editor, sort z-value column by descending, manually remove all points higher than desired data height, and then convert back to .las
If you're using a recent version of ArcGISPro (i think 2.4 or newer) you can just put the endpoint into many gp tools.
For example the gp copyFeatures tool will copy all features/records from the input to a local fc. Here's what code looks like but you'll want to update the fs variable's path to have correct guid & fc-name.
Below is python code
The following code will insert into an existing point featureclass the points where a Z change of greater than 1 unit occurs based upon the specifications you state in your comments:
myLayer = "fcPolylineZ"
prev = -1
heightDiff = 1
pntList = list()
with arcpy.da.SearchCursor(myLayer,["SHAPE@"]) as cursor:
SHAPE@Z —A double of the feature's z-coordinate.
So it is one z value which you cant iterate over. It's like trying to do:
for z in 123.456:
builtins.TypeError: 'float' object is not iterable
You probably want
SHAPE@ —A geometry object for the feature.
to later access z of each vertice.
Have you considered using the ArcGIS Python API instead? Instead of getting JSON files, you could query feature layers directly and export them to a GDB all within the same library (this assumes ArcPy is installed in your computer). More on Spatially Enabled Dataframes from the ArcGIS Python API E.g.
import pandas as pd
from arcgis.gis import GIS
Your solutin is pretty close to what I would do. Here is the detailed workflow (I assume that you have an advanced lince because you suggest to use feature to line)
1) convert parcel polygon to lines
2) create a buffer on the road axes (buffer size to adjust based on the size of the roads, I would take half the width of the road + half the width of the ...
In ArcGIS Desktop (version 10.6, for example), Generate Transects Along Lines tool requires creation of a route feature class. This is not required in ArcPro. See link below.
How To: Create equally spaced transects perpendicular to a line feature in ArcGIS Pro
Here is an example showing what it requires in ArcGIS Desktop:
How To: Create equally spaced ...
Have a look at the Generate Near Table (Analysis), it generates a table, which contains the distance from all features in feature class A to all the features in feature class B. The tool has a parameter to specify a search_radius (of 25 meters in your case).
The tool requires an Advanced licensed.
You don't state what kind of software you use - let's guess it's QGIS?
It seems you have loaded your JPG map directly to the QGIS map canvas. You can't do this, you first have to georeference your image. To do that, use the Georeferencer Plugin (it's a core plugin, so you just have to activate it in the Plugins-menu) and than load the JPG map you wish to ...
on your Euclidean Distance there should be Environment tab, and Processing Extent. This does not change the entire map analysis environment, only your current geoprocessing environment. I would recommend this one because you may have different environments for different tools.
I assume this is because you use degree as your unit, perhaps WGS1984 default projection? doing the euclidean distance in degree unit can produce raster with very little values, depending on your scale of analysis. I usually project them to UTM for small scale analysis:
Project all of your features, especially your occurrence, into UTM projection so that ...
You can fix the Map Units by right clicking on Layers in the table of contents. Here you go to general and you will see Units. You can change it there.
This youtube video shows it too from second 35 onwards:
Add this to your code, above your line where you export the table.
arcpy.env.overwriteOutput = True
I think you should try Adding a graticule. The preceding link provides:
the steps you can take to add a graticule to your map layout using
Grids and Graticules Wizard. For more information on Grids and Graticules Wizard, see A quick tour of the Grids and Graticules
A graticule can display latitude and longitude values around a data frame in ...
With ArcGIS Advanced you can convert polygons to polylines (Feature to Line).
There isn't a workflow that can replicate it. The tool is too complex as it requires building geometric matrices and creating line segments based on those. Writing a Python script that can do that would take you longer and cost you more in labor than it would cost to buy the ...
I recieved the same error- there was an issue with my query. I forgot to add the geometry field. Added the extent to the query and it pulled just fine.
99% of the time I get an error- there is an issue in the query.
In ArcGIS use the fishnet tool to create label points with a spacing of 5000m. Use one of your existing point locations as a fishnet origin coordinate. Then use select by location to get rid of the fishnet points beyond the extent of your data.
Finally, use Spatial Joint to populate these new points with the 2500m points if needed.
You can add a reference grid to your layout using instructions found here: https://desktop.arcgis.com/en/arcmap/10.3/map/page-layouts/adding-a-reference-grid.htm
These instructions show you how to make grids, graticule, or reference grids using the coordinate reference system of your choice including latitudes and longitudes. The link is for ArcGIS 10.3 ...
Right click the shapefile in the table of contents. Select Export Data. Choose Export all features and select the coordinate system you want. You can either keep the projection of the current shapefile or re-project if the dataframe has a different projection. Pro tip...if you have a shapefile that doesn't match the projection of all your other shapefiles ...
A similar question was asked a few years back. You can find it here.
If you want to have breakpoints, ESRI has written a blog post about advanced labeling. It shows how to create breakpoints on the stretched renderer.
You use the Copy Features tool which:
Copies features from the input feature class or layer to a new feature
class. If the input is a layer which has a selection, only the
selected features will be copied. If the input is a geodatabase
feature class or shapefile, all features will be copied.
I think the first easy thing is to re-run the build raster statistics to ensure you are using the most up to date statistics. If that has not fixed the value range then the source of the problem may be in the way you merge the rasters, the parameter that lets you pick merge type e.g. last,min,mean etc?
I solved it by increasing TEXT ONLY in windows>
Try: Windows Start Button -> 'Ease of Access Display Settings' -> Make Text Bigger : increase slider to 120% - Voila!
My recollection is that Data Driven Pages were added to the ArcGIS Desktop core product at version 10.1 but it may have been 10.0.
Prior to that any map book and map series requirements for ArcGIS Desktop required installation of a free extension named DS Map Books or a paid extension named MPS Atlas which was originally part of the PLTS extension.
Useful script @phloem - thanks! I suggest adding a KeyError handling exception, especially if there are missing keys in the dict, e.g.,
with arcpy.da.UpdateCursor(pt_off_line,[pt_off_line_ID,"SHAPE@"]) as cursor:
for row in cursor: # loop through points
row = pt_on_line_dict[str(row)] # move point geometry to match ...
I was able to resolve this by
Join between Speed_Patterns.LinkPVID and Streets.Old_Feat_ID
then replacing EdgeFID with the ObjectID from the streets.
This basically ensured that the EdgeFID reflected the ObjectID from the street it referenced.
3.Checked the feature class ID of the original streets table and put this value into the EdgeFCID as per this ...
I came to this post looking for the same answer, but since I haven't found anything straight forward in Arc I ended up using QGIS. You just add the feature class and save it as a geopackage.
Add the feature class to Q (select Layer -> Add Layer -> Add Vector Layer -> Directory -> OpenFileGDB
Save as geopackage (right-click the feature class you added -> ...