জিভপ্রোসেসিং যেমন বাফার জন্য পাইথন লাইব্রেরি (আরকিপি ব্যতীত) সন্ধান করছেন? [বন্ধ]


16

আর্কপাই বাদ দিয়ে কি এমন কোনও অজগর লাইব্রেরি রয়েছে যা শেফফিলাসহ জিফ্রোসেসিং যেমন বাফার / ছেদ করতে পারে?

উত্তর:


17

পাইথন GDAL / OGR Cookbook কিছু নমুনা কোড আছে বাফার একটি জ্যামিতি

from osgeo import ogr

wkt = "POINT (1198054.34 648493.09)"
pt = ogr.CreateGeometryFromWkt(wkt)
bufferDistance = 500
poly = pt.Buffer(bufferDistance)
print "%s buffered by %d is %s" % (pt.ExportToWkt(), bufferDistance, poly.ExportToWkt())

এবং দুটি জ্যামিতির মধ্যে ছেদ করার গণনা করতে

from osgeo import ogr

wkt1 = "POLYGON ((1208064.271243039 624154.6783778917, 1208064.271243039 601260.9785661874, 1231345.9998651114 601260.9785661874, 1231345.9998651114 624154.6783778917, 1208064.271243039 624154.6783778917))"
wkt2 = "POLYGON ((1199915.6662253144 633079.3410163528, 1199915.6662253144 614453.958118695, 1219317.1067437078 614453.958118695, 1219317.1067437078 633079.3410163528, 1199915.6662253144 633079.3410163528)))"

poly1 = ogr.CreateGeometryFromWkt(wkt1)
poly2 = ogr.CreateGeometryFromWkt(wkt2)

intersection = poly1.Intersection(poly2)

print intersection.ExportToWkt()

জ্যামিতিগুলি শেফফায়ালে এবং বিভিন্ন ধরণের ফরম্যাটে পড়তে এবং লিখতে পারে ।


14

সরলকরণের জন্য, শেপলি: ম্যানুয়ালটি পাইথনে পোস্টজিআইএসের সমস্ত জ্যামিতি প্রক্রিয়াকরণের অনুমতি দেয়।

শেপলির প্রথম ভিত্তিটি হল পাইথন প্রোগ্রামারদের একটি আরডিবিএমএসের বাইরে পোস্টজিআইএস টাইপ জ্যামিতি অপারেশন করতে সক্ষম হওয়া উচিত ...

পলিজিওর প্রথম উদাহরণ

