السلام عليكم ورحمة الله وبركاته
عندي قاعدة بيانات أكسس تحتوي على قرابة 300 جدول وكل جدول يحتوي على عمودين للإحداثيات وعمود فيه قيمة الهطول المطري في سنة معينة
والمطلوب تحويل كل جدول إلى راستر
أريد إنشاء سكريبت أو برنامج صغير بحيث يحول هذه الـ 300 جدول بشكل مباشر إلى 300 راستر
هل يوجد لديكم حل ؟؟
مشكورين سلف
السلام عليكم ورحمة الله وبركاته
ان برنامج الماب انفو وكذلك الارك افيو يمكن بها العمل علي مجموعة كبيرة من الملفات في ان واحد فعند اجراء كل عملية يتم الضغط علي الزر شفت
وتحدبد جميع الملفات كمجموعه فتظهر جميعها باللون الازرق وبالضغط علي الزر اوكي تنفتح كل الملفات في ان واحد ..هذا لا يعني انه يمكن تحويل الداتا الي راستير في آن واحد انما ذلك يختصر الوقت والجهد الي حد كبير
والله اعلم
شكراً على ردك أخي الكريم
ولكنني أحاول أن أنفذ المطلوب برمجياً وليس يدوياً وللأسف خبرتي البرمجية ضعيفة فأرجو من أصحاب الخبرة مساعدتي
[align=justify]في المشاركة بعنوان: مركز GIS بجامعة هارفارد في الرابط:
http://www.gisclub.net/vb/showthread.php?t=2822
يوجد في هذا الموقع ملف بصيغة pdf يحمل لك الاجابة علي سؤالك ويشرح بالتفصيل و الصور كيف تحول جدول بيانات الي طبقة ! الشرح مع أنه بالانجليزية الا أنه بسيط و ممتع ويمكنك تنفيذه بسهوله. رابط الملف هو:
http://isites.harvard.edu/fs/docs/ic..._Shapefile.pdf
بالتوفيق
[/align]
شكراً لردك الكريم د. جمعة
طريقة تحويل الجدول إلى طبقة معروفة وسهلة ولكن ما أبحث عنه هو كيفية تحويل هذه العمليات البسيطة إلى ماكرو ثم وضع هذا الماكرو ضمن حلقة For بحيث يتم تحويل الـ 300 جدول بشكل مباشر إلى طبقات
لأنني لو قمت بتنفيذ المطلوب يدوياً لإستغرق الأمر زمناً طويلاً جداً وقد لا يخلو هذا التنفيذ من أخطاء بشرية
مشكورين لردودكم القيمة
ولكنني ما زلت أبحث عن الحل
الاخ الفاضل
السلام عليكم ورحمة الله
حسب علمي ان ماكرو يمكن تطبيقة علي مئات الصور ولكن يقوم بتحليل واحد فقط اي اجراء تحليل او وظيفة واحدة فقط (مثلا يمكن استخدام ماكرو لقطع منطقة الدراسة من مرئية كبيرة" اي يطبق الوظيفة windows or image subsit " ولكن لا يمكن اجراء عدة وظائف معقدة متتالية في ان واحد واحد مثلما ترغب انت... علي العموم ان لم تجد طريقة فأن العمل اليدوي لا يستغرق وقت طويل كما ضننت فهناك تسهيلات يمكن استخدامها بحيت تقوم باجراء كل خطوه مع جميع ملفاتك في ان واحد..انا عن نفسي قمت بنفس العمل مرتين مره بأستخدام الارك فيو ومره اخري بأستخدام الماب انفو مع 230 ملف في ان واحد
تمنياتي لك بالتوفيق
والسلام عليكم
بسم الله الرحمن الرحيم
تحياتي أخ محمد
من خلال VBA يمكنك تنفيذ أي سلسلة من الأوامر مهما بلغت من التعقيد
من ملفات الـ Help وجدت الأكواد التالية
كود لإنشاء شيب فايل جديد
Public Function CreateShapefile(sPath As String, sName As String) As IFeatureClass ' Dont include .shp extension
' Open the folder to contain the shapefile as a workspace
Dim pFWS As IFeatureWorkspace
Dim pWorkspaceFactory As IWorkspaceFactory
Set pWorkspaceFactory = New ShapefileWorkspaceFactory
Set pFWS = pWorkspaceFactory.OpenFromFile(sPath, 0)
' Set up a simple fields collection
Dim pFields As IFields
Dim pFieldsEdit As IFieldsEdit
Set pFields = New Fields
Set pFieldsEdit = pFields
Dim pField As IField
Dim pFieldEdit As IFieldEdit
' Make the shape field
' it will need a geometry definition, with a spatial reference
Set pField = New Field
Set pFieldEdit = pField
pFieldEdit.Name = "Shape"
pFieldEdit.Type = esriFieldTypeGeometry
Dim pGeomDef As IGeometryDef
Dim pGeomDefEdit As IGeometryDefEdit
Set pGeomDef = New GeometryDef
Set pGeomDefEdit = pGeomDef
With pGeomDefEdit
.GeometryType = esriGeometryPolygon
Set .SpatialReference = New UnknownCoordinateSystem
End With
Set pFieldEdit.GeometryDef = pGeomDef
pFieldsEdit.AddField pField
' Add another miscellaneous text field
Set pField = New Field
Set pFieldEdit = pField
With pFieldEdit
.Length = 30
.Name = "MiscText"
.Type = esriFieldTypeString
End With
pFieldsEdit.AddField pField
' Create the shapefile
' (some parameters apply to geodatabase options and can be defaulted as Nothing)
Dim pFeatClass As IFeatureClass
Set pFeatClass = pFWS.CreateFeatureClass(sName, pFields, Nothing, _
Nothing, esriFTSimple, "Shape", "")
Set CreateShapefile = pFeatClass
End Function
كود لإضافة شيب فايل إلى المشروع
Public Sub AddLayerFileToMap()
Dim filePath As String
filePath = "D:\arcgis\arcexe83\ArcObjects Developer Kit\samples\data\USA\states.lyr"
Dim pGxLayer As IGxLayer
Dim pGxFile As IGxFile
Set pGxLayer = New GxLayer
Set pGxFile = pGxLayer
pGxFile.Path = filePath
Dim pMxDoc As IMxDocument
Set pMxDoc = ThisDocument
pMxDoc.FocusMap.AddLayer pGxLayer.Layer
End Sub
وبالتالي يمكن تحويل أي عملية تقوم بها يدوياً ضمن ArcMap أو ArcCataloge إلى كود برمجي تنفذه بكبسة زر
من خلال تعديل الكود السابق ودمجه يمكن مثلاً إنشاء أي عدد تريد من الـ shapefiles وإضافتها إلى Arcmap بشكل آلي
والآن أنا أبحث عن الكود المقابل لأمر Add XY data
وكود لتحويل إلى راستر
وهكذا
بسم الله
السلام عليكم
قد يكون الاضافة بطريقة البرنامج تأخذ وقت اقل من عمل كود
ثم فحصه ثم اضافتة البرنامج
بسم الله الرحمن الرحيم
تحياتي أخ بهجت
إذا كنت تقصد أن إعداد الكود يتطلب وقت طويل ، والأفضل أن نستغل هذا الوقت في تنفيذ المطلوب يدوياً ، فهذا قد يكون صحيح
وأنا حاليأ أنفذ المطلوب مني يدوياً وهذا سيأخذ على الأقل عمل 5 أيام ولكن إذا أخذت بعين الاعتبار أن هذا العمل مطلوب تكراره كل شهر تقريباَ أي أنني سأمضي ستون يومأ في السنة أقوم بنفس العمل.
بينما في حال نجحت في إعداد برنامج يقوم بتنفيذ المطلوب آلياً فإن إعداد البرنامج وفحصه قد يستغرق 30 يومأ بالتالي أكون قد ربحت 30 يومأ في السنة و 60 يومأ في السنة القادمة وهكذا
السلام عليكم اخوي محمد فوزي
سوف ادلو بدلوي حسب ماعرفه فخبرتي بالموضوع 4 شهور
بخصوص ربط قاعدة البيانات بالواجهة البرمجية فالامر سهلعندي قاعدة بيانات أكسس تحتوي على قرابة 300 جدول وكل جدول يحتوي على عمودين للإحداثيات وعمود فيه قيمة الهطول المطري في سنة معينة
هنا لم افهم قصدك بأي طريقة تحول هذه البيانات الى راستر بمعنى لبدء ان تشرح لي طريقتك اليدويه في التحويل الى راستربرنامج صغير بحيث يحول هذه الـ 300 جدول بشكل مباشر إلى 300 راستر
ثم بعد ذلك أرى كيف استطيع ان اخدمك