.Mxd ফাইলগুলি তৈরি করার জন্য পাইথন স্ক্রিপ্টটি সন্ধান করছেন?


11

আমি আর্কজিআইএস এবং পাইথন উভয়ের জন্যই নতুন। আমার প্রয়োজনটি নীচের ম্যানুয়াল প্রক্রিয়াটি স্বয়ংক্রিয় করা:

  1. ডেস্কটপের জন্য আর্কজিআইএসে একটি স্তর তৈরি করা হচ্ছে। এটি অন্য কথায় রাখতে, একটি আর্কম্যাপ ডকুমেন্ট তৈরি করা (.mxd)।
  2. আর্কজিআইএস সার্ভারের পরিষেবা হিসাবে তৈরি করা আর্কম্যাপ নথিটি (পদক্ষেপ 1 এ) প্রকাশ করা।

বর্তমানে আমরা ম্যানুয়ালি এটি করছি। পাইথন ব্যবহার করে পদক্ষেপ 2 স্বয়ংক্রিয় করতে আমি স্ক্রিপ্টগুলি পেরিয়ে এসেছি।

আমি কীভাবে পদক্ষেপ 1 এবং পদক্ষেপ 2 স্বয়ংক্রিয় করতে পারি?

উত্তর:


16

এটি সত্যিই একটি স্বতন্ত্র উত্তর নয়, এটি পাইথন ইস্যুতে 'স্ক্র্যাচ থেকে এমএক্সডি ক্রিয়েশন' সম্বোধন করার সাথে @ পলিজিওর জবাব আরও যুক্ত করেছে।

আপনি যদি আর্কওবজেক্টস অ্যাক্সেস করেন তবে অজগর থেকে স্ক্র্যাচ থেকে এমএক্সডি তৈরি করতে পারেন । আপনার কমপিপস প্যাকেজটি প্রয়োজন হবে এবং যদি আর্কজিআইএস 10.1 ব্যবহার করা হয় তবে আপনাকে এতে একটি ছোট পরিবর্তন করতে হবে automation.pyআরকোবজেক্টস + কমপিপগুলি 10.1 এ দেখুন

পাইথনে স্ক্র্যাচ থেকে একটি এমএক্সডি তৈরি করার জন্য নীচে কিছু কোড দেওয়া হয়েছে:

import arcpy
import comtypes,os

def CreateMXD(path):
    GetModule('esriCarto.olb')
    import comtypes.gen.esriCarto as esriCarto
    pMapDocument = CreateObject(esriCarto.MapDocument, esriCarto.IMapDocument)
    pMapDocument.New(path)
    pMapDocument.Save() #probably not required...

def GetLibPath():
    """ Get the ArcObjects library path

        It would be nice to just load the module directly instead of needing the path,
        they are registered after all... But I just don't know enough about COM to do this

    """
    compath=os.path.join(arcpy.GetInstallInfo()['InstallDir'],'com')
    return compath

def GetModule(sModuleName):
    """ Generate (if not already done) wrappers for COM modules
    """
    from comtypes.client import GetModule
    sLibPath = GetLibPath()
    GetModule(os.path.join(sLibPath,sModuleName))

def CreateObject(COMClass, COMInterface):
    """ Creates a new comtypes POINTER object where
        COMClass is the class to be instantiated,
        COMInterface is the interface to be assigned
    """
    ptr = comtypes.client.CreateObject(COMClass, interface=COMInterface)
    return ptr

if __name__=='__main__':
    #testing...
    arcpy.SetProduct('arcview')
    filepath='c:/temp/testing123.mxd'
    if os.path.exists(filepath):os.unlink(filepath)
    CreateMXD(filepath)

14

ডেস্কটপের জন্য আর্কজিআইএসে একটি স্তর তৈরি করার নমুনা কোড অ্যাডলায়ারের জন্য অনলাইন হেল্পে রয়েছে (আরকিপি.ম্যাপিং)

সার্ভারের জন্য আরকজিআইএস-এর পরিষেবা হিসাবে আর্কম্যাপ ডকুমেন্ট প্রকাশের পদক্ষেপগুলি পাইথনের সাথে একটি মানচিত্র পরিষেবা প্রকাশের জন্য অনলাইন সহায়তাতে রয়েছে ।

নোট করুন যে আরকিপি ব্যবহার করে কোনও এমএক্সডি তৈরি করা সম্ভব নয় - আপনার একটি বিদ্যমান এমএক্সডি থাকা দরকার যাতে আপনি স্তর যুক্ত করতে পারেন। সেই নকশার সিদ্ধান্তটি আরকিপি.ম্যাপিংয়ের জন্য অনলাইন সহায়তার উপর অনলাইন হেল্পে বর্ণিত হয়েছে , তবে আরকিপিতে কোনও কিছুই থেকে একটি নতুন মানচিত্র নথি তৈরি করতে সক্ষম হওয়া একটি আর্কজিআইএস আইডিয়া যা আমি বাস্তবায়িত দেখতে চাই।

উন্নত পাইথন এবং আরকোবজেক্টস পদ্ধতির জন্য @ লূকের জবাব দেখুন যা আমি পরীক্ষা করে দেখিনি তবে পাইথন লিপি থেকে এমএক্সডি তৈরির জন্য আপনাকে একটি কাজের ব্যবস্থা করতে পারে যা আর্কপাই তারপরে হেরফের করতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.