Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1437 / 13645 ツリー ←次へ | 前へ→

【74479】座標を中心にバッファをかけ、重なった部分を省いた面積を求めたい マリモ 13/6/25(火) 17:33 質問[未読]
【74481】Re:座標を中心にバッファをかけ、重なった... γ 13/6/26(水) 7:27 発言[未読]
【74484】Re:座標を中心にバッファをかけ、重なった... マリモ 13/6/26(水) 10:06 お礼[未読]
【74488】Re:座標を中心にバッファをかけ、重なった... γ 13/6/26(水) 21:28 発言[未読]
【74491】Re:座標を中心にバッファをかけ、重なった... マリモ 13/6/27(木) 17:40 お礼[未読]
【74492】Re:座標を中心にバッファをかけ、重なった... γ 13/6/27(木) 21:54 発言[未読]
【74494】Re:座標を中心にバッファをかけ、重なった... マリモ 13/6/28(金) 19:56 お礼[未読]

【74479】座標を中心にバッファをかけ、重なった部...
質問  マリモ  - 13/6/25(火) 17:33 -

引用なし
パスワード
   こんにちは。よろしくお願いいたします。

まず、下記の通りに入力してあります。

A1に駅勢圏経度
B1に駅勢圏緯度
C1に基幹経度
D1に基幹緯度
E1に地域経度
F1に地域緯度
G1に対象
H1に対象数値
I1に抽出面積
J1に全面積
K1に按分値

A列B列がセットで駅勢圏の座標が入っております。(A2,B2以降)
C列D列がセットで基幹の座標が入っております。(C2,D2以降)
E列F列がセットで地域の座標が入っております。(E2,F2以降)

次に
A列B列の駅勢圏のポイントから1,000mのバッファをかけます。
C列D列の基幹のポイントから500mのバッファをかけます。
E列F列の地域のポイントから500mのバッファをかけます。

地域のポイントからできたバッファに駅勢圏、基幹からできたバッファが
重なっている部分は省き、地域のバッファの面積をI2に入力し、
H2*I2/J2をK2に入力したいです。
H列やJ列に記入のある場合はK列に同じように按分値が出るようにしたいです。


分かる方が見えれば教えていただけるとありがたいです。

【74481】Re:座標を中心にバッファをかけ、重なっ...
発言  γ  - 13/6/26(水) 7:27 -

引用なし
パスワード
   まず、テクニカルタームを使う場合は、その説明が必要です。
バッファ、基幹など。一般的な用語ではないと思う。

以下、勝手な想像になるが、バッファとは、ある点の周りの円領域と見なす。
n個の円(地域)の和集合のうち、
l個の円領域(駅勢圏)とm個の円領域(基幹)に含まれない部分の面積の、
n個の円の面積全体に占める割合を求めよ、
というようなことですか?
それとも、一行単位に解釈して、各地域ごとに算出すればいいのか。
つまり、3つの円領域の任意の重なりについて算出できればいいのか、
もっと多数の領域の相互関係も関係してくるのか、
を明確にしたほうがいいでしょう。
地域が狭すぎるように感ずるので、多角形なのかな?

# 何か、専用のソフトでは対応できているのだが、それをExcelで代用できないか、
# といった質問のように見受けられる。

全体を多数の小区分にわけて、それらの代表点が条件を満たすかどうかを調べて、
その個数の割合で近似的に求める方法があると思われます。
不要な計算を避けるために、予め長方形で計算範囲を絞り込んでもいいかもしれない。
また、乱数を使ったいわゆるモンテカルロシミュレーションとしてもいいでしょう。
収束速度をあげるために準乱数を使う手もあるかもしれない。

マーケティング関係の調査研究ですか?
すでにこれくらいは検討されているだろうけれど、
追加説明のうえ、少なくとも途中までのトライを示してもらうと良いと思いました。

