Ubuntu 12.04 में PostGIS और TIGER डेटा स्थापित करें


9

क्या कोई व्यक्ति संक्षिप्त विवरण लिख सकता है, जो इडियट पर पोस्टगिस स्थापित करने और राष्ट्रीय टाइगर डेटा लोड करने के लिए बेवकूफ की मार्गदर्शिका को डंबल कर रहा है? मैंने कुछ गाइड की कोशिश की है, जिसका नाम है, http://wiki.bitnami.com/@api/deki/pages/302/pdf , लेकिन मैं ज्यादा किस्मत वाला नहीं हूं। मैं इस प्रश्न के खुले अंत के लिए माफी माँगता हूँ।


PostGIS का कौन सा संस्करण चल रहा है? क्या यह संस्करण 12.04 के साथ पैक किया गया है या आपने अपग्रेड किया है? यदि आप नवीनतम PostGIS, 2.1.1 चलाना चाहते हैं। TIGER Geocoder जो उस संस्करण के साथ आता है वह उस संस्करण की तुलना में बहुत बेहतर है जो PostGIS 1.5 के साथ काम करता है।
HeyOverThere

मैं वास्तव में 2.1.1 का उपयोग कर रहा हूं। मेरे पास सभी आवश्यक एक्सटेंशन सक्षम हैं (fuzzystrmatch, postgis, postgi_tiger_geocoder, postgis_topology) और बाघ स्कीमा। अब, मुझे केवल राष्ट्रीय जनगणना डेटा अपलोड करने की आवश्यकता है।
stat_novice

जवाबों:


12

जब से आपके पास PostGIS 2.1.1 है आप गेम से आगे हैं। सुनिश्चित करें कि आपने wget स्थापित किया है, यह वह है जो जनगणना एफ़टीपी साइट से डेटा डाउनलोड करेगा।

इसके साथ एक गिसडाटा निर्देशिका बनाएँ:

sudo mkdir /gisdata

/ Gisdata के स्वामित्व और समूह को बदलने के लिए chown और chgrp कमांड का उपयोग करें ताकि आपका सामान्य उपयोगकर्ता / gisdata को पढ़ और लिख सके।

Psql प्रारंभ करें और अपने डेटाबेस से कनेक्ट करें। एक बार पीएसएलएल उपयोग में

\a

तथा

\t

ताकि क्वेरी के परिणाम सही ढंग से स्वरूपित हों।

मैं शुरू में इस हिस्से को भूल गया था! इससे पहले कि आप लोडर स्क्रिप्ट का उपयोग कर सकें आपको कुछ घर की सफाई करने की आवश्यकता है। पहली बात यह सुनिश्चित करें कि बाघ स्कीमा आपके खोज पथ में है । इसके बाद tiger.loader_platform और tiger.loader_variables में मानों की जाँच करें। ये दो टेबल आपके उपयोगकर्ता नाम और पासवर्ड जैसी लोडर स्क्रिप्ट के लिए चर को नियंत्रित करते हैं। मैं आमतौर पर उन्हें PGAdmin में संपादित करता हूं। अगली बार आपको एक स्क्रिप्ट चलाने की आवश्यकता होगी जो लुकअप टेबल और अन्य बिट्स की पृष्ठभूमि अच्छाई के लिए जियोकोडर की आवश्यकता होगी। पहले एक आउटपुट फाइल सेट करें:

\o nation_generator.sh

फिर भागो:

SELECT loader_generate_nation_script('sh'); 

तब psql से बाहर निकलें और फ़ाइल चलाएँ:

sh ./nation_generator.sh

फिर psql में हॉप करें और टाइप करें:

\o loader_script.sh

लोडर_script.sql नामक टेक्स्टफाइल को क्वेरी के परिणामों को आउटपुट करने के लिए। फिर लोडर स्क्रिप्ट बनाने वाले फ़ंक्शन को निष्पादित करें:

SELECT loader_generate_script(ARRAY['DC','RI'], 'sh');

