หลาย ๆ ครั้งที่ งง ๆ กับ การผสมสี วันนี้ก็เจอข้อมูลการผสมสีของภาพ สำหรับจุดประสงค์ ต่าง ๆ ก็เลยเอามาแปะไว้สะหน่อย
เพราะปกติก็ใช้แต่ 3,2,1 แล้วก็ 4,3,2 แค่นี้ละมั้ง
http://web.pdx.edu/~emch/ip1/bandcombinations.html
หลาย ๆ ครั้งที่ งง ๆ กับ การผสมสี วันนี้ก็เจอข้อมูลการผสมสีของภาพ สำหรับจุดประสงค์ ต่าง ๆ ก็เลยเอามาแปะไว้สะหน่อย
เพราะปกติก็ใช้แต่ 3,2,1 แล้วก็ 4,3,2 แค่นี้ละมั้ง
http://web.pdx.edu/~emch/ip1/bandcombinations.html
ได้ไปอ่านเจอ “Mapserver : a completed unbiased Overview” by Paul Ramsey แล้วได้ใจมากกับคำนิยามที่ตรงใจ เวลาคนอื่นถามว่าทำไมไม่ใช้ ArcIMS ทำไมไม่ Geoserver ก็เพราะว่า …..
Mapserver is strong like OX มันแข็งแรงเหมือน วัว
Mapserver is fast like cheetah มันเร็วเหมือนเสือชีตาท์ (อันนี้เห็นด้วยอย่างแรง เวลาบอกคนอื่นก็มักบอกแต่คนดี อันนี้)
Mapserver is kind of cheetox or an Oxtah คุณเห็นด้วยไหม ???
อีกอย่างที่น่าสนใจก็คือ
Mapserver is an rendering engine มันก็เป็นแค่เครื่องจักรที่มีหน้าที แปลงข้อมูลดิบ ให้เป็นแผนที่ที่สวยงาม
แต่ Geoserver, Mapguide and Arc IMS นั้นเปรียบได้เหมือน รถยนต์ ที่มักรวมเบาะที่นั่งนุ่ม ๆ เครื่องเสียงเล้าใจ ไฟกระพริบสีสรร
ลองอ่านเพิ่มเติมได้จากที่นี่นะครับ
อ่านข่าวเจอ ข่าวของหน่วยงานตัวเองก็เอามา post สะหน่อย
ญี่ปุ่นอวดโฉมหุ่นยนต์นางแบบในชุดเจ้าสาว
โดย ASTVผู้จัดการออนไลน์ | 22 กรกฎาคม 2552 20:09 น. |
เอเจนซี – สถาบันเพื่อวิทยาศาสตร์และเทคโนโลยีอุตสาหกรรมชั้นนำแห่งชาติญี่ปุ่น(AIST) เปิดตัวหุ่นยนต์นางแบบ “Miim” อย่างเป็นทางการ โดยหุ่นยนต์เสมือนมนุษย์สวมชุดเจ้าสาวที่ออกแบบโดยยุมิ คัตซุรา ดีไซเนอร์แดนปลาดิบ ขณะที่ผู้พัฒนามันขึ้นเผยว่า หุ่นยนต์รุ่นี้มีมูลค่า 72 ล้านบาท หุ่นยนต์เสมือนมนุษย์ HRP-4C ชื่อ “Miim” มีมอเตอร์ควบคุมการเคลื่อนไหวและเซ็นเซอร์รวม 40 ตัว เพื่อเลียนแบบการเคลื่อนไหวของนางแบบที่มีเลือดเนื้อจริงๆ โดยหุ่นยนต์ตัวนี้สามารถแสดงได้หลากหลายอารมณ์ เช่น โกรธ สนุก และประหลาดใจ ผ่านคำสั่งจากอุปกรณ์บลูทูธ |
||||
|
||||
แม้จะสูงเพียง 158 เซนติเมตร ซึ่งเป็นส่วนสูงโดยเฉลี่ยของผู้หญิงญี่ปุ่นอายุระหว่าง 19-29 ปี แต่มีนำหนักเท่ากับสาวผอมบางเพียง 43 กิโลกรัม คาซุฮิโตะ โยโกอิ นักพัฒนาของสถาบันเอไอเอสที เผยว่า ใช้งบประมาณพัฒนาหุ่นยนต์ตัวนี้ไปมากกว่า 200 ล้านเยน หรือราว 72 ล้านบาท โดยหุ่นยนต์ตัวนี้ถูกพัฒนาขึ้น เพื่อใช้ในอุตสาหกรรมด้านบันเทิงเป็นหลัก แต่ยังไม่ได้วางขายในตลาด |
||||
|
||||
|
ที่มา Manager Online
ผ่านไปไม่นานกับปรากฏการณ์ สุริยุปราคา ที่เกิดนาน กว่าในทุก ๆ ครั้ง ครั้งนี้ก็เกิดแบบเต็มดวง ในแถบบริเวณ จีน ญี่ปุ่น อินเดีย
ใน การประชุมกันในหน่วยงาน ก็มีการพูดถึงกันถึงปรากฏการณ์นี้ว่ามีใครเห็นบ้างไหม แต่ที่หน่วยงานไม่เห็น เพราะถึงจะอยู่ในญี่ปุ่น แต่ไม่อยู่ในเขตนั้นอีกทั้ง เมฆก็หนามาก ก็รู้สึกแค่ว่า มันไม่สว่าง มาก
แต่ ก็มีความคิด ขึ้นมาได้ว่า ครั้งนี้ เกิดในช่วงเวลา 10.30-11.00 ซึ่งเป็นช่วงเวลาเดียวกันถ่ายภาพของ MODIS/Terra ซึ่งเป็นระบบสำรวจแบบ Passive ถ้าแหล่งกำหนด ถูกบังไป มันต้องมีผลแน่นอน ก็เลยถามคนที่คุมด้านนี้ว่า ภาพมันจะเป็นอย่างไร ทุกคนก็สงสัย ก็เลยมีการค้นหาข้อมูล ก็ได้ภาพตามที่ปรากฏ ซึ่งภาพจะมัว ๆ คล้ำ ๆ แล้วจะเห็น Bad pixel อยู่ด้านขวาล่าง ๆ ซึ่งบริเวณนั้นเป็น ศูนย์กลางของเงาสุริยปราคา
ก็ยังมีภาพเคลื่อนไหว จากภาพถ่ายของ MTSAT ด้วยจาก link นี้ แต่ต้องพยายามสักเกต ให้ดีจะมีดำ ๆ บริเวณแถว ๆ ทางใต้ญี่ปุ่นและตะวันออกของจีน อยู่ช่วงนึง
เคยแต่ใช้ PHP Mapscript มาสะนาน คราวนี้มาลองใช้ SWIG Mapscript ดูบ้าง ก็เลยลองกลับ Python 2.6
มาเปรียบเทียนกันเลยละกัน Code ที่แสดงเป็นการเปลี่่ยนค่า PROCESSING ของ RASTER layer แล้วทำการ QueryByPoint โดยใน PHP เจอปัญหาสามารถกำหนดค่า BANDS ได้เพียง 5 bands แต่ใน python ในนั้นไม่มีปัญหา รวมถึงหากกำหนดใน mapfile เช่นกันคาดว่าจะเป็นในเรื่องของ ขนาด shape result ที่ใหญ่เกินกว่าที่กำหนดไว้
เท่าที่ลองใช้ python mapscript ก็ใช้งานได้ดี โดยเฉพาะในแบบ interactive ทำให้ง่ายต่อการ debug
Python Code
import mapscriptomap=mapscript.mapObj("test.map") olayer=omap.getLayerByName("testdata") olayer.status=mapscript.MS_ON olayer.clearProcessing() olayer.setProcessingKey("BANDS","1,2,3,4") queryPoint = mapscript.pointObj(-179.5,89.5) olayer.queryByPoint(omap,queryPoint,mapscript.MS_SINGLE,-1) olayer.open() for i in range(olayer.getNumResults()): result=olayer.getResult(i) s=olayer.getFeature(result.shapeindex) for i in range(olayer.numitems): print "%s: %s" % (olayer.getItem(i), s.getValue(i) olayer.close()
PHP Mapscript
dl("php_mapscript.so");$oMap = ms_newMapobj("/srv/maps/modis/config.map"); $oLayer = $oMap->getLayerByName("testdata"); $oLayer->clearprocessing(); $oLayer->setprocessing("BANDS=1,2,3,4"); $oLayer->set("status","MS_ON"); $queryPoint=ms_newPointObj(); $queryPoint->setXY(-179.5,89.5); @$oLayer->queryByPoint($queryPoint,MS_SINGLE,-1); $oLayer->open(); for ($i=0;$i< $oLayer->getNumResults();$i++){ $oResult = $oLayer->getResult($i); $oshape = $oLayer->getfeature($oResult->shapeindex); foreach ($oLayer->getitems() as $name){ echo $name.": ".$oshape->values[$name]."\n"; } }
Result
x: -179.5
y: 89.5
value_0 : -9999
value_1 : -9999
value_2 : 4040
value_3 : 4785
value_list : -9999,-9999-4040,4785
red : 0
green : 0
blue : 0
OpenLayers new version 2.8 ได้ออกมาแล้ววันนี้ หลัก ๆ แล้วก็ได้เพิ่มการศักยภาพการรองรับ Vector Feature มากยิ่งขึ้น รวมทั้งการ Parsing ที่เร็วยิ่งขึ้น
ยังมีการเพิ่ม control ใหม่ ๆ และก็การเพิ่มการ support Layers ใหม่ ๆ เช่น OSM และ ArcXML
รายละเอียดการเปลี่ยนและ bugfix ก็ตาม link
ในการส่วนการรองรับ WMS 1.3.0 อย่างสมบูรณ์ก็ต้องรอต่อไป อาจจะไปถึง Version 3.0 หรือหลังจากงาน FOSS4G2009
อีกครั้งสำหรับ FOSS4G Conference ครั้งนี้จัดที่ Sydney,Australia ระหว่าง 20-23 Oct 2009
ก็หวังว่าจะได้ไปร่วมอีกครั้งหลังจากครั้งที่แล้วพลาด เพราะยุ่งกับการเตรียมตัวจบ
ครั้งนี้ก็ได้มีส่วนร่วมนิดหน่อย (เท่านั้น) กับการช่วย อจ ไพศาลแปลข้อความเป็นภาษาไทย
ครั้งนี้ถ้าใครไปร่วมแล้วมีส่วนร่วมช่วย vote ให้ด้วยแล้วกันนะครับ เพราะมีคนส่งไปเกือบ 180 abstract แต่สงสัยจะรับได้ไม่เกิน 100 เท่านั้น
อยู่แถว ๆ หน้าที่ 5-7 ได้นะ ฝากด้วยนะครับ
ทั้งนี้และทั้งนั้น ฝาก vote ให้ของ อจ ไพศาลและ น้องชัยภัทร ด้วยนะครับ
ก็ได้กล่าวไปบ้างแล้วสำหรับ การเปลี่ยนแปลงของ ระบบอ้างอิง x,y ใน WMS 1.3.0
ก็มาพูดถึงโดยละเอียดอีกทีว่าเป็นอย่างไร
นั้นจึงเป็นปัญหาที่พบกันอยู่ซึ่งส่วนใหญ่เท่าที่เจอคือ EPSG ที่ใช้พิกัดแบบ longitude latitude ส่วนใหญ่ใน WMS 1.3.0 จะเปลี่ยนเป็นแบบ lat/lon
แต่ก็ไม่มั่นใจว่า ระบบ EPSG ทั้งหมดจะเปลี่ยนจาก lon/lat เป็น lat/lon ทั้งหมดหรือไม่ก็ต้องหาข้อมูลเพิ่มเติมอีกครั้งนึง
มากันอีกแล้วกับ version ใหม่ สิ่งสำคัญในการเปลี่ยนแปลงครั้งนี้คือ
ระบบใหม่นั้นจะให้ การอ้างอิง Axis เป็นไปตามค่าที่ระบุใน GetCapabilities ดังนั้นจะใช้อย่างไรก็ต้องทำการศึกษาให้ดี รายละเอียดเพิ่มเติมก็ลองดูจาก http://mapserver.org/ogc/wms_server.html#wms-1-3-0-support
ตัวอย่าง website ภาพถ่ายทางอากาศของญี่ปุ่นที่ support WMS 1.3.0 เท่านั้น
http://orthophoto.mlit.go.jp:8888/wms/service/wmsRasterTileMap?VERSION=1.3.0&REQUEST=GetCapabilities&Service=WMS
แล้วเราจะใช้ WMS 1.3.0 กับ OpenLayers ได้ไหม คำตอบก็คือได้ แต่ไม่สมบูรณ์ เพราะได้รับการยืนยันจาก Chris Schmidt ว่าไม่รับรองการรองรับกับ WMS 1.3.0
แต่ต้องทำการตั้งค่า option ของ layers สะนิดหน่อยให้ใช้ Version 1.3.0 และ CRS
layer = new OpenLayers.Layer.WMS(“MLIT photo”, “http://orthophoto.mlit.go.jp:8888/wms/service/wmsRasterTileMap”,
{layers:”ORTHO”,
CRS:”EPSG:4612″,
VERSION:”1.3.0″
} );
แต่ก็ไม่คิดว่าน่าจะใช่วิธีที่ถูกต้อง เพราะใน URL ที่ส่งไปก็ยังมี SRS อยู่ด้วยต้องทำการหาวิธีที่ถูกต้องต่อไป
เท่าที่ใช้ดูเวลา zoom เข้าไปบางทีก็มีปัญหา แล้วก็ cache บางทีก็ต่อกลับหัวกลับข้าง คาดว่าคงเป็นปัญหาด้าน lon/lat และ lat/lon
ก็อาจจะต้องทำการแก้ไขสร้าง Layer Class ขึ้นมาใหม่ให้สำหรับ wms 1.3.0 โดยการจำลองจาก Layer WMS เดิมแล้วก็ทำการสลับค่า coordinate สะ
รับรู้มาตั้งนานแล้วว่า Mapserver support WMS และ WCS Time
เช่นในกรณี MODIS data set ซึ่งจะมีภาพทุก ๆ วัน ก็จะเป็นประโยชน์มากวิธีการทำก็มีใน
http://mapserver.org/ogc/wms_time.html และ http://mapserver.org/ogc/wcs_server.html#wcs-server
มาสรุปสั้น ๆ ให้ได้ใจความ
ก่อนอื่นทำความเข้าใจก่อนว่า 1 ไฟล์ภาพ คือ ข้อมูล หนึ่งวัน หรือหนึ่งเวลา อาจจะมีหลาย band ก็ได้
ขั้นที่ 1 ก็ทำการสร้าง index file ด้วยคำสั่ง
-gdaltindex inde.shp image/*.tif
ก็จะได้ไฟล์ index มาซึ่งจะมี colume “location” ที่มี path และ filename อยู่
ก็ทำการสร้าง colume เพิ่มมาใหม่ด้วย โปรแกรม GIS เช่น Mapwindos, Qgis etc.. ตั่งชื่ออะไรก็ได้ ให้ข้อมูลเป็นชนิด Text
จากนั้นอาจจะต้องหาวิธีใส่ข้อมูลวันที่เข้าไป ในแต่ละ records.
เสร็จไปขั้นแรก
2. ก็มาสร้าง map file โดยทำการสร้าง layer สำหรับ tile index ซึ่งก็เป็นแบบทั่วไปของ Polygon SHP
3. ทำการสร้าง Layer สำหรับภาพ Modis โดยมีข้อมูลที่สำคัญตามนี้
Layer
NAME modisa ชื่อข้อมูล
Projection
“init=epsg:4326″
End
TYPE RASTER
DUMP True
TILEINDEX “location” ชื่อ colume ที่มี path และ filename
TILEINDEX “time_idx” ชื่อ layer ของ tileindex
METADATA
“wms_timextent” “2008-09-01/2008-09-05 จากวันที่ 1 ถึง 5
“wms_timeitem” “dtime” ชื่อ colume ใน shp ที่มีข้อมูลวันที่
“wms_timedefault” “2008-09-01″
…… และอื่นที่ ๆจำเป็นสำหรับ wms implementation
“wcs_timeitem” “dtime”
“wcs_timeposition” “2008-09-01/2008-09-05″
……
END
เป็นที่น่าสังเกตว่า
wcs_timeextent สามารถกำหนดเป็น แบบ range ได้ หลังจาก Mapserver version 5.4.1