คำถามติดแท็ก memory

3
ที่อยู่หน่วยความจำรั่วใน IFeatureClass.Search (เฉพาะ SDE ที่มีการเชื่อมต่อโดยตรง) ของ ArcObjects?
ฝ่ายสนับสนุนของ ESRI กล่าวว่าพวกเขาทำซ้ำปัญหาและได้เปิดรายงานข้อผิดพลาด (NIM070156) ผมตั้งใจว่าจะมีการรั่วไหลของหน่วยความจำ (ในความทรงจำที่ไม่มีการจัดการกอง) ที่เกิดขึ้นเมื่อเครื่องมือในของฉัน .NET / C # ArcMap เพิ่มในการดำเนินการสอบถามเชิงพื้นที่ (ส่งคืนICursorจากIFeatureClass.Searchที่มีISpatialFilterตัวกรองแบบสอบถาม) วัตถุ COM ทั้งหมดจะได้รับการปล่อยตัวโดยเร็วที่สุดเท่าที่พวกเขาจะไม่จำเป็น (ใช้Marshal.FinalReleaseCOMObject) เมื่อต้องการตรวจสอบสิ่งนี้ฉันจะตั้งค่าเซสชัน PerfMon ด้วยตัวนับสำหรับ Private Bytes, Virtual Bytes และ Working Set ของ ArcMap.exe และตั้งข้อสังเกตว่าทั้งสามเพิ่มขึ้นอย่างต่อเนื่อง (โดยประมาณ 500KB ต่อการทำซ้ำ) ด้วยการใช้เครื่องมือแต่ละครั้ง . สิ่งสำคัญนี้จะเกิดขึ้นเฉพาะเมื่อดำเนินการกับคลาสคุณลักษณะบน SDE โดยใช้การเชื่อมต่อโดยตรง (หน่วยเก็บข้อมูล ST_Geometry, ไคลเอ็นต์ Oracle 11g และเซิร์ฟเวอร์) ตัวนับยังคงคงที่เมื่อใช้ Geodatabase ของไฟล์เช่นเดียวกับเมื่อเชื่อมต่อกับอินสแตนซ์ SDE รุ่นเก่าที่ใช้การเชื่อมต่อแอปพลิเคชัน …

1
Python เพิ่มขนาดไฟล์ของ. mdd ของฉัน
ฉันมีสคริปต์การประมวลผลทางภูมิศาสตร์ที่ทำงานต่อไปนี้ .. arcpy.AddMessage("TEST...") ใช่เพียงหนึ่งบรรทัดของรหัส .mxd ว่างเปล่าเริ่มต้นที่ 391kb สำหรับฉันเมื่อฉันเรียกใช้สคริปต์และบันทึกขนาดไฟล์ที่เพิ่มขึ้น 391 kb 431 kb 451 kb 471 kb and so on... สคริปต์ python สำหรับกระบวนการทางภูมิศาสตร์ดูเหมือนว่าจะเพิ่มขนาดไฟล์โดย 20-30 kb ในแต่ละครั้ง ฉันใช้การทดสอบนี้กับสคริปต์จริงที่ทำบางสิ่งบางอย่างและเพิ่มขนาดไฟล์ 40-60 kb ... ฉันยังใช้งานสคริปต์เปล่าที่ไม่ทำอะไรเลยนอกจากมันจะรันและยังเพิ่มขนาดไฟล์ได้ถึง 20-30kb ... จากสิ่งที่ฉันสามารถหาESRI Tech การเพิ่มขนาดไฟล์อาจเกิดจากผลลัพธ์ทางภูมิศาสตร์จำนวนมากที่เก็บไว้ในแท็บผลลัพธ์ใน ArcToolbox ใน ArcCatalog ทำตามขั้นตอนในบทความฉันสามารถลดขนาดไฟล์จาก 589 kb เป็น 293 kb โดยบันทึกเป็น. mxd ใหม่ ความคิดประสบการณ์กับสิ่งนี้ของคุณ? มีใครพบวิธีที่จะลบแท็บผลลัพธ์โดยอัตโนมัติจากสคริปต์ไพ ธ …
14 python  arcmap  memory 

