أكثر

كيف تحصل على أكبر نقطة واحدة فقط في المضلع؟


لدي فئات ميزة المضلع والنقطة. يحتوي كل مضلع على نقطتين بداخله. بالنسبة للإخراج ، أحتاج فقط إلى نقطة واحدة ذات أعلى قيمة. أحتاج إلى دمج هذه الخطوة في ModelBuilder. كانت لدي فكرة عن المكرر ، لكنني لست متأكدًا من ذلك لأنه قد يواجه مشكلات مع فئات الميزات الأكبر والأجهزة القديمة. لذلك أنا أبحث عن طريقة للتغلب عليها.


عادة ما أتعامل مع مثل هذه المواقف باستخدام بضع خطوات. تتمثل العملية العامة في تحديد القيمة القصوى في كل مضلع ثم تحديد النقاط التي لها هذه القيمة بالفعل:

  • قم أولاً بربط معرف فريد من المضلعات إلى النقاط (باستخدام التقاطع والربط المكاني ، إلخ ...). هذا لا يجب أن يكون OBJECTID ، لكن يمكن أن يكون كذلك.
  • ثم قم بتشغيل إحصائيات موجزة عن ناتج ذلك. استخدم المعرف الفريد الذي انضممت إليه للتو كحقل الحالة ، وحقل القيمة الذي تهتم به كحقل إحصائي والحد الأقصى للحساب.

سينتج عن ذلك قائمة بالمضلعات والقيمة القصوى للنقاط المحتواة.

  • في كل من الناتج من إحصائيات الملخص والنقاط المتقاطعة / المتصلة ، قم بإنشاء حقل "مفتاح" جديد من خلال ربط المعرف الفريد للمضلع وقيمة النقطة (القصوى). عادةً ما أقوم بإعداد هذا كحقل نصي وحسابه على النحو التالي (مع نوع تعبير PYTHON_9.3) *:

    • للنقاط ذات المعرفات المضلعة:! بوليجونيد! + '-' +! POINTVALUE!
    • لإخراج ملخص الإحصائيات:! بوليجونيد! + '-' +! MAX_POINTVALUE!
  • الآن ، يمكنك ضم جدول إحصائيات الملخص مرة أخرى إلى طبقة النقاط باستخدام هذا المفتاح الجديد باستخدام Join Field أو بمجرد إنشاء صلة.

الميزات التي تحصل على سجل مرتبط بها هي القيمة القصوى في كل مضلع ويمكن تجاهل الباقي. يجب أن يعمل هذا إذا كان لديك ميزات متعددة ذات قيمة قصوى ، ولكن في هذه الحالة سيتم ضمها جميعًا ولا يمكن تحديد 1 فقط (نظرًا لأنها جميعها الحد الأقصى من الناحية الفنية).

