जनगणना अक्षांश को उलटने के लिए एपीआई, जनगणना पथ के लिए देशांतर?


11

मेरे पास संयुक्त राज्य अमेरिका में अक्षांश, देशांतर निर्देशांक (ज्यादातर शहर / शहर सेंट्रोइड्स) का एक समूह है, जिसके लिए मैं जनगणना पथ खोजना चाहता हूं।

उदाहरण के लिए,

input => nn.nnn, -nn.nnn 
output => 010300

क्या कोई मुफ्त या कम लागत वाला एपीआई है जो मदद कर सकता है? (अनिवार्य रूप से याहू प्लेसफाइंडर, जनगणना पथ की अतिरिक्त प्रतिक्रिया के साथ।)

(मैं समझता हूं कि कई शहरों में कई जनगणना पथ शामिल हैं और मुझे उम्मीद है कि कुछ छोटे शहरों में केवल एक या अधिक जनगणना पथ के कुछ हिस्से शामिल हैं। मैं इस मुद्दे को अभी के लिए अनदेखा कर रहा हूं।)


क्या आप एक निश्चित क्षेत्र या देश अज्ञेय समाधान के बारे में सोच रहे हैं?
radek

जवाबों:


10

एफसीसी जनगणना ब्लॉक रूपांतरण एपीआई वास्तव में आप जो खोज रहे हैं है।


हाँ। शर्मनाक, क्योंकि मैंने इसे परियोजना के एक और हिस्से के लिए माना था, और भूल गया था। धन्यवाद।
नागरिकता

ध्यान दें, 2018 में लिंक से पता चलता है कि "इस एपीआई को नए क्षेत्र और जनगणना ब्लॉक एपीआई द्वारा बदल दिया गया है, प्रतिक्रिया समय को कम करने और अतिरिक्त क्षेत्र से संबंधित डेटा तत्वों का समर्थन करने के लिए अद्यतन किया गया है। इस प्रकार, इस विरासत एपीआई को डिकमीशन किया जा रहा है।" और geo.fcc.gov/api/census से लिंक करता है
पोस्टिंग के

5

PostGIS में, यदि आपके पास बिंदुओं की एक तालिका है, और @Sminbamangu की जनगणना की सीमा संबंधी जानकारी आपको निम्नलिखित दृष्टिकोण का उपयोग करके गणना कर सकती है:

SELECT 
       c.census_tract, 
       p.point_id
FROM
       census_boundary as c,
       table_of_points as p
WHERE
       ST_Contains(c.geom, p.geom);

आप विवरण ST_Contains यहां देख सकते हैं । यह अंकों की एक तालिका, और जनगणना पथ जहां वे स्थित हैं, लौटाएगा।


कोशिश की कि 10 अंकों और कैलिफ़ोर्निया डेटा के साथ स्पैटियालाइट में और यह लगभग 0.2 सेकंड में करता है ... +1।
सिंबांगु

अच्छा - मुझे स्पैटियलाइट का पता लगाना चाहिए। मैंने 6 महीने पहले PostGIS का उपयोग करना शुरू कर दिया था और इसे प्यार करता था, लेकिन यह बहुत भारी कर्तव्य है। अधिक स्व-निहित डेटासेट होना अच्छा होगा जो कि इंटरनेट न होने पर कई बार पोर्टेबल होते हैं।
djq

2

आप इसे ऑनलाइन API के बजाय स्थानीय रूप से कर सकते हैं। R के साथ एक समाधान: संयुक्त राज्य अमेरिका के लिए जनगणना सीमा डेटा TIGER के माध्यम से जनगणना पर उपलब्ध है ; यदि आप अमेरिका के बारे में सोच रहे हैं तो आप अमेरिकी राज्यों को डाउनलोड कर सकते हैं और ट्रैक्ट प्राप्त करने के लिए एक फ़ंक्शन का उपयोग कर सकते हैं। उदाहरण के लिए, कैलिफ़ोर्निया और एक यादृच्छिक (या यादृच्छिक-ईश) बिंदु का उपयोग करना:

library(maps)
library(maptools)


tractLookup <- function(x, y, state) {
  pt <- SpatialPoints(data.frame(x = x, y = y))
  overlay.pt <- overlay(pt, state) # what index number does pt fall inside?
  return(census$TRACT[overlay.pt]) # give the Tract number from the census layer
}

कोशिश करके देखो:

california <- readShapePoly("~/Downloads/US_2000_Census_Tracts/tr06_d00_shp/tr06_d00.shp")
tractLookup(-123.123, 40.789, california)

0004 देता है, जो सही है।

# Look at the map
plot(census)
map('state', c('California'), lwd = 2, col = 'green', add = F) # optional
points(-123.123, 40.789, col = 'red', lwd = 2)

यह काम करता है, लेकिन मेरे मैक पर 5 सेकंड लगते हैं, जो शायद बहुत अधिक होगा यदि आप इसमें से बहुत कुछ करने जा रहे हैं; मुझे लगता है कि किसी को जल्द ही एक PostGIS समाधान के साथ तौलना होगा जो एक लाख गुना तेज होगा ...


1

जैसा कि @Simbamangu द्वारा उल्लेख किया गया है, यह आसानी से बाजार पर किसी भी डेस्कटॉप जीआईएस सॉफ्टवेयर के बारे में स्थानीय रूप से किया जा सकता है।

मुक्त और खुले स्रोत के लिए, QGIS में " स्थान से जुड़ने के गुण " पर एक नज़र डालें ।

यदि आप समय के साथ इसे बार-बार करने की आवश्यकता रखते हैं, तो आप डेटासेट को PostGIS में डालने और एक स्थानिक जुड़ाव बनाने पर विचार कर सकते हैं ( ऑनलाइन मदद में इस उदाहरण को देखें )। फिर आप QGIS में परिणामों की कल्पना कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.