1
ทำไมช่อง @ data @ values ​​สำหรับ RasterLayer มีเพียงลอจิคัล (0) และไม่ใช่ค่าจริง
พยายามไปถึงจุดต่ำสุดของเหตุผลเมื่อฉันอ่านในแรสเตอร์ของ NDVI ช่อง @ data @ values ​​ไม่ได้มีค่าจริงจนกว่าฉันจะตั้งค่าด้วยตนเอง ตัวอย่างเช่น: NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84") NDVI@data@values ## returns: logical(0) สิ่งนี้ไม่ได้เกิดขึ้นกับแรสเตอร์อื่น ๆ ที่ฉันโหลดด้วยวิธีเดียวกันดังนั้นฉันจึงสับสน ฉันหวังว่าฉันจะเฉพาะเจาะจงมากขึ้น แต่ฉันจำไม่ได้ว่าทำอะไรที่แตกต่างมาก่อน ง่ายพอที่จะรับค่าด้วยตนเองโดยใช้: NDVI1@data@values <- getValues(NDVI19east) แต่มันก็เป็นความเจ็บปวดที่ต้องทำสำหรับไฟล์ทุกไฟล์ ดังนั้นคำถามสองส่วน: ทำไมสิ่งนี้ถึงเกิดขึ้นตั้งแต่แรก? ฉันเข้าใจว่าอาจมีบางอย่างเกี่ยวกับวิธีการจัดเก็บไฟล์แรสเตอร์ (เช่นไม่ว่าจะอยู่ในหน่วยความจำหรือไม่ก็ตาม) แต่ฉันไม่เข้าใจจริง ๆ ว่าการเปลี่ยนแปลงวิธีการที่ฉันควรใช้ในการเข้าถึงข้อมูล ... มีวิธีทำให้กระบวนการนี้เป็นอัตโนมัติ (อาจใช้วิธีที่คล้ายกับ lapply) เพื่ออ่านไฟล์ในรูปแบบ RasterLayers และเข้าถึงค่าสำหรับไฟล์เหล่านั้นหรือไม่? โครงการปัจจุบันของฉันเกี่ยวข้องกับการอ่านครั้งละ 6-10 ไฟล์สำหรับ NDVI, ปริมาณน้ำฝนและตัวแปรสภาพแวดล้อมอื่น ๆ เพื่อรวมเข้าด้วยกันและทำงานซ้อนทับแบบถ่วงน้ำหนัก มันจะเป็นประโยชน์ในการทำให้กระบวนการนำเข้าข้อมูลเป็นไปโดยอัตโนมัติ
12 raster  r  memory 

3
วิธีการโหลดเอาท์พุทหน่วยความจำจากการประมวลผล QGIS?
อัลกอริทึมการประมวลผลจำนวนมากมีตัวเลือกในการบันทึกผลลัพธ์เป็นหน่วยความจำ หากวิ่งจากกล่องเครื่องมือสิ่งนี้จะใช้ได้เพราะคุณสามารถทำเครื่องหมายในช่อง "เปิดไฟล์เอาต์พุตหลังจากเรียกใช้อัลกอริทึม" มองไปที่ซอร์สโค้ดสำหรับ QGIS Postprocessing.handleAlgorithmResultsรหัสสำหรับการโหลดชั้นหน่วยความจำที่ดูเหมือนว่าจะมีการกำหนดไว้ในการทำงาน ฟังก์ชันใช้การเข้าถึงalg.outputsรายการและทำสิ่งต่อไปนี้: for out in alg.outputs: progress.setPercentage(100 * i / float(len(alg.outputs))) if out.hidden or not out.open: continue if isinstance(out, (OutputRaster, OutputVector, OutputTable)): try: if out.value.startswith('memory:'): layer = out.memoryLayer # NOTE!! QgsMapLayerRegistry.instance().addMapLayers([layer]) # NOTE!! else: # ... เมื่อคุณเรียกใช้อัลกอริทึมการประมวลผลจากคอนโซลมีวิธีโหลดเลเยอร์โดยไม่ต้องเข้าถึงวัตถุนี้หรือไม่? ฉันวิ่งได้ processing.runalg("qgis:intersection", layer1, layer2, "memory:") หรือแม้กระทั่ง processing.runalg("qgis:intersection", layer1, …

