New PrimaGIS กับการ install แบบง่าย ๆ (มั้ง)

Standard

ต้องทำการ upgrade เจ้า PrimaGIS ก็เลยได้มาเขียนในคราวนี้  เริ่มเลยแล้วกันใน version ใหม่ได้มีการทำ script เพื่อทำให้การ install นั้นง่ายขึ้นกว่าเก่า โดยจะทำแบบครบสมบูรณ์ว่าต้องการ software อะไรบ้างก็จะ download มาให้หมด แล้วทำการ complie เป็น แบบ sandbox ก็คือจะไม่กระทบกับระบบที่เรามีอยู่ เช่นหากมีการ install gdal ไว้อยู่แล้วมันก็แยกจากกันไป

ก็ให้ทำตามขั้นตอนตาม web ข้างล่าง

http://trac.gispython.org/projects/PrimaGIS/wiki/PrimaGISBuildout

ในการ install นี้จำเป็นจะต้องใช้ buildit ร่วมด้วย เราก็อาจจะทำการ install จาก easy_install ซึ่งเป็น util หนี่งสำหรับการลงโปรแกรมต่าง ๆ ของ python

easy_install http://www.agendaless.com/Members/chrism/software/buildit/buildit-0.1.tar.gz

แล้วก็ โหลดตัว buildout มาจาก svn

$ svn checkout http://svn.gispython.org/svn/zope/primagis.buildout/trunk primagis.buildout

ก็เริ่มการ install โดยระบุค่า prefix หรือค่าต่างที่จำเป็น

python build.py –build-root=/tmp/ –prefix=/opt/hgis –zope-port=9080
จากตัวอย่างนั้นต้องการ install ไปที่ /opt/hgis และใช้ /tmp สำหรับช่วงการ download และ build และระบุว่า zope นั้นเปิดที่ port 9080

เพียงเท่านี้มันก็จะ download และ build ทุกอย่างให้หมด แต่หากระหว่างการดำเนินการมีปัญหา เช่น sw นั้นเก่าไปแล้วหรือ link นั้น error ก็ให้ทำการแก้ไข ได้ที่ task/<swname>.ini

อีกสิ่งหนึ่งที่สำคัญในการ install นั้นไม่จำเป็นต้องใช้ root user เพียงแค่ permission ของ prefix directory ปลายทางนั้นสามารถเขียนได้ก็ใช้การได้

เมื่อลงเสร็จก็จะมีคำแนะนำว่าต้องทำอะไรอย่างไรต่อเช่น

- เริ่ม run zope

/opt/hgis/zope/Zope-2.9.6-final/instances/buildout/bin/runzope – ทำการทดลองสร้าง PrimaGIS ว่ามี error อะไรไหม

cd /opt/hgis/zope/Zope-2.9.6-final//instances/buildout
./bin/zopectl test -vv –dir Products/PrimaGIS/tests

- login เข้าสู่หน้า manage ของ zope ด้วย user/passwd ที่กำหนดให้

http://localhost:9080/manage

- เมื่อเข้าสู่หน้า mange ของ zope แล้วก็ให้ทำการ สร้าง Plone Site (จากหน้าแรกแล้วเลือก drop down แล้วกด Add)

- กำหนดชื่อ plone site

- จากนั้นใน Plone Site ที่เราสร้างจะมีคำสั่ง portal_quickinstaller ให้ก็ให้ ลง PrimaGIS และ ZCO

- ให้ทำการแก้ไขค่า portal_gis โดยการใส่ค่า

fonset  “/opt/hgis/spatialdata/fonts/fontset.txt”

incoming /tmp

- ขั้นตอนสุดท้ายก็ทำการสร้าง PrimaGIS front ด้วย

http://localhost:9080/hgis/createPrimaGISDemo

แค่นี้ก็เสร็จสิ้นแล้ว

Remark

