Используйте Rcartogram для объекта SpatialPolygonsDataFrame
я пытаюсь сделать то же самое, что и в этом вопросе,Картограмма + картографическая карта в R, но начиная с SpatialPolygonsDataFrame и надеясь получить такой же тип объекта.
Я мог бы сохранить объект как шейп-файл, использоватьscapetoadоткрой его и верни обратно, но яЯ предпочел бы иметь все это в R, чтобы процедура была полностью воспроизводимой, и чтобы я мог автоматически кодировать десятки вариантов.
я написал код Rcartogram на github и добавил свои усилияВот.
По сути, эта демонстрация создает SpatialGrid на карте, ищет плотность населения в каждой точке сетки и преобразует ее в матрицу плотности в формате, необходимом дляcartogram()
работать на. Все идет нормально.
Но как интерполировать исходные точки карты на основе выходных данных?cartogram()
Здесь есть две проблемы. Во-первых, чтобы получить карту и сетку в тех же единицах, чтобы позволить интерполяцию. Второе - это получить доступ к каждой точке каждого многоугольника, интерполировать ее и держать все в правильном порядке.
Сетка указана в единицах сетки, а карта в проецируемых единицах (в случае примера longlat). Либо сетка должна быть спроецирована в longlat, либо карта в единицах сетки. Моя мысль состоит в том, чтобы сделать поддельный CRS и использовать его вместе сspTransform()
функция вpackage(rgdal)
, поскольку это обрабатывает каждую точку в объекте с минимальной суетой.
Доступ к каждой точке затруднен, поскольку они находятся на несколько уровней ниже объекта SpPDF: object>многоугольники>Полигоны>линии>я думаю. Любые идеи, как получить к ним доступ при сохранении структуры карты в целом?