2014-12-01 5 views
6

मैं चित्र के अनुसार सेट के निम्न सेट पर औसत सेल आकार की गणना करने की कोशिश कर रहा हूं: grid। चित्र gnuplot का उपयोग कर बनाया गया:कंप्यूटिंग औसत ग्रिड आकार

gnuplot> plot "debug.dat" using 1:2 

अंक लगभग एक आयताकार ग्रिड पर गठबंधन कर रहे हैं, लेकिन काफी नहीं। एक्स या वाई के साथ 10-15% कहने के लिए एक पूर्वाग्रह (जिटर?) लगता है। एक व्यक्ति कुशलतापूर्वक टाइल्स में उचित विभाजन की गणना कैसे करेगा ताकि लगभग प्रति टाइल केवल एक बिंदु हो, आकार को व्यक्त किया जाएगा (टाइलक्स, टिली)। मैं शब्द का उपयोग लगभग करता हूं क्योंकि 10-15% पूर्वाग्रह किसी अन्य आसन्न टाइल में एक बिंदु स्थानांतरित हो सकता है।

बस संदर्भ के लिए, मैं मैन्युअल रूप से लिया है (उम्मीद सही) और निकाले पहले 10 अंक:

-133920,33480 
-132480,33476 
-131044,33472 
-129602,33467 
-128162,33463 
-139679,34576 
-138239,34572 
-136799,34568 
-135359,34564 
-133925,34562 

बस स्पष्टीकरण के लिए, प्रति उपरोक्त विवरण के रूप में एक वैध टाइल होगा (1435,1060), लेकिन मैं वास्तव में एक त्वरित स्वचालित तरीके की तलाश में हूं।

+0

'1। Delaunay त्रिकोण खोजें। 2. विकर्ण रेखाओं को हटा दें। 'जो भी आप चाहते हैं वह अनिवार्य रूप से अवशेष है या कम से कम हेलफुल होगा। ओ लेता है (एन लॉग एन)। – Nuclearman

+0

क्या विकर्ण रेखाएं? – NaCl

+1

अनुमानित ग्रिड का त्रिभुज रेखाएं बनाता है जो लगभग क्षैतिज, ऊर्ध्वाधर और विकर्ण होते हैं। क्षैतिज और ऊर्ध्वाधर लोग इस मामले में स्पष्ट रूप से उपयोगी हैं, लेकिन विकर्ण वाले शायद संभवतः नहीं हैं और इस प्रकार सबसे अच्छे तरीके से हटा दिए जाते हैं। नतीजा एक ग्रिड ग्राफ है जो आपको किसी दिए गए बिंदु के बाएं, दाएं, ऊपर या नीचे सीधे अगले निकटतम बिंदु को आसानी से ढूंढने देता है। ओ (एन) में जो भी आवश्यक है, उसे करने के लिए यह डेटा संरचना पर्याप्त होनी चाहिए। उदाहरण के लिए, आप बाएं और दाएं चलकर एक बिंदु या पंक्ति से ऊपर और नीचे चलकर कॉलम में सभी बिंदु पा सकते हैं। – Nuclearman

उत्तर

1

के इस एक्स के लिए केवल समन्वय करते हैं:

1) एक्स सॉर्ट निर्देशांक

2) के बीच दो बाद के एक्स निर्देशांक डेल्टा को देखो। ये डेल्टा दो श्रेणियों में आ जाएगा - या तो वे एक ही कॉलम के भीतर दो कॉलम के बीच रिक्त स्थान या रिक्त स्थान के बीच की जगहों के अनुरूप होते हैं। आपका लक्ष्य एक थ्रेसहोल्ड ढूंढना है जो लंबी दूरी से छोटी जगहों को अलग करेगा। यह एक थ्रेसहोल्ड ढूंढकर किया जा सकता है जो डेल्टा को दो समूहों में अलग करता है जिसका अर्थ सबसे दूर है (मुझे लगता है)

3) एक बार आपके पास थ्रेसहोल्ड, कॉलम में अलग-अलग बिंदु हो। एक कॉलम शुरू होता है और एक डेल्टा सीमा के लिए इसी के साथ समाप्त होता आप मापा पहले

4) प्रत्येक का पता चला स्तंभ

5) बाद के स्तंभों के बीच डेल्टा लेने के औसत स्थान की गणना। अब, समस्या यह है कि आपको एक भयानक बिंदु मिल सकता है जो आपके कॉलम को तोड़ देगा। बाहर निकलने के लिए एक औसत का प्रयोग करें।

6) आप अपनी gridX की एक मजबूत अनुमान होना चाहिए

उदाहरण के लिए, अपने डेटा का उपयोग कर अक्ष एक्स को देख:

-133920 -132480 -131044 -129602 -128162 -139679 -138239 -136799 -135359 -133925 

छाँटे + डेल्टा:

5 1434 1436 1440 1440 1440 1440 1440 1442 

यहाँ आप देख सकते हैं कि छोटे (5) और बड़े (1434 और ऊपर) डेल्टा के बीच एक बहुत स्पष्ट सीमा है। 1434 स्तंभों में अपनी जगह यहाँ

स्प्लिट अंक परिभाषित करेगा:

-139679|-138239|-136799|-135359|-133925 -133920|-132480|-131044|-129602|-128162 
     1440 1440 1440 1434  5 1440 1436 1442 1440 

लगभग सभी अंक दो -133,925 -133,920 को छोड़कर, अकेले नहीं हैं।

औसत ग्रिड लाइन पदों हैं:

-139679 -138239 -136799 -135359 -133922.5 -132480 -131044 -129602 -128162 

क्रमबद्ध किया गया डेल्टा:

1436.0 1436.5 1440.0 1440.0 1440.0 1440.0 1442.0 1442.5 

मिडियनः

1440 

कौन सा अपने छोटे डेटा सेट, IMHO के लिए सही जवाब है।

संबंधित मुद्दे