यह वह क्वेरी है जिसका आउटपुट loader_script.sql पर रीडायरेक्ट किया जाएगा। जिन राज्यों को आप डाउनलोड करना चाहते हैं, उनके दो अक्षर संक्षिप्तिकरण के साथ 'DC' और 'RI' बदलें।

Psql से बाहर निकलें और इस कमांड के साथ स्क्रिप्ट चलाएँ:

sh ./loader_script.sh

यह आपके द्वारा चुने गए राज्य के लिए फ़ाइलों को डाउनलोड करेगा, उन्हें अनज़िप करेगा, और डेटा को अपने पोस्टगिस डेटाबेस में आयात करेगा।


HeyOver: विस्तृत प्रतिक्रिया के लिए धन्यवाद। Psql में Whilst, एक अनुमति अस्वीकृत कथन में "\ o loader_script.sql" टाइप करने पर परिणाम मिलता है। किसी भी विचार क्यों? मैं उपयोगकर्ता के रूप में लॉग इन कर रहा हूँ।
stat_novice

माफ़ करना! मैं भूल गया कि ज्यादातर लोग psql को चलाने के लिए अपने सामान्य उपयोगकर्ता खातों का उपयोग नहीं करते हैं। आपको उस स्क्रिप्ट को सहेजने की आवश्यकता होगी जो आपके उपयोगकर्ता द्वारा पोस्ट की गई अनुमति के बाद है। सबसे आसान \ o /tmp/loader_script.sql का उपयोग करना है जो फ़ाइल को / tmp में बचाएगा। फिर फाइल को चलाने के लिए यह sh ./tmp/loader_script.sql होगा।
हेओवरटेयर

वह काम किया! हालाँकि, अब मुझे यह त्रुटि संदेश प्राप्त हो रहा है "कोई फ़ंक्शन दिए गए नाम और तर्क प्रकारों से मेल नहीं खाता है। आपको स्पष्ट प्रकार की जातियों को जोड़ने की आवश्यकता हो सकती है।" लोडर स्क्रिप्ट के लिए क्वेरी निष्पादित करते समय। इसके अलावा, अगर मुझे सही याद है, तो मुझे अपना उपयोगकर्ता नाम और db जोड़ने के लिए, उस फ़ाइल को संपादित करना होगा?
stat_novice

डबल सॉरी! मैं उसके बारे में भी भूल गया! पहली बात यह है कि आपके डेटाबेस का खोज पथ होगा, सुनिश्चित करें कि बाघ स्कीमा वहाँ है। दूसरी बात यह है कि बाघ स्कीमा में टेबल, tiger.loader_platform और tiger.loader_variables हैं जो आपकी स्क्रिप्ट को आपका पासवर्ड और अन्य जानकारी बताते हैं। उन को संपादित करने के लिए PGAdmin का उपयोग करें। अंत में, अपने लोडर स्क्रिप्ट को चलाने से पहले लोडर_गेंरेट_नशन फ़ंक्शन को जियोकोडर की आवश्यकता वाले सभी तालिकाओं को स्थापित करने के लिए चलाएं। मैं इन रिक्त स्थानों को भरने के लिए अपने उत्तर को संपादित करूँगा।
हेओवरटेयर

HeyOverThere: आप पुरुषों / महिलाओं के बीच एक भगवान हैं। यह लगभग काम करता है। दोनों राष्ट्र और राज्य स्क्रिप्ट चलते हैं और वे जनगणना वेबसाइट को एफ़टीपी कर रहे हैं और फ़ाइलों को पुनर्प्राप्त करते हुए प्रतीत होते हैं, लेकिन दोनों पूर्ण होने के बाद वे कुछ त्रुटि बयान जारी करते हैं: "loader_script.sql: 408: loader_script.sql: / usr / pgsql- 9.0 / बिन / पीएससीएल: नहीं मिला "। इसके अलावा, tiger_data स्कीमा में कोई डेटा नहीं है। क्या मुझे फ़ाइलों को संपादित करने की आवश्यकता है, विशेष रूप से इस पंक्ति को: "PGBIN = / usr / pgsql-9.0 / bin निर्यात करें"?
stat_novice