【74484】Re:座標を中心にバッファをかけ、重なっ...
お礼  マリモ  - 13/6/26(水) 10:06 -

引用なし
パスワード
   ▼γ さん:
>まず、テクニカルタームを使う場合は、その説明が必要です。
>バッファ、基幹など。一般的な用語ではないと思う。
そうですね。失礼いたしました。
駅域圏とは駅のある地点から半径1,000mの円の地域のことを指します。
基幹とは基幹バス停のある地点から半径500mの地域のことを指します。
地域とは地域バス停のある地点から半径500mの地域のことを指します。

>以下、勝手な想像になるが、バッファとは、ある点の周りの円領域と見なす。
>n個の円(地域)の和集合のうち、
>l個の円領域(駅勢圏)とm個の円領域(基幹)に含まれない部分の面積の、
>n個の円の面積全体に占める割合を求めよ、
>というようなことですか?
>それとも、一行単位に解釈して、各地域ごとに算出すればいいのか。
>つまり、3つの円領域の任意の重なりについて算出できればいいのか、
>もっと多数の領域の相互関係も関係してくるのか、
>を明確にしたほうがいいでしょう。
>地域が狭すぎるように感ずるので、多角形なのかな?
駅、基幹バス停、地域バス停のそれぞれの円の区域がまず出来上がって
その後、地域バス停のその円の区域に駅、基幹バス停の円の区域が
重なったところを省いて、残ったものの面積を求めたいということです。
なので、最初は円で出来上がるのですが、
重なりを省くので形はいびつになります。

># 何か、専用のソフトでは対応できているのだが、それをExcelで代用できないか、
># といった質問のように見受けられる。
はい。その通りです。
毎回、駅やバス停の位置が変わるので、座標を入力するだけで
エクセル上だけで面積を求める方法がないだろうかと悩んでいます。

>全体を多数の小区分にわけて、それらの代表点が条件を満たすかどうかを調べて、
>その個数の割合で近似的に求める方法があると思われます。
>不要な計算を避けるために、予め長方形で計算範囲を絞り込んでもいいかもしれない。
>また、乱数を使ったいわゆるモンテカルロシミュレーションとしてもいいでしょう。
>収束速度をあげるために準乱数を使う手もあるかもしれない。
>
>マーケティング関係の調査研究ですか?
>すでにこれくらいは検討されているだろうけれど、
>追加説明のうえ、少なくとも途中までのトライを示してもらうと良いと思いました。
説明不足で申し訳ございません。この作業はArcGISを使って行っておりまして、
途中までのトライが確かにあると良いのですが、知識が浅く、
どこから手をつけていったらいいのか、分からない状態です。
ちなみに研究対象はマーケティングではなく、運行評価です。

丁重なお返事、ありがとうございました。
まず、計算式から勉強したいと思います。

【74488】Re:座標を中心にバッファをかけ、重なっ...
発言  γ  - 13/6/26(水) 21:28 -

引用なし
パスワード
   > ># 何か、専用のソフトでは対応できているのだが、それをExcelで代用できないか、
> ># といった質問のように見受けられる。
> はい。その通りです。
ArcGISではその結果が直ぐに得られるのですか、便利ですね。
それならそれでいいように思いますが・・・。

◆私自身は余り力になれる予感は無いのですが、皆さんに
 もう少し、問題の複雑さ・単純さの程度が判るように
 説明いただくと良いと思います。

(1)H2*I2/J2の値はどういう単位、グループで計算するのですか?
  一つ一つの地域バス停単位ということですか?
  それとも、より広いグループですか?
  停留所間隔が仮に1000m未満だと、地域バス停のバッファは
  互いに重なり、連結しますよね。その連結単位なんですか?
(2)地域バス停のバッファに重なる駅、基幹バス停の円はそれぞれ最大1個と
  考えて良いのですか?
(3)最大限、複雑なケースはどんな場合なんでしょうか。