หากการทำแล้วมีปัญหาอะไร ลองตรวจสอบว่าบางที simplejson, elementtree, owslibอาจมีข้อผิดพลาดจากการ install ของ script อาจจะต้องทำการ ลงด้วย easy_install เองซึ่งไฟล์จะอยู่ใน

/opt/hgis/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/easy_install.py


			

ติดตั้ง Zope และ Prima GIS

Standard

ก่อนอื่น เพิ่มส่วนนี้ไว้่ก่อนที่จะลืมอะนะครับ

ภายหลังทำการติดตั้ง Zope แล้วจำเป็นต้องแก้ไข iptable ให้สามารถตอบรับการเรียกจาก port 9080 ด้วย

โดยแก้ไขที่ไฟล์
/etc/shorewall/shorewall.conf

แล้วยังต้องทำการ install src ของ Mapserver และทำการ complie ไว้ด้วยเพราะต้องใช้ในขั้นตอนต่อไป

ทำการ extract PCL code

cd /tmp
tar -xzvf /mnt/cdrom/primagis/PCL-0.10.0.tar.gz
cd /tmp/PCL-0.10.0/PCL-Cartography/

อันนี้ทำเผื่อไว้ในกรณีชื่อมันเพี้ยน ๆ

ln -s /usr/share/proj/epsg /usr/share/proj/EPSG

อันนี้เป็นการ install ให้ zope รู้จักกับมันนะ
python setup.py build_ext -I /usr/src/RPM/BUILD/mapserver-4.6.2/ install

แล้วจากนั้นก็ให้ทำการปิด zope

แล้วสร้าง user

zopectl adduser username passwd

แล้วก็ restart zope ใหม่ดู
จากนั้นลองทำการทดลองเรียก Cartogtaphy ดู
โดยพิมพ์

python
>>> import cartography
>>> help(cartography)

หากมีการแสดง help ก็แสดงว่าน่าจะไม่มีปัญหาใด ๆ

จากนั้นก็เข้าไปสร้าง Plone Site แล้วก็สั่ง Easy Install (Prima GIS)

แล้วจึงสร้าง demo ตามที่เคยทำอธิบายไว้นะครับ

หากมีปัญหา ข้างนี้เป็นรวม link Faq ต่างๆ
http://trac.gispython.org/projects/PCL/wiki/FrequentlyAskedQuestions

การเพิ่ม WMS layer เข้าไปใน PrimaiGIS demo

Standard

จริงโดยหลักแล้วก็คล้ายกับการเพิ่ม layer ธรรมดาที่จะต้อง เพิ่มเข้าไปใน ZCO->rawdata ก่อนโดยเลือกชนิดเป็นแบบ Web Map Service (Raster)

และใส่ URL ที่เราจะใช้และ version

ยกตังอย่างเช่น

url =htpp://127.0.0.1/cgi-bin/hanoiwms?
version =1.1.1

และในช่อง incoming ให้เว้นว่างเอา้ไว้

แต่ในกรณีนี้นั้นไม่จำเป็นต้องเพิ่มในส่วนของ Symbol เพราะมันเป็นข้อมูลแบบ Raster

จากนั้นก็เพิ่มเข้าไปในส่วนของ ZCO Layer โดยอ้างอ้างถึง rawdata

ข้อสำคัญคือ

typename นั้นหมายถึง Layer name หรือ Layer Group Name ที่เราจะร้องขอข้อมูลจาก WMS server นั้นๆ

และเมื่อเพิ่มข้อมูแล้วไปตรวจดูในส่วนของ Edit จาก layer ที่เราเพิ่ง add อาจจะไม่เห็นภาพที่เราเพิ่งเพิ่มเข้าไป
เพราะมีอีักสองส่วนที่ำจำเป็นต้องเพิ่มเข้าไปคือ

ows_srs คือ ข้อมูล SRS Projection ที่เราจะใช้เช่น ESPG:4326

ows_format คือ ข้อมูล ImageType ที่เี่ราจะใช้ image/jpeg