*: شيء واحد يجب الانتباه إليه عند حساب المفتاح هو ما إذا كانت القيمة أو معرف المضلع عبارة عن قيمة فاصلة عائمة ، فقد تحتاج إلى تحديد تنسيق عند التحويل إلى سلسلة (على سبيل المثال.تنسيق "{0: .0f} - {1: .0f}". (! POLYGONID!،! POINTVALUE!)في حين أن.


كيف يمكنني تغيير النقاط الخارجية فقط لهذه السحابة النقطية إلى قيمة مختلفة؟

لدي سحابة نقطية ثلاثية الأبعاد مع إحداثيات XYZ قادمة من العقد الموجودة على شبكة FEA. تحتوي كل عقدة أيضًا على قيمة رابعة ، والتي يتم استخدامها في هذا المثال لإعطائها لونًا. هذه صورة للنقاط المرسومة في matplotlib:

يسهل رؤية الشكل الفعلي عندما أقوم باستيراد سحابة النقاط إلى برنامج FEA:

يشير اللون الأزرق إلى قيمة أقل ، بينما يشير اللون الأحمر إلى قيمة أعلى. مشكلتي هي أنني أريد تغيير قيم لون السطح الخارجي فقط بحيث تكون أعلى وليست زرقاء. من الناحية المثالية ، أود الحصول على أعلى قيمة لونية للنقاط المحيطة بها ، ولكن إذا تمكنت فقط من تحديد النقاط الخارجية (ولكن ليس السطح العلوي والسطح السفلي) ، فسيكون ذلك أكثر من كافٍ ويمكنني الانتقال من هناك . يجب أن تبدو النتيجة النهائية تقريبًا كما يلي:

لقد حاولت البحث في الإحداثيات المحيطة بكل نقطة وإذا كان هناك تنسيق لا يحتوي على نقطة ، فسأفترض أنه هواء ، وبالتالي نظرًا لأن النقطة ملامسة للهواء فهي نقطة سطحية. لم ينجح هذا لأن النقاط متباعدة بشكل غير منتظم ولذا سأحصل على إيجابيات خاطئة لنقاط السطح في مركز سحابة النقاط.

حاولت استخدام شكل ألفا ، وإنشاء مضلع من النقاط الخارجية لشريحة ثنائية الأبعاد ، ثم عثرت على رؤوس هذا المضلع. سأقوم بعد ذلك بإنشاء دوائر عند تلك النقاط وإذا كانت هناك نقطة في تلك الدائرة ، فإنها تعتبر نقطة سطح. ثم كررت هذه العملية من خلال كل طبقة z. لن ينجح هذا لأنه طويل جدًا للتشغيل وسيظل يفقد أجزاء كبيرة من السطح ويملأ بالكامل المنظر السفلي باللون الأحمر.

لقد قمت بنشر الحد الأدنى من الأمثلة القابلة للتكرار ورابطًا للملف النصي بقيم XYZC. شكرا لك على أي مساعدة يمكن أن تعطيني.


5 إجابات 5

أقترح استخدام matplotlib يحتوي على نقاط ()

بناءً على إجابة RemcoGerlich ، إليك وظيفة تم التحقق من صحتها:

أعتقد أن رسم المضلع وملئه يعد بداية جيدة ، وستحتاج إلى شيء من هذا القبيل على أي حال وعادة ما يتم ضبط هذه الخوارزميات بدقة في C. ولكن لا تستخدم صورة RGB ، استخدم صورة بالأبيض والأسود ، و استخدم numpy.where () للعثور على وحدات البكسل حيث تكون 1.

وفقًا لهذا السؤال ، تحتوي مكتبة mahotas على وظيفة fill_polygon التي تعمل مع مصفوفات numpy.

سأبدأ الكود التالي من وظيفتك (سأطرح minx و maxx أيضًا) لكن لاحظ أنه لا يمكنني اختباره على الإطلاق ، فأنا لست على جهاز التطوير الخاص بي.

يمكنك استخدام مصفوفة numpy مثل صورة ثنائية ، والتي يمكن استخدامها مع Opencv على سبيل المثال أو غيرها من libs معالجة الصور ، الحل 1 إذن ، مصفوفة حجمها L x H حيث

كإدخال لدينا قائمة tuple (x ، y) التي ذكرتها أعلاه والتي هي الاسم بولي على سبيل المثال :

إذن لدينا الآن مصفوفة بالحجم L x H ممتلئة بـ 0 ، نضع الآن 1 في مواضع نقاط المضلع

أعتقد أنه يمكنك فعل ذلك ببساطة

نفسر هذا على أنه صورة ثنائية (سوداء / بيضاء) لها محيط مرسوم عليها افترض أننا نريد اكتشاف هذا المحيط الجديد

ملحوظة : بولي 2 يحتوي على قائمة من نقاط المضلع الخاص بك وجميع النقاط التي تشكله ، أعني كل نقاط كل رؤوس المضلع الخاص بك وهو ما تحتاجه تجده مفيدًا !! يمكنك استخدام cv2.CHAIN_APPROX_SIMPLE المعلمة للحصول على poly2 تحتوي فقط على نقاط النهاية لخطوط المضلع الأخف والتي كانت مدخلاتنا :) مهم : نوع poly2 عبارة عن مصفوفة عددية ، وشكلها هو (n ، 1،2) وليس (n ، 2)

الآن نرسم هذا الكفاف على هذه الصورة (المصفوفة) وسنملأها أيضًا :)

الآن لدينا مصفوفة حيث توجد 1 في كل نقطة تشكل ويملأ المضلع ، أجبرت "سماكة = -1" على ملء هذا المحيط ، يمكنك وضع سماكة محددة = 1 للحصول على الحدود فقط إذا كنت تريد الترجمة ، يمكنك القيام بذلك عن طريق إضافة معلمة الإزاحة (xtran ، ytrans)

للحصول على مؤشرات جميع أطروحات النقاط ببساطة اتصل

والأكثر ذكاءً هو تحويل قائمة النقاط (بولي) مباشرةً إلى تنسيق محيطي (بولي 2) ورسمها على المصفوفة

وارسمها على مصفوفة المصفوفة

واحصل على قائمة هذه النقاط مع:

العب مع سماكة لملء المضلع أم لا ، انظر الحل 1 لمزيد من التفاصيل.


من خلال النظر إلى مستندات PIL ImageDraw ، يبدو أن المضلعات يشار إليها عادةً بقائمة (x ، y). ما عليك القيام به هو العثور على حدود المضلع الخاص بك وتحديد منطقة الاهتمام حول تلك الحدود في الصورة الأصلية والقناع. ثم يمكنك ببساطة إنشاء مصفوفة بحجم منطقتك ، وإدراج الصورة / القناع من تلك الحدود التي تم العثور عليها.

المضلع لا يمتد أبدًا ماضي النقاط التي تحددها ، لذا فإن العثور على قيم الحد الأدنى والحد الأقصى (س ، ص) سيحدد المنطقة التي تهمك. أعتقد أن ما يلي يجب أن يعمل من أجلك ، مع وضع ما ورد أعلاه في الاعتبار ، فإن الشفرة تشرح نفسها بنفسها.


2 إجابات 2

هذه إجابة متأخرة بشكل لا يصدق ، لكن ربما يمكنني إلقاء بعض الضوء على حل. رقم "التعيين" الذي تشير إليه هو معرف الإسناد المكاني أو SRID. بالنسبة لحسابات الطول / العرض ، يجب أن تضع في اعتبارك تعيين هذا على 4326 ، مما يضمن استخدام العدادات كوحدة قياس. يجب عليك أيضًا التفكير في التبديل إلى SqlGeography بدلاً من SqlGeometry ، لكننا سنواصل SqlGeometry في الوقت الحالي. لتعيين SRID بشكل مجمّع ، يمكنك تحديث جدولك على النحو التالي:

لنصف قطر واحد ، تحتاج إلى إنشاء نصف قطر ككائن مكاني. على سبيل المثال:

يأخذ STBuffer () النقطة المكانية وينشئ دائرة (الآن نوع مضلع) منها. يمكنك بعد ذلك الاستعلام عن مجموعة البيانات الخاصة بك على النحو التالي:

سيستخدم ما سبق الآن أي فهرس مكاني قمت بإنشائه على [SpatialColumn] في خطة الاستعلام الخاصة به.

هناك أيضًا خيار أبسط يعمل (ولا يزال يستخدم الفهرس المكاني). تتيح لك طريقة STDistance القيام بما يلي:

أخيرًا ، العمل مع مجموعة من أنصاف الأقطار. لديك بعض الخيارات. الأول هو تشغيل ما سبق لكل نصف قطر بدوره ، لكنني سأعتبر ما يلي للقيام بذلك كواحد:

لم يتم اختبار النسخة النهائية أعلاه ، لكنني متأكد بنسبة 99٪ من أنها موجودة مع احتمال حدوث قدر ضئيل من التغيير والتبديل. المثالية لأخذ الحد الأدنى لمسافة نصف القطر في التحديد هو أنه إذا كان نصف القطر المتعدد ينبع من موقع واحد ، إذا كانت نقطة داخل نصف القطر الأول ، فستكون بطبيعة الحال داخل جميع الأقطار الأخرى. لذلك ستقوم بتكرار السجل ، ولكن من خلال التجميع ثم تحديد الحد الأدنى ، ستحصل على واحد فقط (والأقرب).

آمل أن يساعدك ، وإن كان ذلك بعد 4 أسابيع من طرح السؤال. عذرًا ، لم أره قريبًا ، إذا كان هناك علامة مكانية واحدة فقط للأسئلة.


تخصيص لوحة

    لوح انقر على زر Palette Workshop. هذا رمز على شريط القائمة يعرض خطوط ملونة قطرية. تظهر نافذة تعرض 15 مربعًا أسود وبعض أزرار الاختيار.

انقر فوق المربع الأسود المرقّم & quot0 & quot ثم انتقل لأسفل إلى الزر الوامض بالقرب من الكلمة & quotRed. & quot اسحب هذا الزر إلى اليمين قليلاً حتى تزيد القيمة الحمراء إلى حوالي 100. الآن انتقل إلى أزرار الأخضر والأزرق واسحب منهم إلى حوالي 225 و 255 على التوالي. يجب أن يتغير لون المربع رقم 0 إلى اللون الأزرق والأخضر الباهت. هذا هو اللون الذي ستستخدمه للإشارة إلى البحر على خرائطك ، لذا اضبطه كما يحلو لك.

بعد ذلك ، انقر فوق المربع الأسود المرقّم & quot1 & quot وجعله بلون مناسب للأرض المنخفضة بالقرب من الشاطئ. أنا أفضل تان شاحب.

بجانب الصناديق السوداء يوجد رأسا سهام يشيران لأعلى ولأسفل. انقر فوق السهم لأسفل وقم بتغيير أرقام المربعات السوداء حتى تصل إلى الرقم 255. باستخدام أزرار الألوان ، قم بتغيير المربع رقم 255 إلى أخضر غابة عميق. هذا هو اللون الذي سيتم رسمه على الجزء العلوي من Morne Diablotin.

انتقل الآن إلى المنطقة الموجودة في هذه النافذة والتي تسمى & quotpalette blend function. & quot اضبط المرساة السفلية عند 1 والمثبت العلوي عند 255 وانقر فوق الزر Blend. فجأة تحصل جميع الصناديق التي كانت سوداء اللون على ألوان جديدة عبارة عن تحريفات خطية للونين الأساسيين.

  • لا تجلب اللوحة الجديدة المشهد إلى بؤرة حادة. إنه يمتزج تدريجيًا من البحر إلى قمة الجبل بحيث لا تحصل إلا على انطباع غامض عن شكل التلال.
  • هناك منطقة بالقرب من الجزء العلوي من Morne Diablotin وهي خاطئة تمامًا. نافذة حول العمود 1000 ، الصف 1250 لرؤيتها. يبدو كما لو تم تسجيل بضع نقاط في مجموعة البيانات الأصلية على أنها 3000 قدم قصيرة جدًا. والنتيجة هي نوع من فوهة البركان في سفح الجبل الرقمي.
  • هناك مناطق زرقاء داخل الخط الساحلي ، في المناطق التي يجب أن تكون برية. المنطقة الأكثر وضوحا هي المستنقع خلف شبه جزيرة كابريتس.

    افتح ورشة Palette مرة أخرى دون إغلاق الخريطة التي قمت بعرضها. انتقل من خلال ملف / فتح للحصول على اللوحة التي أنشأتها للتو. (تذكر أنه عندما يمنحك الإدريسي مربع نص لإدخال اسم ، يمكنك النقر عليه مرتين للحصول على قائمة بالأسماء المتاحة للملفات الموجودة بالفعل.)

يمكنك الآن تعديل اللوحة لإنشاء تباينات أكثر حدة. أقترح أن تقوم بتقسيم النطاق من 1 إلى 255 إلى أربعة أو خمسة نطاقات فرعية ، مع مزج من القيم المنخفضة إلى القيم العالية داخل كل منها. على سبيل المثال ، اترك اللون 1 كما هو ، عدل اللون 50 ليكون لونه أخضر ساطع ، عميق ، ثم امزج من 1 إلى 50. هل هذا منطقي بالنسبة للأراضي الساحلية؟

