วันพุธที่ 20 มิถุนายน พ.ศ. 2555

การกำหนดค่าคอนฟิกกูเรชั่นของ PostgreSQL

เนื้อหาส่วนนี้จะอธิบายถึงวิธีการกำหนดค่าคอนฟิกกูเรชั่นในด้านเครื่อข่ายของ PostgreSQL ให้เครื่องคอมพิวเตอร์ต่างๆ สามารถติดต่อใช้งานฐานข้อมูลของ PostgreSQL ได้ โดยเนื้อหาที่จะอธิบายนี้ อ้างอิงตามระบบปฏิบัติการลินุกซ์ Fedora Core 4 เท่านั้น ค่าคอนฟิกกูเรชั่นของ PostgreSQL จะเก็บไว้ใน 2 ไฟล์ คือ pg_hba.conf และ postgresql.conf ซึ่งทั้งสองไฟล์เก็บอยู่ในไดเร็คทอรี่ C:\Program Files\PostgreSQL\8.2\data\ 
การกำหนดค่าคอนฟิกกูเรชั่น
1. สำเนาไฟล์คอนฟิกกูเรชั่นต้นฉบับไว้ก่อนที่จะทำการแก้ไข 

2. เรียกใช้โปรแกรม Text Editor โดยคลิกเมนู Start > Accessories > Text Editor แล้วเปิดไฟล์pg_hba.conf และปรับแก้ค่าคอนฟิก

แก้บรรทัด host all all 127.0.0.1/32 ident sameuser แก้เป็น host all all 0.0.0.0/0 trust เพื่ออนุญาตให้เครื่องไคลเอนต์ติดต่อเข้าใช้งานฐานข้อมูลบนเซิร์ฟเวอร์

3. บันทึกการแก้ไขไฟล์ pb_hba.conf

4. เรียกใช้โปรแกรม Text Editor โดยคลิกเมนู Start > Accessories > Text Editor แล้วเปิดไฟล์ postgresql.conf ค้นหาคำว่าlisten_addressesเพื่อค้นพบแล้วให้ปรับแก้ค่าในบรรทัดดังกล่าวดังนี้ แก้จาก listen_addresses = ‘localhost’ แก้เป็น listen_addresses = ‘*’ เพื่ออนุญาตให้เครื่องไคลเอนต์ที่ใช้หมายเลข IP (IP address) อื่นๆ ที่ไม่ใช่ localhost สามารถติดต่อเข้าใช้งานฐานข้อมูล PostgreSQL บนเซิร์ฟเวอร์
5. บันทึกการแก้ไขไฟล์ postgresql.conf
6. สั่งเริ่มต้นการทำงานของเซอร์วิส PostgreSQL ใหม่

วันจันทร์ที่ 18 มิถุนายน พ.ศ. 2555

ทำงานกับไฟล์เยอะๆ ด้วยคำสั่งเดียว (batch processing)


หากมีการทำงานเช่นการ แปลงระบบพิกัดของไฟล์ภาพหรือแผนที่จำนวนมาก และไม่อยากค่อยๆทำทีละไฟล์ไปเรื่อยๆ จนครบก็สามารถอาศัยวิธีการเดิมที่ใช้ในระบบ DOS หรือ  UNIX นั่นก็คือการใช้วิธีการ Batch processing คือสั่งครั้งเดียวให้ทำงานไปเรื่อยๆ จนครบ วิธีการแบบนี้ใช้กับคำสั่งแบบพิมพ์หรือ command line นะครับ

ตัวอย่าง เช่น เราต้องการแปลงระบบพิกัดไปเป็น ละติจูดลอนจิจูด ซึ่งข้อมูลมีระบบพิกัดเป็น UTM zone 47 , WGS84 ซึ่งในการแปลงระบบพิกัดเราอาศัย gdalwarp ใน FWTools คำสั่งคือ
>gdalwarp -t_srs epsg:4326 input.tif output.tif
เมื่อต้องการสั่งแบบทีเดียว ก็ต้องทำการจัดการข้อมูลในโฟล์ดเดอร์นั้นที่นามสกุล tif ให้เหลือเฉพาะข้อมูลที่ต้องการแปลงเท่านั้น ไม่งั้นไฟล์อื่นที่นามสกุลเดียวกันจะถูกแปลงไปด้วย คำสั่งมีดังนี้
>for %i in (.\*tif) do gdalwarp -t_srs epsg:4326 geo\%i
มีความหมายว่าใช้ gdalwarp แปลงระบบพิกัดให้เป็น ละติจูดลอนจิจูด แปลงแล้วให้เอาไปเก็บไว้ใต้โฟล์ดเดอร์geo โดยใช้ชื่อไฟล์เดิม
หากต้องการเติมอักษรต่อท้ายชื่อไฟล์เดิมเพื่อให้เห็นความแตกต่างเช่นต่อท้ายทุกไฟล์ด้วย _srs4326 สามารถทำได้ดังนี้
>for %i in (.\*tif) do gdalwarp -t_srs epsg:4326 geo\%i~_srs4326.tif