โดยหากข้อมูลดังกล่าวข้างต้นไม่มีให้เพิ่มใน “Properties”โดย parameter ข้างบนทั้งสอง เป็นชนิด string

bbox คือ ข้อมูล Lat Long Bounding Box 105.2926 20.5698 106.8591 21.5
ข้อมูล bbox นั้นเป็นแบบ tokens

เท่านี้แล้วน่าจะทำให้ทุกอย่างสำเร็จเสร็จสิ้นไปได้ด้วยดี แต่จริง ๆ แล้วในส่วนของ typename นั้นอาจเพิ่มการเลือก style เข้าไปได้ด้วย

รายละเอียดเพิ่มเติมติดต่อได้ทาง howto นะครับ

Edit View and Default for Prima GIS

Standard

เราสามารถทำการแก้ไข ค่า Default และ Name View ได้ตั้งแต่ครั้งแรกที่ Customize PrimaGIS demo instance

แต่อย่างไรก็ตามเราก็ยังสามารถมาแก้ไขภายหลังได้เช่นกัน

โดยอาจะเข้ามาที่หน้า Plone ด้วย Admin level
และในส่วนของ

Administer map views

ที่อยู่ล่างจาก Map และ Layers Selection

โดยเมื่อกดปุ่ม

Created Named View

ก็จะทำการสร้าง Zoom View จาก BBox ปัจจุบันที่แสดงบนแผนที่

และหากเรากด ปุ่ม Default View ทีอยู่บน Map Control Toolbox (Zoom In, Zoom Out ,…) ก็จะทำการบันทึกค่า BBox ให้แสดงเป็น Default view เช่นกัน

ทั้งนี้เรายังสามารถระุบุ ค่า BBox จาก ค่า Lat,Lon โดยการเพิ่ม

primagis view

object ได้เช่นกัน

Adding new SHP and Raster to PrimaGIS Demo

Standard

ก่อนนี้เราได้ทำการ ติดตั้ง PrimaGIS Demo ไปแล้วคราวนี้เรามาเริ่มนำข้อมูล GIS และ Raster File เพิ่มเข้าไปใน Demo Instance

ก่อนอื่นเลยต้องทำการสร้าง ไฟล์ ovf สำหรับ กรณีเป็น GIS

$ python shpconfig.py -c world_borders.ovf
$ python shpconfig.py -a world_borders.shp –a_srs “EPSG:4326″ world_borders.ovf

และทำการสร้างไฟล์ vrt สำหรับในกรณีที่เป็น Raster

$ gdal_translate -of VRT -a_srs “EPSG:4326″ file.jpg file.vrt

รายละเอียด ตาม link ว่าทำไมต้องสร้างนะครับ

จากนั้นก็ ทำตามกระบวนการโดยละเอียดจาก link ข้างบน โดยสรุปก็คือ

1. ทำการเพิ่มข้อมูล ใน Data Store ในส่วนของ Raw data (โดยใส่ id และ physical file path)
2. จากนั้นเพิ่ม Zco Layer ในส่วนของ layers (โดยใส่ id และ relative path ของ raw data ที่เราต้องการใช้)
3. เมื่อทำการ เลือกที่ Edit ก็น่าจะเห็นภาพแผนที่
4. จากนั้นไปเพิ่ม Zco Symbolizers ในส่วนของ Symbolizers โดยมีการแยกส่วนออกเป็น point,line,polygon และ Text
5. ต่อมาคือการสร้าง Zco Style โดยสามารถสร้าง Thermatic map ได้จาก symbolizers ที่มีและกำหนด rules ได้
ุ6. จากนั้นต้องทำการเข้าูสู่หน้า Plone โดยใช้ admin ให้ทำการเพิ่ม “Prima GISLayer” object โดยการใช้ปุ่ม Add new item

ส่วนการเพิ่มข้อมูล Raster นั้นทำเช่นเดียวกับข้างบน

โดยไม่จำเป็นต้องทำขั้นตอน 4 และ 5