пересечения
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 23 апр 2009, 13:42
- Репутация: 0
пересечения
Здравствуйте!
Может обсуждалось, не нашел пока...
Вопрос такой. Есть полигоны, они пересекаются. Нужно вычислить длины линий пересечений, желательно в метрических единицах. Все спроецировано.
Спасибо!
Может обсуждалось, не нашел пока...
Вопрос такой. Есть полигоны, они пересекаются. Нужно вычислить длины линий пересечений, желательно в метрических единицах. Все спроецировано.
Спасибо!
-
- Активный участник
- Сообщения: 144
- Зарегистрирован: 18 дек 2009, 15:36
- Репутация: 4
- Откуда: Златоглавая
Re: пересечения
Первое, что пришло в голову - возможно, есть более удобный и логичный метод.
Выполняете Intersect - на выходе новый полигональный класс объектов. И для него считаете "сумму периметров".
Если это БГД и все спроецировано (да еще и единицы измерения - метры и пр.), то просто щелчок правой кнопкой на поле Shape_Length (системное, создается и обновляется автоматически) и выбираете Statistics.
Если это SHP-файл или единицы измерения отличаются (напр., мили) - создаете новое поле, далее Calculate Geometry -> Perimeter (дословно не помню) -> Statistics.
Выполняете Intersect - на выходе новый полигональный класс объектов. И для него считаете "сумму периметров".
Если это БГД и все спроецировано (да еще и единицы измерения - метры и пр.), то просто щелчок правой кнопкой на поле Shape_Length (системное, создается и обновляется автоматически) и выбираете Statistics.
Если это SHP-файл или единицы измерения отличаются (напр., мили) - создаете новое поле, далее Calculate Geometry -> Perimeter (дословно не помню) -> Statistics.
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 23 апр 2009, 13:42
- Репутация: 0
Re: пересечения
Эх, в том то и дело, что не все так просто. Про Intersect сразу мысль приходит, однако дело в том, что нужно высчитывать не периметр новообразованных полигонов, а отрезки. Проще говоря, полигоны, это некие территории, охватывающие кусок берега. Так вот нужно вычислить длину береговой линии внутри таких полигонов...
Спасибо!
Антон
Спасибо!
Антон
-
- Новоприбывший
- Сообщения: 10
- Зарегистрирован: 22 фев 2011, 11:13
- Репутация: 0
Re: пересечения
а вы переведите полученные Intersect-полигоны в полилинии и подсчитайте аналогичным подсчету периметру способом длины этих линий
-
- Завсегдатай
- Сообщения: 302
- Зарегистрирован: 31 окт 2008, 10:39
- Репутация: 2
Re: пересечения
Можно еще после Intersect и Feature To Line сделать Split Line At Vertices (разбить на отрезки) и посчитать длину интересующей "береговой линии внутри таких полигонов" .
-
- Активный участник
- Сообщения: 144
- Зарегистрирован: 18 дек 2009, 15:36
- Репутация: 4
- Откуда: Златоглавая
Re: пересечения
Anton, если честно, суть вопроса не совсем понятна. Говорят, правильная формулировка вопроса - уже 50% ответа
У вас есть некие полигоны_1 - условно, "висящие в воздухе". И есть полигоны_2 - берег. Границы этих полигонов_2 - это и есть береговая линия? И вам нужно узнать, какова длина береговых линий, попадающих на территорию полигонов_1?
Если так, то все решается просто. Если нет - тогда объясните, в чем все-таки суть задачи.
У вас есть некие полигоны_1 - условно, "висящие в воздухе". И есть полигоны_2 - берег. Границы этих полигонов_2 - это и есть береговая линия? И вам нужно узнать, какова длина береговых линий, попадающих на территорию полигонов_1?
Если так, то все решается просто. Если нет - тогда объясните, в чем все-таки суть задачи.
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 23 апр 2009, 13:42
- Репутация: 0
Re: пересечения
В качестве примера - вложенный рисунок. Нужно вычислить сумму длин отрезков A-B; C-D; E-F; G-H; I-J; K-L. Плюс длины береговой линии островов, попавших внутрь наложенного полигона. Зеленым цветом обозначена территория, охватывающая кусок берега (синий), море бесцветно. Это все разные слои.
Все бы хорошо, если бы такой полигон в задании был один, но их под сотню... Можно, в принципе, разбивать на отрезки и считать каждый, но нет ли какого-нибудь автоматизированного способа для массовой обработки?
Спасибо!
Все бы хорошо, если бы такой полигон в задании был один, но их под сотню... Можно, в принципе, разбивать на отрезки и считать каждый, но нет ли какого-нибудь автоматизированного способа для массовой обработки?
Спасибо!
- Вложения
-
- Intersect1.jpg (103.12 КБ) 14143 просмотра
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: пересечения
что мешает скопировать всю береговую линию в новый слой, превратить полигоны в полилинии, и уже потом делать пересечение?Anton писал(а):В качестве примера - вложенный рисунок. Нужно вычислить сумму длин отрезков A-B; C-D; E-F; G-H; I-J; K-L. Плюс длины береговой линии островов, попавших внутрь наложенного полигона. Зеленым цветом обозначена территория, охватывающая кусок берега (синий), море бесцветно. Это все разные слои.
Все бы хорошо, если бы такой полигон в задании был один, но их под сотню... Можно, в принципе, разбивать на отрезки и считать каждый, но нет ли какого-нибудь автоматизированного способа для массовой обработки?
Спасибо!
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 23 апр 2009, 13:42
- Репутация: 0
Re: пересечения
Народ, большое спасибо за наставления. Но я видимо совсем отупел... Говорите, вроде, понятные вещи - делаю, но что-то не ладится.
1. После превращения полигонов в полилинии, при попытке сделать пересечения двух полилиний, Аркгис ругается, говорит, что надо выбрать, по крайней мере две пересекающиеся линии ??? (для редактирования выбрана нужная полилиния)
2. После intersect полигонов, после превращения новых полигонов в полилинии, они разбиваются на какое-то немыслимое количество мелких отрезков, измерять которые по отдельности или объединять для измерения очень долго. Учитывая, что исходных (покрывающих) полигонов очень много, это то же не вариант...
Что бы Вы, Господа и Дамы, делали, если бы Вам, скажем, поручили измерить длины береговых линий в пределах сотни участков на территории России, которые покрывают часть суши и часть моря, захватывая еще и острова?
1. После превращения полигонов в полилинии, при попытке сделать пересечения двух полилиний, Аркгис ругается, говорит, что надо выбрать, по крайней мере две пересекающиеся линии ??? (для редактирования выбрана нужная полилиния)
2. После intersect полигонов, после превращения новых полигонов в полилинии, они разбиваются на какое-то немыслимое количество мелких отрезков, измерять которые по отдельности или объединять для измерения очень долго. Учитывая, что исходных (покрывающих) полигонов очень много, это то же не вариант...
Что бы Вы, Господа и Дамы, делали, если бы Вам, скажем, поручили измерить длины береговых линий в пределах сотни участков на территории России, которые покрывают часть суши и часть моря, захватывая еще и острова?
- Вложения
-
- Intersect3.jpg (33.74 КБ) 14120 просмотров
-
- Intersect2.jpg (69.24 КБ) 14120 просмотров
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: пересечения
а зачем было ВСЕ превращать в полилинии???? То, ЧЕМ режем, всегда полигон, то, ЧТО режем, может быть и полигоном и полилинией. Береговую линию превращаем в полилинии, а "резак" (который зеленый на первой картинке) оставляем полигоном ... в МапИнфо это делается так (и даем команду "разрезать"), думаю, что в арке тоже в тулбоксе есть соотв. пунктAnton писал(а):но что-то не ладится.
1. После превращения полигонов в полилинии, при попытке сделать пересечения двух полилиний, Аркгис ругается, говорит, что надо выбрать, по крайней мере две пересекающиеся линии ??? (для редактирования выбрана нужная полилиния)
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 23 апр 2009, 13:42
- Репутация: 0
Re: пересечения
В АркГис можно резать только одинаковые геометрические объекты, линии - линиями, полигоны - полигонами...
Простите, что диалог затягивается, но, к сожалению, я так и не осознал способа решения уже упомянутой задачи:
Простите, что диалог затягивается, но, к сожалению, я так и не осознал способа решения уже упомянутой задачи:
Anton писал(а):Что бы Вы, Господа и Дамы, делали, если бы Вам, скажем, поручили измерить длины береговых линий в пределах сотни участков на территории России, которые покрывают часть суши и часть моря, захватывая еще и острова?
-
- Активный участник
- Сообщения: 144
- Зарегистрирован: 18 дек 2009, 15:36
- Репутация: 4
- Откуда: Златоглавая
Re: пересечения
Вот стоило на один вечер от компьютера отойти
Anton, вы практически все уже сделали. И Gamm вам уже почти все подсказал. Просто вы немного в терминологии запутались, т.к. MapInfo и ArcGIS - они все-таки немного разные. Дело за малым )
Итак, по порядку:
1. Слой с береговой линией превращаете из полигонов в полинии (Feature to Line)
2. Делаете пересечение новой береговое линии (линейной) с вашими полигонами (зелеными) - Intersect (почитайте справку, входные данные могут быть разными).
3. Не надо ничего измерять и объединять для измерения! ArcGIS все сам умеет, и без ваших титанических усилий.
3а. Если это БГД и все спроецировано (да еще и единицы измерения - метры и пр.) - щелчок правой кнопкой на поле Shape_Length (системное, создается и обновляется автоматически), выбираете Statistics, смотрите на строчку Sum.
3b. Если это SHP-файл или единицы измерения отличаются (напр., мили) - создаете новое поле, далее Calculate Geometry -> Length (выбираете нужные вам единицы) -> Statistics, смотрите на строчку Sum.
4. Все.
Anton, вы практически все уже сделали. И Gamm вам уже почти все подсказал. Просто вы немного в терминологии запутались, т.к. MapInfo и ArcGIS - они все-таки немного разные. Дело за малым )
Итак, по порядку:
1. Слой с береговой линией превращаете из полигонов в полинии (Feature to Line)
2. Делаете пересечение новой береговое линии (линейной) с вашими полигонами (зелеными) - Intersect (почитайте справку, входные данные могут быть разными).
3. Не надо ничего измерять и объединять для измерения! ArcGIS все сам умеет, и без ваших титанических усилий.
3а. Если это БГД и все спроецировано (да еще и единицы измерения - метры и пр.) - щелчок правой кнопкой на поле Shape_Length (системное, создается и обновляется автоматически), выбираете Statistics, смотрите на строчку Sum.
3b. Если это SHP-файл или единицы измерения отличаются (напр., мили) - создаете новое поле, далее Calculate Geometry -> Length (выбираете нужные вам единицы) -> Statistics, смотрите на строчку Sum.
4. Все.
Последний раз редактировалось self-improving 23 апр 2011, 17:11, всего редактировалось 1 раз.
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 23 апр 2009, 13:42
- Репутация: 0
Re: пересечения
Еще раз прошу прощения!
Огромное Всем Спасибо за потраченное на меня драгоценное время!
В том-то и дело, что моя конечная задача не вычисление ПЕРИМЕТРА! Это делается на "раз" в аттрибутивной таблице. А мне надо знать длину ОТРЕЗКА!
А теперь склонитесь перед сиянием моего скромного гения! Мне все-таки удалось решить эту задачку по планиметрии для 6 класса!
1. Мы имеем дело ТОЛЬКО с периметрами! Никаких площадей!
2. Сначала вырезаем из территории России полигон вместе с островами.
3. Вычисляем периметр вырезанной части. Вычисляем периметр "остатка" территории России.
4. Затем в Excel вычитаем из периметра "остатка" территории России периметр вырезанного полигона с островами.
5. Получаем кусок периметра России без "выемки" + КУСКА БЕРЕГОВОЙ ЛИНИИ + ДЛИНЫ ПЕРИМЕТРОВ ОСТРОВОВ (которые в итоге и нужен).
6. Вычитаем из нетронутого периметра России то, что получилось в пункте 5.
7. В результате избавляемся от длины "выемки".
8. Остались в двойном экземпляре: Кусок береговой линии и длины периметров островов.
9. Делим на 2.
Вот теперь действительно ВСЕ!!!
Вот...
Огромное Всем Спасибо за потраченное на меня драгоценное время!
В том-то и дело, что моя конечная задача не вычисление ПЕРИМЕТРА! Это делается на "раз" в аттрибутивной таблице. А мне надо знать длину ОТРЕЗКА!
Это и есть мое задание.Anton писал(а):Что бы Вы, Господа и Дамы, делали, если бы Вам, скажем, поручили измерить длины береговых линий в пределах сотни участков на территории России, которые покрывают часть суши и часть моря, захватывая еще и острова?
А теперь склонитесь перед сиянием моего скромного гения! Мне все-таки удалось решить эту задачку по планиметрии для 6 класса!
1. Мы имеем дело ТОЛЬКО с периметрами! Никаких площадей!
2. Сначала вырезаем из территории России полигон вместе с островами.
3. Вычисляем периметр вырезанной части. Вычисляем периметр "остатка" территории России.
4. Затем в Excel вычитаем из периметра "остатка" территории России периметр вырезанного полигона с островами.
5. Получаем кусок периметра России без "выемки" + КУСКА БЕРЕГОВОЙ ЛИНИИ + ДЛИНЫ ПЕРИМЕТРОВ ОСТРОВОВ (которые в итоге и нужен).
6. Вычитаем из нетронутого периметра России то, что получилось в пункте 5.
7. В результате избавляемся от длины "выемки".
8. Остались в двойном экземпляре: Кусок береговой линии и длины периметров островов.
9. Делим на 2.
Вот теперь действительно ВСЕ!!!
Вот...
- Вложения
-
- superintersekt.jpg (106.51 КБ) 14076 просмотров
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 23 апр 2009, 13:42
- Репутация: 0
Re: пересечения
А, что касается пересечений, ну не хочет АркГис резать полигоном линейный объект, хоть ты тресни!
И по одному пробовал и все сразу. Кстати для редактирования выбран именно линейный объект.
В приложении то, что мне выдается на экране...
Пришлось изобрести описанный выше способ.
Спасибо!
И по одному пробовал и все сразу. Кстати для редактирования выбран именно линейный объект.
В приложении то, что мне выдается на экране...
Пришлось изобрести описанный выше способ.
Спасибо!
- Вложения
-
- Intersect4.jpg (83.82 КБ) 14073 просмотра
-
- Интересующийся
- Сообщения: 44
- Зарегистрирован: 23 апр 2009, 13:42
- Репутация: 0
Re: пересечения
АркГис даже пишет, что геометрические типы объектов при intersect должны быть одинаковые, либо только полигоны, либо только полилинии!
Последний раз редактировалось Anton 23 апр 2011, 16:21, всего редактировалось 2 раза.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей