এমএক্সডি-তে সমস্ত স্তরগুলির জন্য ডেটা উত্স পরিবর্তন করা হচ্ছে?


25

আমার একটি এমএক্সডি আছে। এটি আমাদের এসডিই ডাটাবেসের একটিতে প্রায় 30 টি স্তরের সাথে সংযোগ স্থাপন করে। আমি যে এসডিই ডাটাবেসের সাথে সংযুক্ত সেগুলি পরিবর্তন করতে চাই।

প্রতিটি স্তরকে ডান ক্লিক না করে এবং স্বতন্ত্রভাবে পরিবর্তিত না করে এটি করার কোনও উপায় আছে কি?

উত্তর:


37

আর্ককিগ্ল্যাজে এমএক্সডি-তে ডান ক্লিক করুন, সেট ডেটা উত্সগুলিতে ক্লিক করুন এবং সেখান থেকে বাল্ক পরিবর্তন। তবে, এই সরঞ্জামটি সতর্ক করে:

দ্রষ্টব্য: এই ডায়ালগটি মূলত প্রকাশের জন্য মানচিত্রের নথি প্রস্তুত করার উদ্দেশ্যে is আপনি এই ডায়ালগটি ব্যবহার করে যখন তাদের ডেটা উত্সগুলি আপডেট করেন তখন কাস্টমাইজেশন (ভিবিএ কোড, ইউআই কন্ট্রোলস এবং কাস্টম টুলবারগুলি), গ্রাফগুলি এবং টেবিল উইন্ডো উপস্থিতির বৈশিষ্ট্যগুলি .mxd ফাইল থেকে সরানো হবে। এগুলি সংরক্ষণ করতে, পরিবর্তে আর্কম্যাপে ডেটা উত্সগুলি আপডেট করুন।

আপনি আরকিপি.ম্যাপিং পাইথন লাইব্রেরিটিও ব্যবহার করতে পারেন :


এটি 10.1 তে কাজ করে না বলে মনে হচ্ছে। ডেটা উত্সটি পরিবর্তিত হয়েছে, তবে (কমপক্ষে কোনও এসডিই সংযোগের ক্ষেত্রে) লিঙ্কটি একটি "ডাটাবেস সংযোগ" এ পরিবর্তিত হয়েছে, অর্থাৎ স্তরটি আর দেখানো হচ্ছে না, যা লিঙ্কটি ভেঙে দেয়।
মাইকেল টড

16

আপনি যদি আর্কজিআইএস 10 ব্যবহার করছেন এবং পাইথন ব্যবহার করতে আগ্রহী হন, আরকিপি.ম্যাপিং এবং লেয়ার অবজেক্টের পদ্ধতিগুলির সাথে ডেটা উত্স আপডেট এবং ফিক্সিংয়ের সহায়তা দেখুন ।

উদাহরণ:

import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project_SDE1.mxd")
mxd.findAndReplaceWorkspacePaths(r"Database Connections\Connection to GISSDE1.sde", 
                                r"Database Connections\Connection to GISSDE2.sde")
mxd.saveACopy(r"C:\Project\Project_SDE2.mxd")
del mxd

যদি আপনার স্তরগুলি সমস্ত একই সংযোগ ফাইলটি উত্স না করে বা নতুন এসডিইতে গন্তব্য বৈশিষ্ট্য শ্রেণীর নামটি আলাদা হয় তবে Layer.replaceDataSourceপরিবর্তে আপনাকে ব্যবহারের প্রয়োজন হতে পারে ।


এটি পুরোপুরি ধন্যবাদ কাজ করে! যুক্ত করার একটি বিষয় হ'ল "ডাটাবেস সংযোগগুলি G GISSDE1.sde এর সাথে সংযোগ" একটি .gdb অবস্থানের সাথেও প্রতিস্থাপন করা যেতে পারে।
জ্যাক ফেয়ারফিল্ড

আমি কীভাবে এসএমই এসডিই থেকে ডেটা উত্সটি পরিবর্তন করে তবে সংস্করণ 1 থেকে সংস্করণ 2 এ ব্যবহার করতে সক্ষম হব?
NULL.Dude

3
  1. আর্ককিগ্ল্যাজে একটি ডেটা উত্স সংযোগ তৈরি করুন।
  2. এমএক্সডি খুলুন এবং স্তরটি প্রসারিত করুন এবং যে কোনও স্তরের লাল বিস্মৃত চিহ্নটিতে ক্লিক করুন। এটি ডাটাবেস সংযোগের সাথে ডেটা উত্সযুক্ত পপআপ উইন্ডোটি খুলবে।
  3. আপনার তৈরি করা ডাটাবেস সংযোগটি নির্বাচন করুন, তার উপর ডাবল-ক্লিক করুন এবং আপনি যে স্তরটি ক্লিক করেছেন তার ভিতরে andুকুন এবং সেই স্তরটি নির্বাচন করুন এবং ওকে, খুলুন বা যুক্ত টিপুন।

এটি এমএক্সডি-তে স্তরযুক্ত সমস্ত লাল বিস্ময়বোধক চিহ্ন সরিয়ে ফেলবে এবং নতুন নির্মিত ডেটা উত্সকে নির্দেশ করবে। এক বারে আপনি এটি করতে পারেন; যেতে হবে না এবং প্রতিটি সময় লাল বিস্ময়কর চিহ্নটিতে ক্লিক করুন এবং ক্লিক করুন এবং ডেটা উত্সটি সেট করুন।


তার খুব helpfull.Please একবার এই throug যেতে
Inderjeet সিং bhambra

3
এটি কেবল তখনই কাজ করবে যদি সংযোগগুলি ভেঙে যায়, অন্যথায় অন্য উত্তরগুলির মধ্যে একটিতে আরও উপযুক্ত।
blah238

