Ubuntu 12.04'te PostGIS ve TIGER Verilerini Yükleme


9

Birisi postgis kurmak ve ubuntu'ya ulusal Tiger verilerini yüklemek için aptalın rehberini küçümsemesine rağmen kısa bir yazı yazabilir mi? Birkaç kılavuz denedim, yani http://wiki.bitnami.com/@api/deki/pages/302/pdf , ama fazla şansım yok. Bu sorunun açık uçlu doğası için özür dilerim.


Hangi PostGIS sürümünü kullanıyorsunuz? Sürüm 12.04 ile mi paketlenmiş veya yükseltme yaptınız mı? En son PostGIS'i çalıştırmak isterseniz, 2.1.1. Bu sürümle gelen TIGER Geocoder, PostGIS 1.5 ile çalışan sürümden çok daha iyi.
HeyOverThere

Gerçekten 2.1.1 kullanıyorum. Gerekli tüm uzantıları (fuzzystrmatch, postgis, postgi_tiger_geocoder, postgis_topology) ve kaplan şemasını etkinleştirdim. Şimdi, sadece ulusal nüfus sayımı verilerini yüklemem gerekiyor.
stat_novice

Yanıtlar:


12

PostGIS 2.1.1 sürümüne sahip olduğunuz için oyunun önündesiniz. Kurmuş olduğunuzdan emin olun, verileri Sayım FTP sitesinden indirecektir.

Şununla bir gisdata dizini oluşturun:

sudo mkdir /gisdata

Kullanım chown ve chgrp komutları normal kullanıcı okumak ve / gisdata yazma böylece ait / gisdata sahipliğini ve grup değiştirmek için.

Psql'yi başlatın ve veritabanınıza bağlanın. Bir kez psql kullanımı

\a

ve

\t

böylece sorgunun sonuçları doğru biçimlendirilir.

Başlangıçta bu kısmı unuttum! Yükleyici komut dosyasını kullanmadan önce bazı ev temizliği yapmanız gerekir. İlk şey, kaplan şemasının arama yolunuzda olduğundan emin olmaktır . Ardından tiger.loader_platform ve tiger.loader_variables değerlerini kontrol edin. Bu iki tablo, kullanıcı adınız ve şifreniz gibi yükleyici komut dosyasının değişkenlerini kontrol eder. Genellikle onları PGAdmin'de düzenlerim. Bir sonraki adımda, arama tablolarını ve coğrafi kodun ihtiyaç duyacağı diğer arka plan iyiliği parçalarını dolduran bir komut dosyası çalıştırmanız gerekir. İlk önce bir çıktı dosyası ayarlayın:

\o nation_generator.sh

o zaman koş:

SELECT loader_generate_nation_script('sh'); 

Sonra psql'den çıkın ve dosyayı çalıştırın:

sh ./nation_generator.sh

Sonra psql'ye geri dönün ve şunu yazın:

\o loader_script.sh

sorgu sonuçlarını loader_script.sql adlı bir metin dosyasına göndermek için. Ardından yükleyici komut dosyasını oluşturan işlevi yürütün:

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

Çıktısı loader_script.sql dosyasına yönlendirilecek olan sorgu budur. 'DC' ve 'RI' yerine, indirmek istediğiniz durumların iki harfli kısaltmalarıyla değiştirin.

Psql'den çıkın ve komut dosyasını şu komutla çalıştırın:

sh ./loader_script.sh

Bu, seçtiğiniz durum (lar) için dosyaları indirir, sıkıştırmasını açar ve verileri PostGIS veritabanınıza aktarır.


HeyOverThere: Ayrıntılı yanıt için teşekkür ederim. Psql'deyken "\ o loader_script.sql" yazıldığında izin reddedildi ifadesi oluşur. Neden olduğu hakkında bir fikrin var mı? Kullanıcı postgres olarak giriş yaptım.
stat_novice

Afedersiniz! Çoğu kişinin psql çalıştırmak için normal kullanıcı hesaplarını kullanmadığını unuttum. Komut dosyasını postgres kullanıcınızın yazma iznine sahip olduğu bir yere kaydetmeniz gerekir. En kolayı, dosyayı / tmp'ye kaydedecek \ o /tmp/loader_script.sql kullanmaktır. Sonra dosyayı çalıştırmak için sh ./tmp/loader_script.sql olacaktır.
HeyOverThere

İşe yaradı! Yine de, şu hata iletisini alıyorum: "Hiçbir işlev belirtilen ad ve bağımsız değişken türleriyle eşleşmiyor. Açık tür dökümleri eklemeniz gerekebilir." yükleyici komut dosyası için sorguyu yürütürken. Ayrıca, doğru hatırlarsam, o dosyayı düzenlemek zorundayım, kullanıcı adımı ve db eklemek için doğru?
stat_novice

Çifte özür dilerim! Ben de unuttum! Kontrol edilecek ilk şey, veritabanınızın arama yolu olacaktır, kaplan şemasının orada olduğundan emin olun. Kontrol edilecek 2. şey, kaplan şemasında, komut dosyalarınıza şifrenizi ve diğer bilgileri söyleyen tablolar, tiger.loader_platform ve tiger.loader_variables vardır. Bunları düzenlemek için PGAdmin kullanın. Son olarak, yükleyici komut dosyanızı çalıştırmadan önce geocoder'ın ihtiyaç duyduğu tüm tabloları ayarlamak için loader_generate_nation işlevini çalıştırın. Bu boşlukları doldurmak için cevabımı düzenleyeceğim.
HeyOverThere

HeyOverThere: Erkekler / kadınlar arasında bir tanrısınız. Bu neredeyse işe yarıyor. Hem ülke hem de devlet komut dosyaları çalışır ve sayım web sitesine FTP gönderir ve dosyaları alıyor gibi görünür, ancak her ikisi de tamamlandıktan sonra aşağıdaki hata ifadelerinden bazılarını yayınlarlar: "loader_script.sql: 408: loader_script.sql: / usr / pgsql- 9.0 / bin / psql: bulunamadı ". Ayrıca, tiger_data şemasında veri yoktur. Dosyaları, özellikle bu satırı düzenlemem gerekiyor mu: "export PGBIN = / usr / pgsql-9.0 / bin"?
stat_novice

0

Bu sitede PostGIS kurulumu ile ilgili birden fazla cevap var. İşte bir tane ve Nick Gauthier'in çözümü de mükemmel. Buradaki bol tavsiyeyi yinelemek için ...

PostGIS kurulumu Ubuntu 12.04 ve sonrasında çok daha kolay hale geldi. Genel olarak iki yol vardır: bir PPA'dan kurulum ve kaynaktan bina. Aşağıdakiler, her bir durum için kullandığım genel kabuk komut dosyalarıdır.

Bir PPA yükleniyor ... Kullandığım ubuntugis-unstablePPA.

# 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;"

Kaynaktan derleme ... Bu, PostGIS 2.1 ve PostgreSQL 9.1'i varsayar, ancak her ikisinin de yeni bir sürümü olabilir; gerektiği gibi değiştirin.

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;"

İkisi arasında bir tema göreceksiniz; yine de bir şablon veritabanı oluşturmak ve spatial_ref_systabloyu doldurmak gereklidir .

TIGER kurulumuna gelince , PostGIS 2.x belgelerindeki Bölüm 2'deki TIGER verilerini yüklemek için talimatları izleyin .


Arthur: PostGIS 2.1 yükledim ve postgis.sql aşağıdaki dizinde mevcut değil: /usr/share/postgresql/9.3/contrib/postgis-2.1
stat_novice
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.