Solved! Go to Solution.
def make_paz_layer(keyhole): paz_units = [] SelPaz = arcpy.SelectLayerByLocation_management (PAZ_lyr, 'Intersect', keyhole) rows = arcpy.SearchCursor(SelPaz," \"POWERPLANT\" = 'North Anna Power Station'", "", "PAZ;PAZ_NUM;PAZ_ALPHA","PAZ_NUM A;PAZ_ALPHA A") for row in rows: unit = str(row.PAZ) unum = "'" + unit + "'" paz_units.append(unum) txt_paz = ','.join(paz_units) paz_list = '(' + txt_paz + ')' paz_qry = ' "POWERPLANT" = '+ station_name + ' AND "PAZ" in ' + paz_list new_paz = arcpy.MakeFeatureLayer_management(paz, keyhole + '_paz', paz_qry) arcpy.SaveToLayerFile_management(new_paz, outfolder + '\\' + keyhole + '_paz.lyr')
I want to select the points that lie in the first polygon (so a select by location, not a select by attribute like I mentioned below) and then save only the selected points in a layer
def make_paz_layer(keyhole): paz_units = [] SelPaz = arcpy.SelectLayerByLocation_management (PAZ_lyr, 'Intersect', keyhole) rows = arcpy.SearchCursor(SelPaz," \"POWERPLANT\" = 'North Anna Power Station'", "", "PAZ;PAZ_NUM;PAZ_ALPHA","PAZ_NUM A;PAZ_ALPHA A") for row in rows: unit = str(row.PAZ) unum = "'" + unit + "'" paz_units.append(unum) txt_paz = ','.join(paz_units) paz_list = '(' + txt_paz + ')' paz_qry = ' "POWERPLANT" = '+ station_name + ' AND "PAZ" in ' + paz_list new_paz = arcpy.MakeFeatureLayer_management(paz, keyhole + '_paz', paz_qry) arcpy.SaveToLayerFile_management(new_paz, outfolder + '\\' + keyhole + '_paz.lyr')
mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] for lyr in arcpy.mapping.ListLayers(mxd): if lyr.name == "Point": lyr.definitionQuery = "" Point = lyr if lyr.name == "Polygon": Polygon = lyr arcpy.SelectLayerByAttribute_management(Polygon, "NEW_SELECTION", "\"SITE\" = 'Pad 1'") arcpy.SelectLayerByLocation_management(Point, "WITHIN", Polygon, "", "NEW_SELECTION") pointList = [] for row in arcpy.SearchCursor(Point): strrow = str(row.OBJECTID) soilList.append(strrow) txt_row = ','.join(soilList) row_list = '(' + txt_row + ')' row_qry = ' "OBJECTID" in ' + row_list for lyr in arcpy.mapping.ListLayers(mxd): if lyr.name == "Point": lyr.definitionQuery = row_qry arcpy.SelectLayerByAttribute_management(Point, "CLEAR_SELECTION") arcpy.SelectLayerByAttribute_management(Polygon, "CLEAR_SELECTION") arcpy.RefreshActiveView() arcpy.RefreshTOC() mxd.save()