قم بتعديل لوحة الألوان الخاصة بك حتى تحصل على مجموعة من الألوان التي تناسبك. بعد ذلك ، لإبراز الصورة أكثر ، يمكنك إضافة خطوط متناقضة. على سبيل المثال ، حاول جعل اللون 51 أحمر فاتح. عند إعادة العرض ، يشكل اللون الأحمر الجديد خطًا محيطيًا. يوضح الشكل 2 ، الصفحة 36 لوحة تبرز التضاريس.


بالنظر إلى أنه لا يمكنك استخدام $ skip وأن $ skiptoken يستخدم على ما يبدو معرف العنصر ، ومع الأخذ في الاعتبار أنك تطلب فقط عددًا صغيرًا جدًا من العناصر ، فلماذا لا تأخذ $ top = 19 وتقطع الأول 9 في رمز الاستلام الخاص بك؟

إذا كنت تريد العناصر ذات المعرف بين 10 و 19 ، فيمكنك استخدام خيار مرشح $:

باستخدام عنوان URL الذي تستخدمه حاليًا:

يمكن العثور على المزيد حول مرشح $ هنا.

يمكنك تخطي رمز تخطي من بقية api للحصول على العناصر من القائمة كما تريد. ولكن تأكد من أنه يجب عدم حذف العناصر من القائمة وإلا فإن النطاق قد يغير معرف عنصر القائمة. على سبيل المثال


8. رسم شكل واحد على خريطة كاملة

يمكننا & اقتباس & اقتباس الوظيفتين السابقتين & & quot؛ رسم & quot؛ شكل واحد داخل خريطة كاملة. لذلك ، دع & # x27s تكتب وظيفة جديدة ، حيث يكون معرف الشكل الآن معلمة إدخال:

التآمر على كومونا سانتياغو & # x27s في & quotred & quot:

وإذا أردنا & اقتباس شكل واحد بلون معين؟ بسيط! يمكننا استخدام plt.fill لذلك. يمكن إعادة كتابة الوظيفة:

رسم كومونا لـ & quotLas Condes & quot (id = 0) باللون الأخضر (& # x27g & # x27):


رسم خرائط حزم الخرائط باستخدام ggplot

اللاعبون الرئيسيون:

  • تحتوي حزمة الخرائط على الكثير من الخطوط العريضة للقارات والبلدان والدول والمقاطعات التي كانت مع R لفترة طويلة.
  • تحتوي حزمة mapdata على عدد قليل من المخططات التفصيلية عالية الدقة.
  • تأتي حزمة الخرائط مع وظيفة الرسم ، لكننا سنختار استخدام ggplot2 لرسم الخرائط في حزمة الخرائط.
  • تذكر أن ggplot2 يعمل على إطارات البيانات. لذلك نحن بحاجة إلى طريقة ما لترجمة بيانات الخرائط إلى تنسيق إطار بيانات يمكن لـ ggplot استخدامه.

الخرائط في حزمة الخرائط

  • توفر خرائط الحزمة الكثير من مخططات الخرائط المختلفة والنقاط للمدن ، إلخ.
  • بعض الأمثلة: الولايات المتحدة الأمريكية ، ونيوزيلندا ، والدولة ، والعالم ، وما إلى ذلك.

إطارات بيانات Makin من مخططات الخريطة

  • يوفر ggplot2 وظيفة map_data ().
    • فكر في الأمر كدالة تحول سلسلة من النقاط على طول مخطط تفصيلي إلى إطار بيانات لتلك النقاط.
    • بناء الجملة: map_data (& quotname & quot) حيث يكون "name" سلسلة مقتبسة من اسم الخريطة في الخرائط أو حزمة mapdata

    هنا نحصل على خريطة الولايات المتحدة الأمريكية من الخرائط:

    هنا خريطة العالم عالية الدقة المتمركزة على المحيط الهادئ من بيانات الخريطة

    هيكل إطارات البيانات تلك

    هذه واضحة جدًا:

    • الطول هو خط الطول. الأشياء إلى الغرب من خط الزوال الرئيسي سلبية.
    • خط العرض هو خط العرض.
    • ترتيب . يوضح هذا فقط الترتيب الذي يجب أن يقوم فيه ggplot "بتوصيل النقاط"
    • تخبر المنطقة أو المنطقة دون الإقليمية عن المنطقة أو المنطقة الفرعية التي تحيط بها مجموعة من النقاط.
    • مجموعة . هذا هو مهم جدا! يمكن أن تأخذ وظائف ggplot2 حجة جماعية تتحكم (من بين أشياء أخرى) في ما إذا كان يجب ربط النقاط المجاورة بخطوط أم لا. إذا كانوا في نفس المجموعة ، فسيكونون على اتصال ، ولكن إذا كانوا في مجموعات مختلفة ، فهم لا يفعلون ذلك.
      • بشكل أساسي ، الحاجة إلى نقاط في مجموعات مختلفة يعني أن ggplot "يرفع القلم" عند التنقل بينهما.

      ارسم خريطة الولايات المتحدة الأمريكية

      • يمكن رسم الخرائط بهذا التنسيق باستخدام المضلع geom. أي باستخدام geom_polygon ().
      • geom_polygon () رسم خطوط بين النقاط و "يغلقها" (أي يرسم خطًا من النقطة الأخيرة إلى النقطة الأولى)
      • يجب عليك تعيين جمالية المجموعة إلى عمود المجموعة
      • بالطبع ، x = long و y = lat هما الجماليات الأخرى.

      خريطة سوداء بسيطة

      بشكل افتراضي ، يرسم geom_polygon () بدون لون خط ، ولكن بتعبئة سوداء:

      ما هو هذا المنسق ()؟

      • هذا مهم جدا عند رسم الخرائط.
      • يعمل على إصلاح العلاقة بين وحدة واحدة في ذ الاتجاه ووحدة واحدة في x اتجاه.
      • بعد ذلك ، حتى إذا قمت بتغيير الأبعاد الخارجية للمخطط (أي بتغيير حجم النافذة أو حجم ملف pdf الذي تقوم بحفظه فيه (في ggsave على سبيل المثال)) ، ابعاد متزنة يبقى دون تغيير.
      • في الحالة المذكورة أعلاه ، قررت أنه إذا كان كل ذ كانت الوحدة 1.3 مرة أطول من x الوحدة ، ثم جاءت المؤامرة تبدو جيدة.
        • قد تكون هناك حاجة إلى قيمة مختلفة بالقرب من القطبين.

        العبث بألوان الخط والتعبئة

        لا يوجد تعبئة بخط أحمر. تذكر ، القيمة الثابتة للجماليات تذهب في الخارج وظيفة aes.

        هنا تعبئة بنفسجية بخط أزرق.

        إضافة النقاط إلى الخريطة

        دعونا نضيف النقاط السوداء والصفراء في مختبرنا وفي NWFSC في سياتل.

        انظر إلى مدى أهمية الجمالية الجماعية

        هنا نرسم تلك الخريطة دون استخدام الجمالية الجماعية:

        هذا ليس بوينو! الخطوط هي نقاط ربط لا ينبغي أن تكون متصلة!

        خرائط الدولة

        يمكننا أيضًا الحصول على إطار بيانات للمضلعات التي تخبرنا فوق حدود الحالة:

        ارسم كل الولايات ، وكلها ملونة بشكل مختلف قليلاً

        هذا تمامًا كما هو مذكور أعلاه ، ولكن يمكننا تعيين التعبئة للمنطقة والتأكد من أن خطوط حدود الولاية بيضاء.

        ارسم فقط مجموعة فرعية من الحالات في الجزء المجاور 48:

          اقرأ عن أمر المجموعة الفرعية. يوفر طريقة أخرى لتقسيم إطارات البيانات (نوعًا ما يشبه استخدام عامل التشغيل [] مع متجه منطقي).

        يمكننا استخدامه للحصول على CA و OR و WA فقط:

        انسان قبيح !!

        • أنا فقط أبقي الناس على أصابع أقدامهم. ماذا نسينا هنا؟
          • مجموعة
          • تنسيق_ ثابت ()

          دعونا نعيد هؤلاء إلى هناك:

          تفو! هذا أفضل قليلا!

          قم بتكبير ولاية كاليفورنيا وإلقاء نظرة على المقاطعات

          الحصول على بيانات كاليفورنيا سهل:

          الآن ، دعونا أيضًا نحصل على خطوط المقاطعات هناك

          ارسم الحالة أولاً ولكن دعنا نتخلى عن خطوط شبكة المحاور والخلفية الرمادية باستخدام theme_nothing الرائع للغاية ().

          الآن ارسم حدود المقاطعة باللون الأبيض:

          احصل على بعض الحقائق عن المقاطعات

          • ما ورد أعلاه رائع جدًا ، ولكن يبدو أنه سيكون أكثر برودة إذا تمكنا من رسم بعض المعلومات حول تلك المقاطعات.
          • يمكنني الآن الانتقال إلى ويكيبيديا أو http://www.california-demographics.com/counties_by_population والحصول على بيانات السكان والمساحة لكل مقاطعة.
          • في الواقع ، قمت بنسخ جدولهم الصغير على ويكيبيديا وحفظته في data / ca-counties-wikipedia.txt. في الإفصاح الكامل ، عدّلت أيضًا اسم سان فرانسيسكو من "مدينة ومقاطعة سان فرانسيسكو" إلى "مقاطعة سان فرانسيسكو" لأكون مثل الآخرين (وليس كسر التعبير العادي!)
          • شاهد متعة regex هذه:

          لدينا الآن الأرقام التي نريدها ، لكننا بحاجة إلى إرفاقها بكل نقطة على مضلعات المقاطعات. هذه وظيفة لـ inner_join من حزمة dplyr

          وأخيرًا ، أضف عمود people_per_mile:

          الآن ارسم الكثافة السكانية حسب المقاطعة

          إذا كنت بحاجة إلى مزيد من مساحة المرفق في غولدن ستايت العظيمة ، فهذا يوضح لك أين يمكنك العثور عليها:

          • كثافة السكان في سان فرانسيسكو كبيرة جدًا لدرجة تجعل من الصعب تمييز الاختلافات بين المناطق الأخرى.
          • هذه وظيفة لتغيير النطاق. لنأخذ log-base-10 للكثافة السكانية.
          • بدلاً من إنشاء عمود جديد وهو log10 من people_per_mile ، يمكننا فقط تطبيق التحول في التدرج باستخدام وسيطة trans

          لا يزال غير رائع

          أنا شخصياً أحب الألوان أكثر مما يستخدمه ggplot في تدرجه الافتراضي. في هذا الصدد ، أنجذب أكثر نحو التدرج اللوني الافتراضي لماتلاب. هل يمكننا فعل شيء مشابه مع ggplot؟

          تكبير؟

          لاحظ أن حجم هذه الخرائط من خرائط الحزمة ليس كبيرًا. يمكننا تكبير منطقة Bay ، وهي تعمل نوعًا ما على نطاق واسع ، ولكن إذا أردنا التكبير أكثر ، فسيكون ذلك صعبًا.

          • قف! هذا فشل ملحمي. لماذا ا؟
          • تذكر أن geom_polygon () يربط نقطة نهاية المجموعة بنقطة البداية.
          • و kicker: تتجاهل دالتا xlim و ylim في ggplot2 جميع البيانات غير الموجودة داخل منطقة الرسم.
            • ومن ثم هناك نقاط بداية ونقاط نهاية جديدة لبعض المجموعات (أو في هذه الحالة ، حدود الخط الأسود في كاليفورنيا) ويتم ربط هذه النقاط. غير جيد.

            تكبير حقيقي.

              إذا كنت تريد الاحتفاظ بجميع البيانات كما هي ولكن فقط قم بالتكبير ، يمكنك استخدام الوسيطات xlim و ylim للتنسق_cartesian (). على الرغم من ذلك ، للحفاظ على نسبة العرض إلى الارتفاع صحيحة ، يجب علينا استخدام format_fixed () بدلاً من format_cartesian ().

            هذا يقطع الأشياء لكنه لا يتجاهلها من مجموعة البيانات:


            تقييم الدقة

            لتقييم دقة المصنف ، استخدم ConfusionMatrix (Stehman 1997). يستخدم المثال التالي العينة () لإنشاء بيانات التدريب والتحقق من الصحة من صورة مرجع MODIS ويقارن مصفوفات الارتباك التي تمثل دقة التدريب والتحقق من الصحة:

            محرر التعليمات البرمجية (جافا سكريبت)

            يستخدم هذا المثال مصنف الغابة العشوائية (Breiman 2001) مع 10 شجرات لتقليل حجم بيانات MODIS إلى دقة Landsat. طريقة العينة () تولد عينتين عشوائيتين من بيانات MODIS: واحدة للتدريب والأخرى للتحقق. عينة التدريب تستخدم لتدريب المصنف. يمكنك الحصول على دقة الاستبدال على بيانات التدريب من classifier.confusionMatrix (). للحصول على دقة التحقق ، صنف بيانات التحقق من الصحة. يؤدي هذا إلى إضافة خاصية تصنيف للتحقق من صحة FeatureCollection. استدعاء errorMatrix () في مجموعة FeatureCollection المصنفة للحصول على مصفوفة ارتباك تمثل دقة التحقق (المتوقعة).

            افحص الإخراج لمعرفة أن الدقة الإجمالية المقدرة من بيانات التدريب أعلى بكثير من بيانات التحقق من الصحة. الدقة المقدرة من بيانات التدريب مبالغ فيها لأن الغابة العشوائية "ملائمة" لبيانات التدريب. الدقة المتوقعة على البيانات غير المعروفة أقل ، كما يتضح من التقدير من بيانات التحقق من الصحة.

            يمكنك أيضًا أخذ عينة واحدة وتقسيمها باستخدام طريقة randomColumn () في مجموعات الميزات. استمرار المثال السابق:

            محرر التعليمات البرمجية (جافا سكريبت)

            قد ترغب أيضًا في التأكد من أن عينات التدريب غير مرتبطة بعينات التقييم. قد ينتج هذا عن الارتباط المكاني الذاتي للظاهرة التي يتم التنبؤ بها. تتمثل إحدى طرق استبعاد العينات التي قد تكون مرتبطة بهذه الطريقة في إزالة العينات الموجودة على مسافة معينة من أي عينة (عينات) أخرى. يمكن تحقيق ذلك من خلال صلة مكانية:

            محرر التعليمات البرمجية (جافا سكريبت)

            في المقتطف السابق ، لاحظ أنه تم تعيين الأشكال الهندسية على صواب في العينة (). هذا للاحتفاظ بالمعلومات المكانية لنقاط العينة المطلوبة لوصلة مكانية. لاحظ أيضًا أنه تم تعيين TileScale على 16. هذا لتجنب الخطأ "تجاوز حد ذاكرة المستخدم".

            باستثناء ما هو مذكور بخلاف ذلك ، يتم ترخيص محتوى هذه الصفحة بموجب ترخيص Creative Commons Attribution 4.0 ، كما يتم ترخيص نماذج التعليمات البرمجية بموجب ترخيص Apache 2.0. للحصول على تفاصيل ، راجع سياسات موقع Google Developers. Java هي علامة تجارية مسجلة لشركة Oracle و / أو الشركات التابعة لها.


            شاهد الفيديو: خدعه رهيبة لزيادة مستوى حسابك في ببجي موبايل بسرعة وبخلال أسبوع وبدون تعب (شهر اكتوبر 2021).