Получение кодов блоков FIPS от 16 миллионов + лат / лонг - PullRequest
1 голос
/ 18 февраля 2020

Кажется, это обычный вопрос, без каких-либо легко усваиваемых / легко реализуемых ответов. Многие люди ссылаются на 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")
...