การแปลงไฟล์ ascii windspeed เป็น rasters


11

ฉันพยายามแปลงไฟล์ windspeed ไปเป็น rasters ไม่สำเร็จ มันถูกกล่าวถึงในฟอรัม Arcgis ที่ฉันติดตาม สิ่งนี้เกี่ยวข้องกับการแทนที่เซมิโคลอนด้วยช่องว่างและเพิ่มส่วนหัว

ฉันหวังว่าจะรวมหนึ่งในไฟล์. asasc ดั้งเดิมพร้อมกับ. csv เวอร์ชันที่ฉันล้างข้อมูล น่าเสียดายที่ฉันไม่สามารถเห็นวิธีการทำเช่นนี้ได้โดยไม่ต้องคัดลอกและวางข้อความ บรรทัดแรกของไฟล์. asasc ดั้งเดิมคือ:

Conversion of speed45i.dat   Wind m/s  Wind Speed @ 45m N. Ire 
(100,  499); 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 

ฉันเปลี่ยนสิ่งนี้เป็น:

ncols 700
nrows 1300
x||corner 0
y||corner 0
cellsize 1000                                                                                               "
"( 0 1299) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;"

เมื่อฉันใช้ปลั๊กอินแปลงรูปแบบแรสเตอร์แปลฉันได้รับข้อความแสดงข้อผิดพลาด:

กระบวนการเริ่มต้นล้มเหลว โปรแกรมที่เรียกใช้หายไปหรือคุณอาจมีสิทธิ์ไม่เพียงพอในการเรียกใช้โปรแกรม

ข้อเสนอแนะใด ๆ ที่ได้รับสุดซึ้ง


คุณสามารถลองวางตัวอย่างในDropBoxและแชร์ลิงก์ได้เสมอหากคุณต้องการความช่วยเหลือเฉพาะเพิ่มเติมกับชุดข้อมูลเฉพาะ
RyanKDalton

คำตอบ:


14

ฉันรู้ว่าข้อมูลเหล่านี้ดีมาก พวกเขาเป็นข้อมูลความเร็วลมของ NOABL ที่โด่งดังเล็กน้อย คุณยังอยู่ในเส้นทางที่ถูกต้องในการแปลงเป็น ASCII แบบแรสเตอร์ ส่วนหัวที่ฉันสร้างขึ้นสำหรับพวกเขา (หลายปีที่ผ่านมา) เป็นดังนี้:

ncols 700
nrows 1300
xllcorner 0
yllcorner 0
cellsize 1000
nodata_value -999
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

ดูเหมือนว่าคุณได้ใช้สัญลักษณ์ไปป์ ('|') แทน 'l' สำหรับ xll และ yll ในส่วนหัว (ซึ่งย่อมาจาก 'ซ้ายล่าง') ยังสูญเสียตัวเลขในวงเล็บที่จุดเริ่มต้นของแต่ละแถวและเครื่องหมายจุลภาคคว่ำด้วย เพียงแค่ทำให้มันคั่นด้วยช่องว่าง ตัวเลขในวงเล็บ (ตามที่ฉันแน่ใจว่าคุณทำไปแล้ว) แสดงพิกัดเริ่มต้น 100 กม. ของแถวข้อมูล (ซึ่งมีความละเอียด 1 กม. - ดังนั้นจึงมีค่าร้อยค่าหลังจากวงเล็บแต่ละชุด) ตัวเลขเหล่านี้ไม่เพียง แต่ซ้ำซ้อนในแรสเตอร์ ESRI ASCII เท่านั้น แต่จะ 'ทำลาย' มัน

ถ้ำ:
ใช้ข้อมูลเหล่านี้ด้วยความระมัดระวัง พวกมันมีอายุมากและถูกสอดแทรกจากสถานีอุตุนิยมวิทยาจำนวนหนึ่งซึ่งแพร่กระจายอย่างกว้างขวางทั่วสหราชอาณาจักร พวกเขายังถูกสอดแทรกโดยไม่คำนึงถึงความขรุขระของพื้นผิวและปัจจัยอื่น ๆ ส่วนใหญ่ที่มีอิทธิพลต่อความเร็วลมในระดับท้องถิ่น พวกเขาใช้ได้ดีในฐานะไกด์คร่าวๆ แต่มีชื่อเสียงในเรื่องการประเมินความเร็วลมในหลาย ๆ พื้นที่ ยกตัวอย่างเช่นฉันเป็นประจำพบว่า windspeed NOABL 45m มักจะเปรียบได้กับลมความเร็วที่วัดโดยเครื่องวัดความเร็วลมที่ระดับความสูงของ 80m แต่แล้วอีกครั้งตั้งแต่ NOABL ไม่ได้ใช้ข้อมูลใด ๆ จากทางตอนเหนือของเกาะฉันได้พบ NOABL จะละห้อยประมาท windspeeds ใน เช็ต ทางเหนือสุดของสถานีใด ๆ ที่พบไม่กี่แห่ง (เพียง 10 แห่งที่ฉันคิด!) ในข้อมูล NOABL คือ Wick