1

http://arcscripts.esri.com/details.asp?dbid=14922

লিঙ্কটি একটি পুরানো আরস্ক্রিপ্টের নাম যা জিডিকে সরঞ্জাম নামে পরিচিত, যা অন্যান্য সাইটে পাওয়া যায়। প্রোগ্রামটি আর্কম্যাপে একটি সরঞ্জামদণ্ড তৈরি করে যেখানে আপনি নির্বাচিত স্তরগুলির উপর উত্স পরিবর্তন করতে পারেন (যে স্তরটি আপনি চান S এটি এসডিই সংযোগগুলি বা এসডিইর মধ্যে স্থানীয় ফাইল জিওডাটাবেজে কাজ করে (আরকিটালগে উইচের পরিবর্তনের উত্সটি হ্যান্ডেল করতে পারে না, কারণ এসডিইতে নামটির শুরু দিয়ে শুরু হয় with এসডিই ব্যবহারকারী এবং তারপরে বিন্দু।

এটি খুব সহায়ক, তবে কেবল আর্কগিস 9.3


1
যদিও এই লিঙ্কটি প্রশ্নের উত্তর দিতে পারে, উত্তরের প্রয়োজনীয় অংশগুলি এখানে অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্কটি সরবরাহ করা ভাল। লিঙ্কযুক্ত পৃষ্ঠাগুলি পরিবর্তিত হলে লিঙ্ক-শুধুমাত্র উত্তরগুলি অবৈধ হতে পারে।
ব্র্যাডহার্ডস

আমি পরিবর্তন করেছি!
জোনাকটিভ

1

যদি আপনি ইতিমধ্যে .mxd খালি পেয়ে থাকেন তবে @ blah238 যা করেছে তা করুন তবে 'CURRENT'পুরো পথের পরিবর্তে ব্যবহার করুন। ভুলে যাবেন না যে অনুসন্ধান এবং প্রতিস্থাপনের পুরো স্ট্রিং হওয়া উচিত নয়:

import arcpy
mxd = arcpy.mapping.MapDocument('CURRENT')
mxd.findAndReplaceWorkspacePaths(r"scratch", 
                                r"project/draft")

তারপরে আপনাকে .mxd ফাইলটি যাইহোক সংরক্ষণ এবং পুনরায় খুলতে হবে।


1

এক এমএক্সডি-র জন্য, ডিফল্ট ইএসআরআই সরঞ্জামগুলি যথেষ্ট। তবে ভাঙা লিঙ্কগুলির সাথে একাধিক এমএক্সডিএস ঠিক করা একটি দুঃস্বপ্ন হতে পারে। সেকেন্ডে সীমাহীন এমএক্সডি ঠিক করার জন্য আমার আপডেটলায়ারআফস সরঞ্জামটি ব্যবহার করে দেখুন: https://github.com/jswagger/UpdateLayerRefs কেবলমাত্র আপনার ইনপুট এমএক্সডি এর একটি তালিকা হিসাবে ["Name1.mxd", "Name2.mxd", "Name3.mxd" সরবরাহ করুন "]


আপনার কোডটি ভাগ করে নেওয়ার মাধ্যমে চমৎকার :) কীভাবে কেউ এটি ব্যবহার করতে পারেন সে সম্পর্কে আপনি কিছুটা ব্যাখ্যা করতে পারেন?
gisnside

সম্পূর্ণ: 1. জেএসএন কনফিগার ফাইলটি পূরণ করুন:
জেরেমি সোয়াগার

প্রথম পদক্ষেপ, আমি অনুমান! তবে আমি পরে ভাবছি - মনে হচ্ছে আপনার মন্তব্যটি বাকী বার্তাগুলির জন্য গ্রাহ্য করে নি। পরিবর্তে আপনার নিজের উত্তরটি সম্পাদনা করা উচিত :) :)

1
দুঃখিত, কিছু টানতে পেয়েছি। এখনই রিডমি ফাইল আপডেট করা হচ্ছে ....
জেরেমি সোয়াগার

1
ঐটা ঠিক. পাইথন হালনাগাদ আপডেট লেয়ারআরফস.পি - কনফিগ "আপডেট_লেয়ার_রেফস.কনফিগ.জসন" আপনাকে এটিকে যে কোনও ফোল্ডারে চালানোর অনুমতি দেয়।
জেরেমি সোয়াগার

0

এই পোস্টটি পুরানো মনে হচ্ছে, তবে আমি এটি কাজ করতে পারি না: কোডটি নিম্নরূপ:

import arcpy, glob

#specify MXD location to change source data
mxd = arcpy.mapping.MapDocument(r"C:\\Users\\jrender\\Documents\\LandbaseEditing PreProd Pub Check.mxd")
workspaceCurrent = r"Database Connections\Connection to PP_GISLand_Landbase.sde"
workspaceTarget = r"Database Connections\Connection to PP_Publication_GISLand.sde" 

mxd.findAndReplaceWorkspacePaths(workspaceCurrent, workspaceTarget)

#save a new copy of MXD
mxd.saveACopy(r"C:\Users\jrender\Documents\LandbaseEditing PreProd Pub Check Repathed.mxd")

জিআইএস এসই তে আপনাকে স্বাগতম। আপনি এখন সম্পন্ন না করে থাকেন, দয়া করে নেওয়া সফর এই প্রশ্নোত্তর বিন্যাসে বিষয়ে জানার জন্য। আপনার উত্তরটি নিজের নিজের প্রশ্ন হিসাবে সেরা পোস্ট হতে পারে। আপনি কোডটি চালানোর সময় যে কোনও ত্রুটি বার্তা পেয়েছেন তা অবশ্যই অন্তর্ভুক্ত করবেন!
অ্যান্ডি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.