Pyogrio ไม่สนับสนุนการเขียนหรือผนวกกับแหล่งข้อมูลที่มีอยู่อย่างที่ฟิโอน่าทำ มันใช้วิธีการที่ไม่มีสัญชาติและมุ่งเน้นจำนวนมากในการอ่านและการเขียนรูปแบบข้อมูลเวกเตอร์เชิงพื้นที่ซึ่งหมายความว่าข้อมูลทั้งหมดจะถูกอ่านหรือเขียนในการผ่านครั้งเดียว นี่ก็หมายความว่า Pyogrio ไม่อนุญาตให้เพิ่มระเบียนใหม่ไปยังแหล่งข้อมูลที่มีอยู่หรือต่อท้ายไฟล์โดยไม่ต้องเขียนไฟล์ทั้งหมดใหม่ ในทางตรงกันข้ามฟิโอน่ารองรับการเขียนหรือผนวกที่เพิ่มขึ้นทำให้มีความยืดหยุ่นและควบคุมการประมวลผลข้อมูลมากขึ้น
Pyogrio ได้รับการพัฒนาเป็นทางเลือกที่มีประสิทธิภาพสูงในการทดลองกับฟิโอน่าโดยกำหนดเป้าหมายการดำเนินงาน I/O ที่เร็วขึ้นโดยเฉพาะสำหรับ Geopandas Pyogrio ใช้วิธีการที่มุ่งเน้น numpy ภายในด้วย cython เพื่อจัดการข้อมูลเชิงพื้นที่การแยกรูปทรงเรขาคณิตเป็นวัตถุไบนารีที่รู้จักกันดีและแอตทริบิวต์ฟิลด์เป็นอาร์เรย์ Numpy ก่อนที่จะแปลงเป็น geopandas geodataframes GeoDataFrame ทั้งหมดถูกประมวลผลในหน่วยความจำและเขียนออกมาในการดำเนินการจำนวนมากซึ่งช่วยเพิ่มความเร็ว แต่จำกัดความยืดหยุ่นเช่นการเขียนที่เพิ่มขึ้น
ในทางกลับกันฟิโอน่าเป็นไลบรารี Python ที่มีคุณสมบัติครบถ้วนสำหรับการทำงานกับแหล่งข้อมูลเวกเตอร์ OGR มันใช้วิธีการที่เป็นสถานะที่ข้อมูลถูกอ่านหรือเขียนในหลาย ๆ ผ่าน สิ่งนี้ทำให้ฟิโอน่าปรับตัวได้มากขึ้นสำหรับกรณีการใช้งานที่หลากหลายรวมถึงการแปลงข้อมูลที่ซับซ้อนและการเขียนที่เพิ่มขึ้นหรือการดำเนินการต่อท้าย การออกแบบของฟิโอน่าอนุญาตให้เพิ่มคุณสมบัติใหม่ลงในไฟล์เชิงพื้นที่ที่มีอยู่หรือแก้ไขชุดข้อมูลโดยไม่ต้องประมวลผลทุกอย่างใหม่ ความสามารถในการจัดการการเขียนที่เพิ่มขึ้นนี้เป็นสิ่งสำคัญสำหรับเวิร์กโฟลว์ที่ต้องมีการอัปเดตไปยังชุดข้อมูลเชิงพื้นที่เมื่อเวลาผ่านไป
Pyogrio มุ่งเน้นไปที่การเข้าถึงการอ่าน/การเขียนที่เร็วขึ้นโดยหลีกเลี่ยงการแปลงหลายครั้งระหว่าง Python และประเภทข้อมูลดั้งเดิมที่ Fiona ดำเนินการ มันใช้ประโยชน์จากการเชื่อมโยงการผูกก่อนไปยังไลบรารี GDAL/OGR เพื่อให้การดำเนินการข้อมูลสำเร็จในลักษณะเวกเตอร์และจำนวนมาก การเปรียบเทียบประสิทธิภาพแสดงให้เห็นว่า Pyogrio สามารถเพิ่มความเร็วได้มากกว่า 5-20 ครั้งเมื่อเทียบกับฟิโอน่าเมื่ออ่านและเขียนไฟล์ทำให้เหมาะสำหรับการจัดการชุดข้อมูลขนาดใหญ่หรือการดำเนินงานที่ชื่นชอบปริมาณงานผ่านการแก้ไขที่เหมาะสม
การแลกเปลี่ยนที่สำคัญระหว่างสองห้องสมุดอยู่ในความยืดหยุ่นและความเร็ว ในขณะที่ฟิโอน่ารองรับการอัปเดตที่เพิ่มขึ้นรูปแบบไฟล์ที่หลากหลายและความสามารถในการควบคุมที่หลากหลาย แต่ก็ไม่ได้แสดงการประมวลผลความเร็วสูงเช่นเดียวกันสำหรับการดำเนินการข้อมูลจำนวนมากที่ Pyogrio มอบให้ ในทางกลับกันการประมวลผลแบบไร้สัญชาติของ Pyogrio ช่วยเพิ่มความเร็วอย่างมีนัยสำคัญ แต่ด้วยค่าใช้จ่ายของการไม่รองรับภาคผนวกที่เพิ่มขึ้นหรือการปรับเปลี่ยนชุดข้อมูลที่มีอยู่
นอกจากนี้ Pyogrio ไม่สนับสนุนการระบุ schema ในระหว่างการเขียนซึ่งแตกต่างจาก Fiona ซึ่งช่วยให้สามารถควบคุมรายละเอียดเกี่ยวกับประเภทแอตทริบิวต์และรูปทรงเรขาคณิตเมื่อเขียนข้อมูล Pyogrio ยังปฏิบัติต่อรูปทรงเรขาคณิตที่ว่างเปล่าอย่างชัดเจนโดยเขียนว่าว่างเปล่าแทนที่จะเป็นโมฆะในบางกรณีสะท้อนให้เห็นถึงการมุ่งเน้นไปที่การจัดการข้อมูลโดยตรงและมุ่งเน้นจำนวนมาก
โดยสรุป Pyogrio ไม่สามารถจัดการกับการเขียนหรือผนวกที่เพิ่มขึ้นเช่นฟิโอน่า มันอ่านและเขียนแหล่งข้อมูลเชิงพื้นที่ในการดำเนินการเดียวโดยไม่มีความสามารถในการอัปเดตไฟล์ที่มีอยู่บางส่วน ฟิโอน่ายังคงเป็นตัวเลือกที่ยืดหยุ่นมากขึ้นสำหรับเวิร์กโฟลว์ที่ต้องมีการปรับเปลี่ยนข้อมูลที่เพิ่มขึ้นในขณะที่ Pyogrio เก่งสำหรับการดำเนินงาน I/O ที่มีประสิทธิภาพสูงโดยเฉพาะอย่างยิ่งในเวิร์กโฟลว์ Geopandas-centric
ข้อมูลนี้รวบรวมจากเอกสารอย่างเป็นทางการคู่มือผู้ใช้และการอภิปรายนักพัฒนาเกี่ยวกับ Pyogrio และ Fiona โดยเน้นความแตกต่างทางสถาปัตยกรรมรูปแบบการใช้งานและคุณสมบัติที่รองรับที่เกี่ยวข้องกับการเขียนที่เพิ่มขึ้นและภาคผนวกข้อมูล