0

इस साइट पर PostGIS की स्थापना से संबंधित कई उत्तर हैं। यहाँ एक है , और निक गॉथियर का समाधान भी उत्कृष्ट है। उसमें पर्याप्त सलाह को दोहराने के लिए ...

PostGIS की स्थापना Ubuntu 12.04 और बाद में बहुत आसान हो गई है। इसके बारे में आमतौर पर दो तरीके हैं: एक पीपीए से स्थापना और स्रोत से निर्माण। प्रत्येक मामले के लिए मैं सामान्य शेल स्क्रिप्ट का उपयोग करता हूं।

एक पीपीए से स्थापित ... मैं ubuntugis-unstableपीपीए का उपयोग करता हूं ।

# Add Ubuntu GIS PPA and update, upgrade
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable -y && sudo apt-get update && sudo apt-get upgrade

# Install PostGIS
sudo apt-get install postgis

# Recommends: sudo apt-get install postgresql-9.1-postgis-2.0

# Configure template database
POSTGIS_TEMPLATE=postgis-2.0.1
POSTGRESQL_VER=9.1
sudo su -c "createdb $POSTGIS_TEMPLATE" - postgres 
sudo -u postgres psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='$POSTGIS_TEMPLATE';" 
sudo -u postgres psql -d $POSTGIS_TEMPLATE -f /usr/share/postgresql/$POSTGRESQL_VER/contrib/postgis-2.0/postgis.sql
sudo -u postgres psql -d $POSTGIS_TEMPLATE -c "GRANT ALL ON geometry_columns TO PUBLIC;"
sudo -u postgres psql -d $POSTGIS_TEMPLATE -c "GRANT SELECT ON spatial_ref_sys TO PUBLIC;"

स्रोत से भवन ... यह मान लेता है PostGIS 2.1 और PostgreSQL 9.1, लेकिन दोनों का कोई भी हालिया संस्करण हो सकता है; आवश्यक रूप से बदलें।

cd /usr/local/ && sudo mkdir postgis && sudo chown [username] postgis && cd postgis
wget http://download.osgeo.org/postgis/source/postgis-2.1.0.tar.gz
tar -xzvf postgis-2.1.0.tar.gz && rm postgis-2.1.0.tar.gz && cd postgis-2.1.0
sudo ./configure --with-projdir=/usr/local/proj/v4.7.0/
make
sudo make install

# Configure template database
POSTGIS_TEMPLATE=postgis-2.1.0
POSTGRESQL_VER=9.1
sudo su -c "createdb $POSTGIS_TEMPLATE" - postgres 
sudo -u postgres psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='$POSTGIS_TEMPLATE';" 
sudo -u postgres psql -d $POSTGIS_TEMPLATE -f /usr/share/postgresql/$POSTGRESQL_VER/contrib/postgis-2.0/postgis.sql
sudo -u postgres psql -d $POSTGIS_TEMPLATE -c "GRANT ALL ON geometry_columns TO PUBLIC;"
sudo -u postgres psql -d $POSTGIS_TEMPLATE -c "GRANT SELECT ON spatial_ref_sys TO PUBLIC;"

आप दोनों के बीच एक विषय पर ध्यान देंगे; टेम्प्लेट डेटाबेस बनाना और spatial_ref_sysतालिका को पॉप्युलेट करना अभी भी आवश्यक है ।

TIGER के साथ स्थापित होने के लिए , PostGIS 2.x प्रलेखन, अध्याय 2 में TIGER डेटा लोड करने के निर्देशों का पालन करें ।


आर्थर: मेरे पास पोस्टगिस 2.1 स्थापित है और पोस्टगिस। एसक्यूएल निम्नलिखित निर्देशिका में मौजूद नहीं है: /usr/share/postgresql/9.3/contrib/postgis-2.1
stat_nitice
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.