【74491】Re:座標を中心にバッファをかけ、重なっ...
お礼  マリモ  - 13/6/27(木) 17:40 -

引用なし
パスワード
   ▼γ さん:
>ArcGISではその結果が直ぐに得られるのですか、便利ですね。
>それならそれでいいように思いまが・・・。
そうですよね。私にはかなり荷が重たいと感じていますが、
依頼されたのもあって、すぐにできないと返事するよりは
できる限り努力をしてみようと思いまして。

>◆私自身は余り力になれる予感は無いのですが、皆さんに
> もう少し、問題の複雑さ・単純さの程度が判るように
> 説明いただくと良いと思います。
そうですね。ありがとうございます。

>(1)H2*I2/J2の値はどういう単位、グループで計算するのですか?
>  一つ一つの地域バス停単位ということですか?
>  それとも、より広いグループですか?
>  停留所間隔が仮に1000m未満だと、地域バス停のバッファは
>  互いに重なり、連結しますよね。その連結単位なんですか?
説明不足でした。地域バスの路線単位で求めたいので近い場合は連結します。
ほぼ、連結している状態です。

>(2)地域バス停のバッファに重なる駅、基幹バス停の円はそれぞれ最大1個と
>  考えて良いのですか?
いえ、地域バス停の連結したものに、駅から1,000m区域、
基幹バスの500m区域が重なるところはすべて省くので数は特定できないです。

>(3)最大限、複雑なケースはどんな場合なんでしょうか。
都心に近いほど、重なりが多くなるので複雑になります。

色々と考えてくださり、ありがとうございます。
複雑な面積の計算になると思いますので、
ここで質問させていただいた内容は、
ここの質問箱にふさわしい内容ではなかったと思っております。
それにも拘わらず、ご意見をいただけましたこと
洵に感謝いたします。ありがとうございました。

【74492】Re:座標を中心にバッファをかけ、重なっ...
発言  γ  - 13/6/27(木) 21:54 -

引用なし
パスワード
   コメントありがとうございました。

相当複雑な図形になるのであれば解析的に求めるのは困難で、
当初申し上げていたような方法で、近似値を求めることになると思います。

半径500mの円を、その地図で表現するとき、厳密には楕円になるのかもしれませんが
便宜上、円として説明します。

変数を次のように定義します。
A(1 to m) : 駅域圏とは駅のある地点から半径1,000mの円の地域のことを指します。
B(1 to n) : 基幹とは基幹バス停のある地点から半径500mの地域のことを指します。
C(1 to p) : 地域とは地域バス停のある地点から半径500mの地域のことを指します。

まず、C(1)だけに着目して説明します。
C(1)をとり、それを含む最小限の正方形をとります。
その縦、横をそれぞれ(例えば)100等分し、
10000個の点について、以下の個数を求めます。
・C(1)に含まれる点の個数
・C(1)の中心から1500m以内のA、
 C(1)の中心から1000m以内のB、を選び出し(これが重なるバッファ)、
 C(1)には含まれるが、上記のA,Bたちには含まれない点の個数

上記の割り算をすれば、C(1)についての 抽出面積/全面積 が近似的に求まります。

次のC(2)も同様ですが、
すでに調べているC(1)に含まれる点があれば(中心間の距離で判定可能)、
C(2)には含まれるがC(1)に含まれる点は除外した上で、分母、分子を計算します。

このような作業を繰り返せば、各C(i)についての分母、分子の個数が確定します。
あとはこれを総合して、地域バスの路線単位での計数値を求めればよいと思います。

求められる精度がどの程度か、計算時間等を考えて、メッシュの細かさを
試行錯誤することになるでしょう。
それでは頑張って下さい。

【74494】Re:座標を中心にバッファをかけ、重なっ...
お礼  マリモ  - 13/6/28(金) 19:56 -

引用なし
パスワード
   γ さんの善意にとても勇気づけられ、心温まりました。
ありがとうございました。

1437 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free