<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sarawut Ninsawat &#187; wps</title>
	<atom:link href="http://www.ninsawat.com/?cat=11&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.ninsawat.com</link>
	<description>A Personal Blog but not private</description>
	<lastBuildDate>Sat, 02 Aug 2025 08:02:05 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.2</generator>
	<item>
		<title>เริ่มต้นกับ ZooWPS</title>
		<link>http://www.ninsawat.com/?p=85&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e0%25b9%2580%25e0%25b8%25a3%25e0%25b8%25b4%25e0%25b9%2588%25e0%25b8%25a1%25e0%25b8%2595%25e0%25b9%2589%25e0%25b8%2599%25e0%25b8%2581%25e0%25b8%25b1%25e0%25b8%259a-zoowps</link>
		<comments>http://www.ninsawat.com/?p=85#comments</comments>
		<pubDate>Thu, 04 Nov 2010 07:45:01 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[wps]]></category>

		<guid isPermaLink="false">http://www.ninsawat.com/?p=85</guid>
		<description><![CDATA[หลังจากพูดคุยในวงเหล้า บนเครื่อง บนรถกับ Gerald มานานว่าจะลอง ๆ Zoo ก็ไม่มีโอกาสสะที ทั้งที่เข้าใจโครงสร้างระบบทุกอย่างหมดละ เมื่อวานก็เลยใช้ช่วงโอกาสเข้า Workshop กันไปเลยจะได้ลองจริง ๆ จากที่ลองก็ถือว่า มีแนวคิดที่ดี แต่ยังเป็นของใหม่ทำให้ต้องอาศัย ความเข้าใจอยู่ในระดับที่ว่าเป็น advanced ก็สรุป ๆ บางอย่างได้ดังนี้ Compile : ดูเหมือนจะยาก เพราะขนาดใช้ LiveDVD ที่ลง lib ที่จำเป็นไว้หมดแล้วก็ยังลงไม่ผ่าน อาจจะต้องใช้ lib-dev บางส่วนเพิ่มเติม ไว้จะลองใหม่ Install : หลัก ๆที่ใช้คือ zoo_loader.cgi และ main.cfg ให้ไปใส่ไว้ใน cgi-bin directory โดย main.cfg จะเป็น config กำหนดค่าต่าง ๆ ที่จำเป็น ทั้ง tmppath, tmpURL and so&#8230;]]></description>
				<content:encoded><![CDATA[<p>หลังจากพูดคุยในวงเหล้า บนเครื่อง บนรถกับ Gerald มานานว่าจะลอง ๆ Zoo ก็ไม่มีโอกาสสะที ทั้งที่เข้าใจโครงสร้างระบบทุกอย่างหมดละ เมื่อวานก็เลยใช้ช่วงโอกาสเข้า Workshop กันไปเลยจะได้ลองจริง ๆ จากที่ลองก็ถือว่า มีแนวคิดที่ดี แต่ยังเป็นของใหม่ทำให้ต้องอาศัย ความเข้าใจอยู่ในระดับที่ว่าเป็น advanced ก็สรุป ๆ บางอย่างได้ดังนี้</p>
<p>Compile : ดูเหมือนจะยาก เพราะขนาดใช้ LiveDVD ที่ลง lib ที่จำเป็นไว้หมดแล้วก็ยังลงไม่ผ่าน อาจจะต้องใช้ lib-dev บางส่วนเพิ่มเติม ไว้จะลองใหม่</p>
<p>Install : หลัก ๆที่ใช้คือ zoo_loader.cgi และ main.cfg ให้ไปใส่ไว้ใน cgi-bin directory โดย main.cfg จะเป็น config กำหนดค่าต่าง ๆ ที่จำเป็น ทั้ง tmppath, tmpURL and so on.</p>
<p>Service Provider : จะมีไฟล์ หลัก ๆ ที่จำเป็นคือ zcfg จะเป็น metada config ระบุ input, output สิ่งที่สำคัญคือในบรรทัดแรก จะเป็น ชื่อ function ที่จะอ้างถึงในไฟล์ ServiceProvider อีกทั้งชื่อไฟล์ zcfg ก็จะต้องมีค่าตรงกับค่าในบรรทัดแรกด้วย<br />
ในไฟล์ ServiceProvider (ที่อ้างมาจาก ค่าในไฟล์ zcfg) จะเป็นเหมือนไฟล์ที่เก็บ library function ทั้งที่ใช้ใน ตัว lib เองหรือ ถูกใช้จาก zcfg ค่า serviceType จะเป็นตัวบอกว่าใช้ service ในภาษาอะไรเช่น C, Python etc..<br />
- serviceProvider เป็นชื่อไฟล์ ที่จะ link มาใช้ แต่ไม่ต้องมี .py ในกรณีของ python แต่ต้องมี .zo ในกรณีของ C (ทำเอา งง เหมือนกัน)<br />
- ในการใช้ serviceprovider ของ C ต้องทำการ compile code ภายใน zoows source code แล้วจึงเอา obj มาไว้ใน cgi-bin directory ค่อนข้างดูยุ่งยากใช้ได้กันเลย ถ้าเทียบกับ python ที่เป็น script<br />
- การทำเป็นลักษณะ lib function ใน serviceProvider ถือว่าดี ในกรณที่ อนาคตหากมีการใช้งาน WorkFlow<br />
- การ fix config อาจจะทำให้การใช้งานร่วมกัน หลายคนใน server เดียวกันมีปัญหา<br />
- การเก็บ lib code ไว้ใน web accessible อาจจะไม่ปลอดภัยมากนัก</p>
<p>ต่อไปคงต้องลอง migrate code PyWPS มาเล่นสักหน่อย</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ninsawat.com/?feed=rss2&#038;p=85</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WPS-enabled Client</title>
		<link>http://www.ninsawat.com/?p=28&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wps-enabled-client</link>
		<comments>http://www.ninsawat.com/?p=28#comments</comments>
		<pubDate>Mon, 21 May 2007 08:55:00 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[wps]]></category>

		<guid isPermaLink="false">http://www.ninsawat.com/?p=28</guid>
		<description><![CDATA[วันนี้มาจดบันทึกคร่าวๆ เพราะ เดี๋ยวทำไปนาน คงจะลืม จะกล่าวถึงระบบ 2 ระบบคร่าว ๆ โดยมีแบบ Direct และ WMS ในส่วน Direct ไฟล์ที่เกี่ยวข้องหลัก ๆ จะมี - wpsprocess.js จัดกับ การ Execute Request และเมื่อเสร็จสิ้น ก็จะสั่งให้เริ่มทำการ render โดย function Calcuate(); - index.php นั้นเป็น interface หลักที่ใช้ อีกยังมี Calculate function อยู่ด้วย ซึ่งจะไปสั่งให้ refreash map โดยต้อง arg ที่จำเป็นไปที่ drawmap.php - drawmap.php จะทำการรวบรวมค่าต่าง ๆที่จำเป็นในการที่จะใช้สร้าง map image ก่อนที่จะส่งต่อไปที่ restoreState ใน map_session&#8230;]]></description>
				<content:encoded><![CDATA[<p>วันนี้มาจดบันทึกคร่าวๆ เพราะ เดี๋ยวทำไปนาน คงจะลืม</p>
<p>จะกล่าวถึงระบบ  2 ระบบคร่าว ๆ โดยมีแบบ Direct และ WMS</p>
<p>ในส่วน Direct ไฟล์ที่เกี่ยวข้องหลัก ๆ จะมี</p>
<p>- wpsprocess.js จัดกับ การ Execute Request และเมื่อเสร็จสิ้น ก็จะสั่งให้เริ่มทำการ render โดย function Calcuate();</p>
<p>- index.php นั้นเป็น interface หลักที่ใช้ อีกยังมี Calculate function อยู่ด้วย ซึ่งจะไปสั่งให้ refreash map โดยต้อง arg ที่จำเป็นไปที่ drawmap.php</p>
<p>- drawmap.php จะทำการรวบรวมค่าต่าง ๆที่จำเป็นในการที่จะใช้สร้าง map image ก่อนที่จะส่งต่อไปที่ restoreState ใน  map_session อีกครั้ง</p>
<p>- map_session.php ก็จะทำการดำเนินจัดการ mapfile ให้สร้าง map ที่ต้องการ</p>
<p>ส่วนในกรณีของ WMS<br />- wpsprocess.js เหมือนกับใน แบบแรก</p>
<p>- indexwms.php ทำหน้าที่เหมือนกับ แบบแรกเช่นกัน แต่ ให้สนใจ การเรียงลำดับ layer ใน fucntion ChgLayer ด้วย เพราะมีความสำคัญกับลำดับ</p>
<p>- owsraster.php ทำหน้าที่คล้ายๆกับ drawmap.php และ map_session.php แต่ ไม่ยุ่งยากเท่า โดยจะเป็นการใช้คำสั่งของ ows WMS phpmapscript</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ninsawat.com/?feed=rss2&#038;p=28</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pyWPS ภาคต่อ</title>
		<link>http://www.ninsawat.com/?p=20&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pywps-%25e0%25b8%25a0%25e0%25b8%25b2%25e0%25b8%2584%25e0%25b8%2595%25e0%25b9%2588%25e0%25b8%25ad</link>
		<comments>http://www.ninsawat.com/?p=20#comments</comments>
		<pubDate>Wed, 22 Nov 2006 07:38:00 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[wps]]></category>

		<guid isPermaLink="false">http://www.ninsawat.com/?p=20</guid>
		<description><![CDATA[pyWPS Client Example: หลังจากได้ดำเนินลง pyWPS สำเร็จเสร็จสิ้น ก็ต้องมาดำเนินการด้าน Client for WPS กันต่อ ก็มีอยู่สัก 2 &#8211; 3 ตัวที่่กำลังพัฒนากันอยู่ ก็เช่น Embrio และ Wuiw ในขั้นตอนการลงก็มีอุปสรรคบ้างเล็กน้อย พอประมาณ โดยกล่าวคร่าว ๆ ก่อนแล้วกันว่า Embrio เนีั่ยต้องการ php_mapscript และ DOM โดยจะต้องใช้ php-dom, php-xml package ขอเน้นไว้ว่า php-dom และ php-domxml ไม่เหมือนกัน เพราะ php-domxml นั้นเป็นตัวเก่าใน php version 4 ใน php 5.0 นั้นเปลี่ยนชื่อมันไปสะแล้ว XML Post Request: มาถึงการส่งข้อมูลในแบบ XML Post&#8230;]]></description>
				<content:encoded><![CDATA[<p><span style="font-weight: bold;">pyWPS Client Example:</span></p>
<p>หลังจากได้ดำเนินลง pyWPS สำเร็จเสร็จสิ้น ก็ต้องมาดำเนินการด้าน Client for WPS กันต่อ</p>
<p>ก็มีอยู่สัก 2 &#8211; 3 ตัวที่่กำลังพัฒนากันอยู่ ก็เช่น Embrio และ Wuiw</p>
<p>ในขั้นตอนการลงก็มีอุปสรรคบ้างเล็กน้อย พอประมาณ</p>
<p>โดยกล่าวคร่าว ๆ ก่อนแล้วกันว่า</p>
<p>Embrio เนีั่ยต้องการ php_mapscript และ DOM โดยจะต้องใช้ php-dom, php-xml package</p>
<p>ขอเน้นไว้ว่า php-dom และ php-domxml ไม่เหมือนกัน เพราะ php-domxml นั้นเป็นตัวเก่าใน php version 4 ใน php 5.0 นั้นเปลี่ยนชื่อมันไปสะแล้ว</p>
<p><span style="font-weight: bold;">XML Post Request:</span></p>
<p>มาถึงการส่งข้อมูลในแบบ XML Post request กันบ้างแล้ว ซึ่งมีกระบวนการซับซ้อนบ้างเล็กน้อย วันนี้จะมา post ตัวอย่างของ XML ที่ใช้ในการ post</p>
<blockquote><p>&#8216;<br />&lt;execute service=&#8221;wps&#8221; version=&#8221;0.4.0&#8243; store=&#8221;true&#8221; status=&#8221;false&#8221; xmlns=&#8221;http://www.opengeospatial.net/wps&#8221; ows=&#8221;http://www.opengeospatial.net/ows&#8221;&gt;<br />&lt;ows:identifier&gt;addvalue&lt;/ows:identifier&gt;<br />&lt;datainputs&gt;<br />  &lt;input&gt;<br />      &lt;ows:identifier&gt;input&lt;/ows:identifier&gt;<br />      &lt;complexvaluereference reference=&#8221;http://localhost/wps/data/soils.tif&#8221;&gt;&lt;/complexvaluereference&gt;</p>
<p>  &lt;input&gt;<br />      &lt;ows:identifier&gt;value&lt;/ows:identifier&gt;<br />      &lt;literalvalue&gt;250&lt;/literalvalue&gt;</p>
<p>  &lt;input&gt;<br />      &lt;ows:identifier&gt;bbox&lt;/ows:identifier&gt;<br />      &lt;boundingboxvalue&gt;<br />          &lt;boundingbox&gt;<br />              &lt;lowercorner&gt;-1 -1&lt;/lowercorner&gt;<br />              &lt;uppercorner&gt;10 10&lt;/uppercorner&gt;<br />          &lt;/boundingbox&gt;<br />      &lt;/boundingboxvalue&gt;</p>
<p>       &lt;ows:identifier&gt;noth&lt;/ows:Identifier&gt;<br />&lt;literalvalue&gt;10&lt;/literalvalue&gt;<br />  &lt;input&gt;<br />      &lt;ows:identifier&gt;noth&lt;/ows:identifier&gt;<br />      &lt;literalvalue&gt;20&lt;/literalvalue&gt;</p>
<p>&lt;/datainputs&gt;<br />&lt;/execute&gt;<br />&#8216;</p></blockquote>
<p>แล้วตัวอย่างคำสั่ง ในการ request เช่น</p>
<p><span style="font-style: italic;">wget &#8211;post-file=request.txt &#8220;http://160.193.96.33/cgi-bin/wps.py&#8221; -O &#8211; -nv</p>
<p>หรือ</p>
<p>wget &#8211;post-file=GetObservation_ifgi_timeInstantRequest_After.xml &#8220;http://160.193.96.33:8080/52nSOSv2/sos&#8221; -O out.xml</p>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ninsawat.com/?feed=rss2&#038;p=20</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ติดตั้งและทดสอบ pyWPS</title>
		<link>http://www.ninsawat.com/?p=18&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e0%25b8%2595%25e0%25b8%25b4%25e0%25b8%2594%25e0%25b8%2595%25e0%25b8%25b1%25e0%25b9%2589%25e0%25b8%2587%25e0%25b9%2581%25e0%25b8%25a5%25e0%25b8%25b0%25e0%25b8%2597%25e0%25b8%2594%25e0%25b8%25aa%25e0%25b8%25ad%25e0%25b8%259a-pywps</link>
		<comments>http://www.ninsawat.com/?p=18#comments</comments>
		<pubDate>Tue, 24 Oct 2006 08:19:00 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[wps]]></category>

		<guid isPermaLink="false">http://www.ninsawat.com/?p=18</guid>
		<description><![CDATA[วันนี้บังเกิดไฟ อันแรงกล้าจากการดื่มและบ่นกับท่านปรมาจารย์ Honda มาเลยลุยสะเต็มที่ มาเริ่มติดตั้ง pyWPS กันเลยดีกว่า ก็สามารถ download src ได้จาก web site โดยตรงที่ pyWPS แล้วก็ทำติดตั้งโดยใช้คำสั่ง python setup.py install แต่หากต้องการชุด dev ให้ทำการลงโปรแกรม subversion สะก่อนแล้วใช้คำสั่ง svn checkout https://subversion.gdf-hannover.de:8080/svn/pywps/trunk ทั้งหมดน่าจะสำเร็จเสร็จสิ้นไปโดยไม่มีปัญหาไร เราก็จะมีไฟล์ที่ /var/www/cgi-bin/wps.py แ้ล้วก็ไฟล์อื่น จะเก็บไว้ใน directory ของ python /usr/lib/python2.4/site-packages/pywps/ โดยจะมี directory ย่อย ๆ อีก etc/, processes/ , Wps/ โดยที่ etc/ จะเป็น configuration file directory ที่เราต้องทำการปรับแก้ เรื่อง path ต่าง&#8230;]]></description>
				<content:encoded><![CDATA[<p>วันนี้บังเกิดไฟ อันแรงกล้าจากการดื่มและบ่นกับท่านปรมาจารย์ Honda มาเลยลุยสะเต็มที่</p>
<p>มาเริ่มติดตั้ง pyWPS กันเลยดีกว่า</p>
<p>ก็สามารถ download src ได้จาก web site โดยตรงที่ <a href="http://193.84.38.2/%7Ejachym/index.py?cat=pywps#download">pyWPS</a></p>
<p>แล้วก็ทำติดตั้งโดยใช้คำสั่ง</p>
<p><span style="font-style: italic;">python setup.py install</span></p>
<p>แต่หากต้องการชุด dev ให้ทำการลงโปรแกรม subversion สะก่อนแล้วใช้คำสั่ง</p>
<pre><span style="font-style: italic;font-size:130%;" >svn checkout https://subversion.gdf-hannover.de:8080/svn/pywps/trunk</span><br /><br /></pre>
<p>ทั้งหมดน่าจะสำเร็จเสร็จสิ้นไปโดยไม่มีปัญหาไร เราก็จะมีไฟล์ที่</p>
<p>/var/www/cgi-bin/wps.py</p>
<p>แ้ล้วก็ไฟล์อื่น จะเก็บไว้ใน directory ของ python</p>
<p>/usr/lib/python2.4/site-packages/pywps/</p>
<p>โดยจะมี directory ย่อย ๆ อีก etc/,  processes/ , Wps/</p>
<p>โดยที่ etc/ จะเป็น configuration file directory ที่เราต้องทำการปรับแก้ เรื่อง path ต่าง ๆ</p>
<p>ทั้ง grass.py และ settings.py</p>
<p><span style="font-style: italic;">มีข้อสำคัญหลายอย่างแต่ ยกตัวอย่างเช่น path มาให้ดูแล้วกันนะ<br /></span><br />&#8216;PATH&#8217;: &#8220;/usr/grass-6.0.2/bin/:/usr/grass-6.0.2/scripts/:/usr/bin/:/bin/:/usr/local/bin/:&#8221;,</p>
<p> # GISBASE is place, where your GRASS installation is<br /> # &#8216;GISBASE&#8217;: &#8220;/usr/lib/grass&#8221;,<br /> &#8216;GISBASE&#8217;: &#8220;/usr/grass-6.0.2&#8243;,</p>
<p> # LD_LIBRARY_PATH<br /> &#8216;LD_LIBRARY_PATH&#8217;:&#8221;/usr/lib&#8221;,<span style="font-style: italic;"></p>
<p></span>หากแก้แล้วยังไม่ได้สามารถลุยต่อได้ ต้องลอง complied มันดูสะ ก่อนนะด้วยคำสั่ง</p>
<p><span style="font-style: italic;">python setup.py install</span></p>
<p>จากนั้นก็คาดว่าน่าจะพร้อมลุย</p>
<p>มาทดสอบด้วยคำสั่ง Execute มันเลยแล้วกัน</p>
<p class="MsoNormal">wget -nv -q -O &#8211; &#8211;post-data=”service=wps&#038;version=0.4.0&amp;request=execute&#038;Identifier=spearpath&amp;Datainputs=x1,592846,y1,4915161,x2,607418,y2,4926300&#038;store=true&amp;status=true” &#8220;http://160.193.95.189/cgi-bin/wps.py?&#8221;</p>
<p> หรือ</p>
<p>http://160.193.95.189/cgi-bin/wps.py?service=wps&#038;version=0.4.0&amp;request=execute&#038;Identifier=spearpath&amp;Datainputs=x1,592846,y1,4915161,x2,607418,y2,4926300&#038;store=true&amp;status=true</p>
<p>ผลของดำเนินการนั้นน่าจะไปอยู่ที่ http://localhost/wpsoutputs/</p>
<p>หากดำเนินการต่าง ๆ แล้วยังไม่สามารถทำอะไรได้ ลองเข้าไปดู ใน error_log ของ Apache ดูเพราะจะมีการแจ้งอยู่ในนั้น</p>
<p>เช่น อาจจะมีการใ้ช้ fix path อยู่ใน process script ก็ไปทำการแก้ไข และ Compile ใหม่สะ</p>
<p>ผลความคืบหน้า เป็นอย่างไรจะแจ้งให้ทราบต่อไป</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ninsawat.com/?feed=rss2&#038;p=18</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
