Бештар

Эҷоди полинилинҳои перпендикулярии буридашуда байни нуқтаи мавҷуда ва полилин бо истифода аз аркпи


Ин аст вазъияти ман - ман дар лоиҳа кор карда истодаам, ки 20,000+ хатҳои кӯтоҳи васлкунандаро эҷод кардан лозим аст, ки ҳар яки онҳо аз як нуқта ба макони буридашуда дар полилинаи наздик кашида мешаванд, то хати пайвасткунаки натиҷа ба полилинал перпендикуляр бошад.

Агар бо arcpy анҷом дода шавад, ин скриптро талаб мекунад, ки метавонад a.) Полилинаи наздиктаринро б) ҳисоб кардани ҷой дар он полиниляро, ки имкон медиҳад хати перпендикулярӣ эҷод карда шавад, в) координатаҳои муваққатӣ дар он макон эҷод кунанд ва d .) хати пайвасткунак созед.

Оё касе чизе монанди ин кӯшиш кардааст? Кадом фармонҳои мушаххас метавонанд лозим оянд? Барои кумакатон пешакӣ ташаккур.

-Майкл


Ба скрипти дар зер пайвандшуда назар кунед. Шояд ин барои шумо кор кунад ё шумо метавонед онҳоро мувофиқи эҳтиёҷоти худ тағир диҳед:


Бубахшед, дар кор банд будам ва то ҳол натавонистам паём фиристам. Дар зер скриптест, ки ман аз пешниҳодҳо ҷамъ овардаам.

Ин ба ман аҷиб менамояд, ки ин метавонад ба ҷои фармони наздик бо буриши канорӣ ба даст оварда шавад - чунин ба назар мерасад, ки arcGIS асосан дар лаҳза фармони наздикро иҷро мекунад.

-Майкл

arcpy ворид кунед, os кӯшиш кунед: inPoints = arcpy.GetParameterAsText (0) nearLines = arcpy.GetParameterAsText (1) outFC = arcpy.GetParameterAsText (2) scratchWorkspace = arcpy.GetParameterAsText (0) #scratchWorkSace = env.scratchWorkspace # Маълумоти фазоии вурудро ба даст оред spatialRef = arcpy.Describe (inPoints) .spatialReference # Роҳи синфи хусусиятҳои муваққатии баромад ва номи tempFC = os.path.join (scratchWorkspace, "temp") # Нусха гирифтан хусусиятҳои нуқтаи вуруд ба синфи хусусиятҳои муваққатии arcpy.CopyFeatures_management (inPoints, tempFC) # Иловаи координатаҳои XY барои хусусиятҳои нуқта arcpy.AddXY_management (tempFC) # Таҳлили наздики arcpy.Near_analysis (tempFC, nearLines, "", "LOCATION", "NO_ANGLE" ) # Бо истифода аз XY To Line arcpy.XYToLine_management хати пайвасткунаки FC эҷод кунед ("tempFC", "outFC", "POINT_X", "POINT_Y", "NEAR_X", "NEAR_Y", "GEODESIC", "", "spatialRef") ба истиснои Истисно, e: # Агар хатогӣ рух дода бошад, рақами хати чоп ва паёми хатогии пайгирии пайгирӣ, sys tb = sys.exc_info () [2] чопи "Хати % i" % tb.tb_lineno чопи паёми электронӣ

Инчунин, шумо метавонед фармони наздикро санҷед. Он координатаи наздиктарини XY -ро дар Line FC ба ҷадвали Point FC илова мекунад. Аксар вақт ин перпендикуляр аст. Барои пур кардани координатаҳои Point xy, координатаҳои XY -ро иҷро кунед. Шумо метавонед ба осонӣ як хати пайвасткунандаи ду ҷойро бо "XY to Line", нав дар ArcGIS 10 созед. Барои санҷидани ин набояд аз ҳад зиёд сарф шавад.


Агар дар ду нуқтаи ниҳоии сегменти полилинӣ ягон перпендикуляр кашидан мумкин набошад, нуқтаи наздиктарин нуқтаи наздиктари анҷоми он аст. Пас, ин изҳорот на ҳама вақт дуруст аст:

"Агар хати аз нуқта то нуқтаи" наздиктарин "дар тӯли полилиния ба полинлинал перпендикуляр набошад, нуқтаи" наздиктарин "нодуруст аст!"


Видеоро тамошо кунед: 1 мая Флеш моб АркГПИ (Октябр 2021).