Кажется, это обычный вопрос, без каких-либо легко усваиваемых / легко реализуемых ответов. Многие люди ссылаются на F CC API , но я не знаю, как использовать API, и не нашел простого объяснения, чтобы помочь мне в этой ситуации. R-код, который я могу сделать, Python Я могу сделать (если это просто), но действительно кажется, что должен быть какой-то относительно простой ресурс для получения .csv (или аналогичного) со столбцами lat / long и возврата кодов FIPS (на уровне группы блоков, из переписи 2010 года).
Потенциальные решения (и мои проблемы с ними):
- Этот github Я полагаю, что запросы старый F CC API , который выведен из эксплуатации. В любом случае, когда я запускаю его на данном примере, он выдает ошибку
Error in fromJSON(content, handler, default.size, depth, allowComments, : invalid JSON input
. Кроме того, мне интересно, как это будет, если сопоставить более 16 миллионов координат - Этот вопрос SO отлично работает на нескольких строках, и я реализовал его для случаев, когда мне нужна только пара тысячи запросов, но я получил ошибки
Error in curl::curl_fetch_memory(url, handle = handle) : Timeout was reached: Send failure: Connection was reset
и Error in call_geolocator_latlon(row["GE_LATITUDE_2010"], row["GE_LONGITUDE_2010"]) : Service Unavailable (HTTP 503)
, которые, как я полагаю, вызваны слишком большими данными. - Решение здесь не кажется на мой взгляд, это было бы лучше на первый взгляд, так как это включает загрузку шейп-файлов, которая кажется просто неэффективной, но, поскольку у меня есть только наблюдения в CA, должно работать , за исключением того, что когда я меняю это дает мне географию группы блоков 2010 года, она разбивается:
ca <- tidycensus::get_decennial(state = "CA", geography = "block group",
variables = "B00001_001", geometry = TRUE,
year = 2010)
В идеале, я хотел бы найти / написать функция, которая позволяет мне вводить имя моего фрейма данных и столбцы, в которых есть мои данные широты и долготы, а затем добавляет столбец с кодом FIPS (на уровне группы блоков, из переписи 2010 года) В качестве альтернативы здесь я могу просто загрузить .csv и получить обратно .csv было бы здорово. Или пакет python, который легко реализуется кем-то с очень ограниченными знаниями python. Et c, et c, et c.
образец кадра данных (для R):
testdata <- structure(list(unique_id = c(5392085L, 14789082L, 11023930L, 4005454L, 13701322L, 10821557L, 11397828L, 15709999L, 475895L, 1546307L), GE_LATITUDE_2010 = c(38.272084, 33.013099, 39.019289, 33.992753, 32.6104, 33.717793, 34.550265, 32.842897, 33.754883, 38.461337), GE_LONGITUDE_2010 = c(-122.644619, -117.05967, -121.006352, -118.26259, -117.057227, -118.044996, -117.277502, -116.890541, -116.983093, -121.389269)), row.names = c(NA, -10L), class = "data.frame")