Oops, t'was fuzzydemo.mbx of course ....

-----Message d'origine-----
De : Eric [mailto:[EMAIL PROTECTED]]
Envoye : samedi 20 janvier 2001 11:02
A : Dyan Catamaran; [EMAIL PROTECTED]
Objet : RE: MI-L Progressive buffers


Hint :

Use Demofuzz.mdx from directions magazine.
1 . Define a function of distance : if you want to mimick a 4000 m virtual
buffer, it'll be "1" from 0 to 4000 and 0 from 4000 to let say 10000 (places
further than your max independant variable (here x axis) won't be taken into
account). You may design a function more complex, for example decaying from
"1" to "0" in the 0 - 4000 range, or any more complex function.

2 . Add a numeric column to your base polygon layer, to receive results

3 . Apply the function : set your base polygons as targets, and your
infestation polygons as origin. Decide if you want to cumulate the result
with the content of the result column or not (note that we don't care at
this sstage since the column should be all zeroes ...). Decide the way to
combine each origin polygon contribution (if more than one infection polygon
lies within 4000 m of a base polygon, you can combine each infection polygon
contribution in the result column): can be sum, average, min, max, etc ...

4 . run the thing
In the result column you've got, for each base polygon, a number reflecting
the contribution of each infection polygon, based on a function of the
distance.


Note 1: you may consider a more subtle function of distance.
Note 2 : you may consider taking into account the wind profile (by adding an
angular function)
Note 3: you may take into account a peculiar base polygon sensitivity (by
adding a differential function : a function based on the difference of a
value in the base table and a value in the infection target - could be the
population by example, just set infection differential column to 0)

In these cases you'll have to define the combination of the different
functions too (the distance function, the angular function and the
differential function are applied simultaneously, so each function
contribution must be combined too)

Note 4 : you may then use a classification function, wich will defines
classes like : no risk, mid risk, high risk, and rank any object of your
base table against each class (this means that an object may be classified
as high risk with a pertinence of 0.2 and mid risk with a pertinence of 0.8
for example). Then use high level semantics like : 'I want all polygons with
little risk' with will be able to take into account all polygons and rank
them against this proposition. (that's fuzzy logic)


Restriction : for distance and angular function, the centroid of the objects
will be taken into account.
This dev is only a proof of concept, I'm just waiting for comments/feed back
to go further...

Have a nice day.
Eric.
www.geovrml.com

-----Message d'origine-----
De : [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]De la part de Dyan
Catamaran
Envoye : vendredi 19 janvier 2001 20:28
A : [EMAIL PROTECTED]
Objet : MI-L Progressive buffers


Hi Users

Here is my spatial challenge.

Suppose I have a mapsheet with X polygons and I want to buffer one at the
time using incremental distance and to perform an "intersect" SQL query on
the buffer object.

Let me explain:

I have two layers:
One with infestation polygons. Usually with small polygons.

Other with base polygons.

The base polygons cover the entire landscape and the infestation polygons
are very small in size if compared with base ones.

The idea is to associate indexes to the base polygons that depend of the
distance of each polygon to the infestation and size of the infestation.

EX: if a base polygon "A" is at distance "D" of an infestation "I" of size
"S", the base polygon would get and index "X".

I thought on to create a progressive or incremental distance buffer around
the base polygon and at each buffer increment do a test to check if the
buffer intersects any infestation.  If doesn't intersect then do another
buffer increment and proceed testing until the distance of 4 Km. If there is
no intersection, the index is Zero. This procedure has to be performed on
one polygon at the time and I have hundreds of polygons.

After this incremental buffer plus test is done, the buffer should be
discarded and the "pointer" moves to another base polygon. This way after
exhausted the base map, all the landscape would be indexed based on the
distance and intensity of the infestation.

I see some trouble before hand.  The buffer can be generated in the same
layer or in the cosmetic layer.  But the SQL intersects works on all the
objects if I generate in the same layer. If I save the cosmetic layer to
consider only one buffer on the selected base polygon I would have thousands
of single buffer layers.  Out the fact I have to open each one new single
buffer layer, perform the SQL/Intersects and close it ...and do it again.
It seems way too convolute for me.

Can anyone shed some light here?

I would appreciate any help or questions for further explanations.




Dyan C. Catamaran
GIS/RS Coordinator
---------------------------------
Phero Tech Inc.
www.pherotech.com
[EMAIL PROTECTED]
P:604-940-9944
F:604-940-9433



_______________________________________________________________________
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, send e-mail to [EMAIL PROTECTED] and
put "unsubscribe MapInfo-L" in the message body.



_______________________________________________________________________
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, send e-mail to [EMAIL PROTECTED] and
put "unsubscribe MapInfo-L" in the message body.

Reply via email to