อย่างไรก็ตามคำเตือนทั้งหมดข้างๆฉันพบว่าเมื่อใช้อย่างชาญฉลาดทำความเข้าใจกับการประเมินค่าสูงเกินไป (และด้วยประสบการณ์ที่โรย) ฉันพบผลลัพธ์ของการคำนวณผลผลิตฟาร์มกังหันลมโดยใช้ข้อมูลเหล่านี้เพื่อเปรียบเทียบกับการคำนวณที่ทันสมัย ข้อมูลที่เก็บรวบรวมอย่างเข้มงวด อย่างไรก็ตามอย่านำข่าวประเสริฐมาใช้เพราะทุกไซต์มีความแตกต่างกันและความเร็วลมที่เกิดขึ้นจริงนั้นได้รับผลกระทบอย่างมากจากความหยาบกร้านการเปิดกว้างภูมิประเทศเพื่อตั้งชื่อปัจจัยบางประการ

หากกังหันลมมีความสำคัญต่อโครงการของคุณโดยทั้งหมดให้ใช้สิ่งนี้เป็นจุดเริ่มต้น แต่อย่าวางเดิมพันฟาร์ม!

แก้ไข
เมื่อต้องการลบตัวเลขในวงเล็บคุณสามารถเขียนสคริปต์ Python เพื่อแยกวิเคราะห์ข้อมูลหรือวิธีที่ง่ายคือ:

  • เปิดไฟล์ในโปรแกรมแก้ไขข้อความลบบรรทัดแรก (" การแปลงความเร็ว ... ") แทนที่ช่องว่างทั้งหมดโดยไม่ใช้อะไรเลยและบันทึกอีกครั้งด้วยนามสกุล '.csv'
  • ถัดไปเปิดในแพคเกจสเปรดชีตการตั้งค่าตัวคั่นเป็นเครื่องหมายอัฒภาค (ใน Excel และ OpenOffice Calc คุณจะถูกถามเมื่อคุณเปิดไฟล์) ตอนนี้เลือกคอลัมน์แรกที่มีหมายเลขวงเล็บทั้งหมดแล้วลบออก
  • แทรกหกแถวที่จุดเริ่มต้นและเพิ่มส่วนหัวของคุณ ("ncols 700" ฯลฯ )
  • ในที่สุดให้บันทึกด้วยส่วนขยาย '.asc' แต่ให้แน่ใจว่าตัวคั่นของคุณมีพื้นที่ในการบันทึก

ซิลเวสเตอร์ขอบคุณมาก มีปัญหาในการลบตัวเลขในวงเล็บ ควรแสดงสองสามบรรทัดแรกดังต่อไปนี้หรือไม่ nrows 1300 xllcorner 0 yllcorner 0 Cellize 1,000 nodata_value -999 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.07

@tedwalsh: มันสวยมาก ฉันแก้ไขคำตอบของฉันด้านบนเพื่อเพิ่มบรรทัดแรกส่วนใหญ่ในตัวอย่าง 'code' ฉันยังเพิ่มคำแนะนำในการลบวงเล็บออกด้วยวิธีที่ง่าย หากคุณยังคงมีปัญหาอยู่โปรดส่ง PM พร้อมที่อยู่อีเมลของคุณ (ค้นหาส่วนที่ติดต่อของเว็บไซต์ของฉัน) และฉันจะคัดแยกบางอย่างให้คุณ
MappaGnosis

1
ชุดข้อมูล NOABL ค่อนข้างเรียบร้อยสำหรับช่วงเวลานั้น แต่เวลานั้นเกือบ 20 ปีที่แล้ว ฉันจำได้ว่าเคยทำงานกับมันด้วยเช่นกัน ที่ดีที่สุดไม่ได้ใช้สำหรับการทำงานจริงที่ความสูงกังหันลมทั่วไปในขณะนี้
scruss

11

ค่า NoData หายไปในไฟล์ ascii ของคุณและคุณมี x || และ y || แทน xll และ yll ฉันสมมติว่า NoData ของคุณคือ -999

ลองนี้:

NCOLS 700
NROWS 1300
XLLCORNER 0
YLLCORNER 0
CELLSIZE 1000
NODATA_VALUE -999

ascii ที่คุณเปิดในโปรแกรมแก้ไขข้อความควรมีลักษณะดังนี้:

NCOLS 700
NROWS 1300
XLLCORNER 0
YLLCORNER 0
CELLSIZE 1000
NODATA_VALUE -999
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

2
ในแง่ของการจัดรูปแบบสิ่งนี้ดูถูกต้อง แต่ฉันคิดว่ามันอาจเป็นความผิดพลาดที่สำคัญในการทำให้ศูนย์เป็นศูนย์ด้วยค่า NoData จำเป็นต้องมีศูนย์เพื่อระบุความเร็วลมเป็นศูนย์ในขณะที่ค่า NoData จะระบุว่าไม่มีข้อมูลเกี่ยวกับความเร็วลม
whuber

ฉันสมมติว่า NoData เป็น 0 เนื่องจาก @tedwalsh ไม่ได้ให้ข้อมูลนี้
Gago-Silva
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.