Nano Hash - криптовалюты, майнинг, программирование

Как удалить некоторые области по атрибуту из шейп-файла в R и создать новый шейп-файл?

Я занимаюсь этим некоторое время и добился определенного успеха, однако, когда дело доходит до перезаписи файла, у меня ничего не получается.

Шейп-файл, с которым я работаю, представляет собой полигональный шейп-файл городских и микрополитических районов, но меня не интересуют микрополитические районы, поэтому я работаю с shp в R, чтобы попытаться удалить их с моей карты.

Источник данных

Чтобы загрузить нужный файл, убедитесь, что вы выбрали «Все штаты в одном национальном файле» в разделе «Статистический район метрополии/микрополита (2010 г.)».

Вот что у меня есть до сих пор:

library(maptools)
met=readShapeSpatial("tl_2010_us_cbsa10.shp")
met=met@data

Перед подмножеством:

NAMELSAD10      LSAD10
Anchorage, AK Metro Area   -  M1 
Clarksdale, MS Micro Area    - M2
Richmond, VA Metro Area   -  M1
Big Spring, TX Micro Area  -   M2
Dallas-Fort Worth-Arlington, TX Metro Area  -   M1
Rio Grande City-Roma, TX Micro Area  -   M2

тогда:

submet=subset(met, LSAD10 == "M1")

После подмножества:

NAMELSAD10 LSAD10
Anchorage, AK Metro Area   -  M1
Richmond, VA Metro Area  -   M1
Dallas-Fort Worth-Arlington, TX Metro Area   -  M1
Vineland-Millville-Bridgeton, NJ Metro Area  -   M1
Casper, WY Metro Area   -  M1
Cheyenne, WY Metro Area   -  M1

тогда:

writeSpatialShape(submet, "tl_2010_us_ma10", factor2char = TRUE)

Используя этот код, я смог успешно удалить области микрополитена, обозначенные как «M1», но когда я пытаюсь перезаписать файл, он не отображается в моем файле wd.

Я также пытался использовать пакет «shapefiles», чтобы сделать это, но имел еще меньший успех. Так что любая помощь в этом вопросе будет принята с благодарностью.

07.03.2013

  • Ваша ссылка на данные никуда не ведет. 07.03.2013
  • Вы можете продемонстрировать нам, что этого нет в вашем wd, запустив list.files(.) и опубликовав его. Я просто не верю, что его там нет, я думаю, вы перепутали свой wd с текущим каталогом R. 07.03.2013
  • Хорошо, я беру свои слова назад, Spacedman продемонстрировал это. :) 07.03.2013
  • И теперь я сообщил о поведении сопровождающему maptools! 07.03.2013
  • И Роджер добавил сообщение об ошибке и скоро выпустит новую версию в CRAN. Dontcha ЛЮБИТЕ открытый исходный код? 07.03.2013

Ответы:


1

Когда вы делаете met=met@data, вы теряете пространственный аспект met и получаете просто старый фрейм данных.

Затем вы подмножаете этот фрейм данных в порядке, а затем пытаетесь writeSpatialShape его. Вау. Объект submet не имеет ни полигонов, ни координат. writeSpatialShape должен блевать. Но ему удается проглотить его целиком и подавить. Проверь это:

> writeSpatialShape(1,"foo.shp")
> 

и, как вы заметили, шейп-файл не создается. Ничего себе, это довольно отстойная обработка ошибок.

Два решения: 1, работать с фактическим объектом, а не с компонентом данных, например:

met = readOGR(dir,name)
submet = met[met$thing=="whatever",]
writeOGR(submet,dir,newname,"ESRI Shapefile")

2, используйте package:rgdal и read/write|OGR, которые не только обрабатывают проекции, но и сильно тошнит, если вы пытаетесь заставить его съесть что-то невкусное:

> writeOGR(1,".","foo","ESRI Shapefile")
Error: inherits(obj, "Spatial") is not TRUE
07.03.2013
  • Спасибо за ваш быстрый ответ, и за вашу помощь. Я последовал вашей второй рекомендации и вместо этого использовал rgdal и получил желаемые результаты. Я даже открыл свой новый шейп-файл в ArcGIS, и он идеален. 11.03.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..