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.