أكثر

ضم مجموعتي بيانات بناءً على القيم المطابقة في حقول متعددة

ضم مجموعتي بيانات بناءً على القيم المطابقة في حقول متعددة


أحاول إيجاد طريقة لضم بيانات CSV إلى طبقة متجه فقط عندما يتشارك كلاهما القيم المطابقة في مضاعف الحقول ، بدلاً من مجال واحد فقط.

هذه مشكلة أواجهها مع العديد من المشاريع ، لكنني سأصف واحدًا هنا كمثال:

البيانات التي أعمل بها هي كما يلي:

  • طبقة شكل تحتوي على قائمة بجميع البلدات / المدن الأمريكية التي يزيد عدد سكانها عن 10000.
  • 49 ملفًا بتنسيق CSV (واحد لكل ولاية من الولايات الـ 48 الأدنى + 1 للعاصمة) من مكتب إحصاءات العدل (BJS) ، والتي تحتوي على بيانات حول معدلات الجرائم العنيفة حسب المدينة.

أحاول ضم البيانات من ملفات BJS .csv إلى طبقة "المدن والمدن الأمريكية" بحيث تحتوي كل ميزة بلدة / مدينة على بيانات عن جرائم العنف في تلك المدينة.

تكمن المشكلة في أن واجهة "الانضمام" ستسمح لي فقط بتحديد حقل واحد للانضمام إليه. على سبيل المثال ، عند الانتقال إلى "US Towns & Cities" -> Properties -> Joins وانقر فوق "+" لإنشاء صلة جديدة ، فهذا ما لدي (اعتبارًا من الإصدار 2.12 من QGIS):

لذلك أقوم هنا بضم بيانات BJS الخاصة بجورجيا إلى طبقة "المدن والمدن الأمريكية" حسب اسم المدينة ... افترض الآن أنني فعلت الشيء نفسه لبيانات BJS Florida.

الآن ، هناك عدة طرق يتسبب فيها ذلك في حدوث مشكلات. المشكلة الأكثر أهمية هي وجود تضارب في الأسماء لمدن في ولايات مختلفة. على سبيل المثال ، تحتوي طبقة خريطة "المدن والبلدات الأمريكية" على 8 مدن تسمى "Gainesville" ، وجميعها تحتوي الآن على بيانات BJS لكل من Gainesville ، و Georgia و Gainesville ، Florida المرتبطة بها:

أحتاج فقط للانضمام إلى بيانات الجريمة لمدينة عندما على حد سواء يتطابق اسم المدينة واسم الولاية بحيث ترتبط بيانات Gainesville ، فلوريدا فقط بـ Gainesville ، فلوريدا وليس Gainesville ، Georgia ... كيف أفعل ذلك؟

أيضًا ، هناك مشكلة أخرى ناجمة عن النهج أعلاه ، والتي لا تؤدي بالضرورة إلى نتائج غير صحيحة ، ولكنها تبدو "خاطئة" وهي أن كل مدينة تحتوي الآن على ما يقرب من 1000 حقل NULL (حوالي 20 حقلًا لكل ملف من ملفات CSV البالغ عددها 49) ... أشعر أنه يجب أن يكون هناك طريقة أفضل للقيام بذلك.


تتمثل إحدى الطرق في ربط عمودي المعرف بحقل افتراضي جديد باستخدام حاسبة الحقل لكل جدول. ثم انضم إلى الحقول الافتراضية.

أنا شخصياً سأذهب إلى حل db بدلاً من ذلك مثل Spatialite أو PostGIS حيث يكون لديك المزيد من التحكم في الصلة.


شاهد الفيديو: Consolidation. دمج و تجميع البيانات الموجوده فى اكثر من شيت فى الاكسل