1
จำกัด หน่วยความจำที่แพ็คเกจ raster ใช้ใน R
วิธีที่ง่ายที่สุดในการ จำกัด หน่วยความจำที่rasterแพ็คเกจใช้ในRRAM 5GB คืออะไร เป็นการดีที่ฉันต้องการแรสเตอร์ใด ๆ ที่มีขนาดใหญ่กว่านี้เพื่อเขียนลงในฮาร์ดไดรฟ์และวิเคราะห์จากไฟล์ชั่วคราว ฉันใช้ Windows 7 (64Bit) และรุ่น R 3.0.3 นี่คือรหัสบางส่วนที่ฉันเล่นด้วยบนเครื่องที่มี RAM ขนาด 16GB แต่มันก็ยังขยายออกไปเรื่อย ๆ เมื่อฉันจัดการกับ rasters ขนาดใหญ่: require(raster) memory.limit(size = 5000) rasterOptions(format="GTiff",overwrite=TRUE,datatype="INT1S", tmpdir="C:/Research/BIN",tmptime=1.1,progress="text",chunksize=1000, maxmemory=1000) rasterTmpFile("delete_me_") r <- raster("myraster.tif") r[r==0] <- NA มันอยู่ในขั้นตอนนี้ในสคริปต์ที่การใช้ RAM เพิ่มขึ้นเพื่อให้ 16GB ทั้งหมดแล้วหยุดทำงานและยกเลิกฟังก์ชั่น ฉันต้องเปลี่ยนอะไรที่นี่
10 raster  r  memory 

1
การใช้เลเยอร์เวกเตอร์ในหน่วยความจำพร้อมการประมวลผล QGIS / SEXTANTE
ฉันพยายามเรียกใช้qgis:clipอัลกอริทึมจากคอนโซล แต่ได้รับข้อผิดพลาดเมื่อใช้เลเยอร์ในหน่วยความจำเป็นพารามิเตอร์โอเวอร์เลย์ คาดว่าจะเป็นเช่นนี้หรือฉันกำลังทำอะไรผิดหรือเปล่า? รหัส: mem_layer = QgsVectorLayer("Polygon?crs=epsg:4326", "temp_layer", "memory") if not mem_layer.isValid(): raise Exception("Failed to create memory layer") mem_layer_provider = mem_layer.dataProvider() clip_polygon = QgsFeature() clip_polygon.setGeometry(QgsGeometry.fromRect( QgsRectangle( self.output_layer.extent().xMinimum() + 10, self.output_layer.extent().yMinimum() + 10, self.output_layer.extent().xMaximum() - 10, self.output_layer.extent().yMaximum() - 10 ) )) mem_layer_provider.addFeatures([clip_polygon]) mem_layer.updateExtents() output = self.output_layer_path + "2" processing.runalg("qgis:clip", layer, mem_layer, …

1
วิธีเพิ่มขีด จำกัด การใช้หน่วยความจำสูงสุดสำหรับการเรียกใช้ Arc 10.1?
ไม่แน่ใจว่านี่เกี่ยวข้องกับ GIS อย่างเคร่งครัดหรืออาจเป็นของ StackOverflow ... มันเกี่ยวกับ ESRI ArcGIS 10.1 ดังนั้นฉันจึงติดที่นี่ ฉันกำลังมองหาตัวเลือกเพื่อเพิ่มความสามารถในการประมวลผลและฉันได้อ่านบิตและชิ้นส่วนที่ไม่ช่วยเหลือเกี่ยวกับการเพิ่มขีด จำกัด การใช้หน่วยความจำสำหรับ ArcGIS ฉันกำลังทำงานกับ ESRI ArcGIS 10.1 (ใบอนุญาตทั้งหมด) ใน Windows 7 แบบ 32 บิต, 3.33GHz Intel DuoCore, คอมพิวเตอร์ 4GB RAM ในที่สุดฉันจะอัปเกรดเป็นคอมพิวเตอร์ 64 บิตที่มีประสิทธิภาพยิ่งขึ้นด้วย 8GB Ram และต้องการทราบว่าต้องทำอะไรในระหว่างนี้หรือเมื่อเครื่องใหม่เข้ามา ขอบคุณ!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.