from shapely.geometry import Point, LineString, Polygon, mapping
from shapely.wkt import loads  
pt = Point(1198054.34,648493.09)
# or
pt = loads("POINT (1198054.34 648493.09)")
bufferDistance = 500
poly = pt.buffer(bufferDistance)
print poly.wkt
'POLYGON ((1198554.3400000001000000 648493.0899999999700000, 1198551.9323633362000000 
# GeoJSON
print mapping(poly)
{'type': 'Polygon', 'coordinates': (((1198554.34, 648493.09), (1198551.9323633362, 648444.0814298352), (1198544.7326402017, 648395.544838992), ....}

পলিজিওর বহুভুক্ত উদাহরণ:

poly1 = Polygon([(1208064.271243039,624154.6783778917), (1208064.271243039,601260.9785661874), (1231345.9998651114,601260.9785661874),(1231345.9998651114,624154.6783778917),(1208064.271243039,624154.6783778917)])    
poly2 = loads("POLYGON ((1199915.6662253144 633079.3410163528, 1199915.6662253144 614453.958118695, 1219317.1067437078 614453.958118695, 1219317.1067437078 633079.3410163528, 1199915.6662253144 633079.3410163528)))"

intersection = poly1.intersection(poly2)
print intersection.wkt
print mapping(intersection) -> GeoJSON

দ্বিতীয় ভিত্তি হ'ল স্থিরতা, সিরিয়ালাইজেশন এবং বৈশিষ্ট্যগুলির মানচিত্রের অভিক্ষেপ উল্লেখযোগ্য তবে অরথোগোনাল সমস্যা। আপনার একশ জিআইএস ফর্ম্যাট পাঠক এবং লেখক বা স্টেট প্লেন অনুমানের বহুসংখ্যক প্রয়োজন হতে পারে না এবং শেপলি আপনাকে সেগুলি বোঝায় না।

সুতরাং আপনি এটিকে অন্য পাইথন মডিউলগুলির সাথে শেফফিলগুলি পড়তে বা লিখতে মিশ্রিত করে এবং অনুমানগুলিকে osgeo.ogr, Fiona বা PyShp হিসাবে ম্যানিপুলেট করেন ।
গিস স্ট্যাকএক্সচেঞ্জে সন্ধান করা, আপনি অনেকগুলি উদাহরণ খুঁজে পেতে পারেন তবে আমি আপনাকে আরেকটি উদাহরণ দিচ্ছি যা সুদৃ and় এবং ফিয়োনার সংমিশ্রণ এবং সুদৃ functions় ফাংশন ছেদ () এবং বাফার () ব্যবহার করা যেতে পারে (এটি পাইএসএইচপি দিয়ে করা যেতে পারে)।

দুটি পললাইন শেফফাইল দেওয়া হয়েছে:

এখানে চিত্র বর্ণনা লিখুন

ছেদটি ছেদ করুন (কার্যকারণের ছেদটি (সুসজ্জিত))

from shapely.geometry import Point, Polygon, MultiPolygon, MumtiPoint, MultiLineString,shape, mapping
import fiona
# read the shapefiles and transform to MultilineString shapely geometry (shape())
layer1 = MultiLineString([shape(line['geometry']) for line in fiona.open('polyline1.shp')])  
layer2 = MultiLineString([shape(line['geometry']) for line in fiona.open('polyline2.shp')])
points_intersect = layer1.intersection(layer2)

ফলাফলটিকে নতুন শেফফাইল হিসাবে সংরক্ষণ করুন

# schema of the new shapefile
schema = {'geometry': 'MultiPoint','properties': {'test': 'int'}}
# write the new shapefile (function mapping() of shapely)
with fiona.open('intersect.shp','w','ESRI Shapefile', schema) as e:
  e.write({'geometry':mapping(points_intersect), 'properties':{'test':1}})

ফলাফল:

এখানে চিত্র বর্ণনা লিখুন

বাফার স্বতন্ত্র পয়েন্টগুলি (সুষ্ঠুভাবে ফাংশন বাফার ())

 # new schema
 schema = {'geometry': 'Polygon','properties': {'test': 'int'}}
 with fiona.open('buffer.shp','w','ESRI Shapefile', schema) as e:
     for point in points:
          e.write({'geometry':mapping(point.buffer(300)), 'properties':{'test':1}})

ফলাফল

এখানে চিত্র বর্ণনা লিখুন

একাধিক জ্যামিতি বাফার করুন

schema = {'geometry': 'MultiPolygon','properties': {'test': 'int'}}
points.buffer(300)
with fiona.open('buffer2.shp','w','ESRI Shapefile', schema) as e:
     e.write({'geometry':mapping(points.buffer(300)), 'properties':{'test':1}})

এখানে চিত্র বর্ণনা লিখুন


9

সুষম করার পাইথন অ্যাক্সেস দেয় GEOS যা বাফার / ছেদ করে ইত্যাদি করতে পারবেন /। জিইওএস হ'ল গ্রন্থাগারটি বেশিরভাগ ওএসজিও প্রোগ্রামগুলি ব্যবহার করে E


9

পাইথন জিওপ্রসেসিং সফ্টওয়্যারটির তালিকা এখানে।

  • আকৃতির, অজগর
  • ওজিআর, অজগর
  • কিউজিআইএস, পাইকগিস, পাইথন
  • সাগাগিস, অজগর
  • ঘাস, অজগর
  • স্থানিক, pyspatialite, অজগর
  • পোস্ট্রেএসকিউএল / পোস্টজিআইএস, সাইকোপগ, পাইথন
  • আর প্রকল্প, আরপিআই 2, অজগর
  • হোয়াইটবক্স গ্যাট, অজগর-জিওস্ক্রিপ্ট, জাইথন

1

আমার 'জিও-প্রসেসিং লাইব্রেরিটি হ'ল' রিমোট সেন্সিং এবং জিআইএস লাইব্রেরি '(আরএসজিআইএসআইবিবি)। এটি ইনস্টল করা এবং ব্যবহার করা সহজ এবং ডকুমেন্টেশন সত্যই ভাল। এটি ভেক্টর এবং রাস্টার প্রসেসিংয়ের কার্যকারিতা রয়েছে - আমাকে খুব কমই কোনও গুইয়ের কাছে যেতে হয়। এটি এখানে পাওয়া যাবে: http://rsgislib.org

এই উদাহরণের একটি উদাহরণ:

rsgislib.vectorutils.buffervector(inputvector, outputvector, bufferDist, force)

নির্দিষ্ট দূরত্বে ভেক্টর বাফার করার একটি আদেশ command

কোথায়:

  • ইনপুটভেક્ટર একটি স্ট্রিং যা ইনপুট ভেক্টরের নাম ধারণ করে
  • আউটপুটভেક્ટર একটি স্ট্রিং যা আউটপুট ভেক্টরের নাম ধারণ করে
  • বাফারডিস্ট মানচিত্র ইউনিটগুলিতে বাফারের দূরত্ব নির্দিষ্ট করে এমন একটি ফ্লোট is
  • বল হ'ল একটি বিলি, নির্দিষ্ট করে আউটপুট ভেক্টর বিদ্যমান থাকলে তা অপসারণের জন্য বাধ্য করা হবে কিনা তা উল্লেখ করে

উদাহরণ:

from rsgislib import vectorutils
inputVector = './Vectors/injune_p142_stem_locations.shp'
outputVector = './TestOutputs/injune_p142_stem_locations_1mbuffer.shp'
bufferDist = 1
vectorutils.buffervector(inputVector, outputVector, bufferDist, True)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.