যে কোনও চিত্রের ফর্ম্যাটে আরকজিআইএস টাইলস ডেটা রফতানি করুন


13

আমি আর্কজিআইএসে ক্যাশে / মিশ্র বিন্যাসে একটি রাস্টার ডেটাসেট পেয়েছি । কিউজিআইএসের মতো অন্য কোনও ডেস্কটপ ভিত্তিক জিআইএস সফটওয়্যারটিতে বেস ম্যাপ হিসাবে এটি ব্যবহার করার জন্য আমাকে এটিকে একটি জিওররিফারেন্সযুক্ত টিফ বা অন্য কোনও রাস্টার চিত্র বিন্যাসে রফতানি করতে হবে।

এখনও অবধি, আমি কেবল অর্কিজিআইএস-এ একটি এক্সপোর্ট টাইল ক্যাশে (ডেটা ম্যানেজমেন্ট) নামে একটি সরঞ্জাম পেয়েছি যা কেবল টাইল ফর্ম্যাটকে .tpk ফাইল বা বিস্ফোরিত / কমপ্যাক্ট ক্যাশে ফর্ম্যাটে রূপান্তর করতে পারে। এই টাইলস ডেটা কোনও চিত্রে রূপান্তর করার জন্য আমি কোনও সরঞ্জাম খুঁজে পাইনি।

যদি আমি আর্কজিআইএস-এ উপস্থিত রফতানি ডেটা বিকল্পটি ব্যবহার করি , ফলস্বরূপ চিত্রটি কেবল একটি কালো চিত্র ছাড়া অন্য কিছু নয়।

আমি কীভাবে এই টাইলসের ডেটা একটি চিত্রের মধ্যে রফতানি করতে পারি তা যে কেউ জানেন?


সম্পাদিত

@ ফেলিক্সআইপি দ্বারা প্রদত্ত উত্তরটি সমাধান হতে পারে তবে আমি আরও একটি কাজ সন্ধান করছি। টাইলসের সাথে নীচের চিত্রের মতো কিছু কনফিগারেশন ফাইল রয়েছে

আর্কজিআইএস সার্ভার ক্যাশে টাইলগুলির ফাইল কাঠামো

conf.cdiসৌন্দর্য নিচের মত

<?xml version="1.0" encoding="utf-8" ?>
<EnvelopeN xsi:type='typens:EnvelopeN' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/10.1'>
    <XMin>8142366.0491449088</XMin>
    <YMin>4370513.4222595459</YMin>
    <XMax>8146042.4910550155</XMax>
    <YMax>4375009.1735663339</YMax>
    <SpatialReference xsi:type='typens:ProjectedCoordinateSystem'>
        <WKT>PROJCS[&quot;WGS_1984_Web_Mercator_Auxiliary_Sphere&quot;,GEOGCS[&quot;GCS_WGS_1984&quot;,DATUM[&quot;D_WGS_1984&quot;,SPHEROID[&quot;WGS_1984&quot;,6378137.0,298.257223563]],PRIMEM[&quot;Greenwich&quot;,0.0],UNIT[&quot;Degree&quot;,0.0174532925199433]],PROJECTION[&quot;Mercator_Auxiliary_Sphere&quot;],PARAMETER[&quot;False_Easting&quot;,0.0],PARAMETER[&quot;False_Northing&quot;,0.0],PARAMETER[&quot;Central_Meridian&quot;,0.0],PARAMETER[&quot;Standard_Parallel_1&quot;,0.0],PARAMETER[&quot;Auxiliary_Sphere_Type&quot;,0.0],UNIT[&quot;Meter&quot;,1.0],AUTHORITY[&quot;EPSG&quot;,3857]]</WKT>
        <XOrigin>-20037700</XOrigin>
        <YOrigin>-30241100</YOrigin>
        <XYScale>148923141.92838538</XYScale>
        <ZOrigin>-100000</ZOrigin>
        <ZScale>10000</ZScale>
        <MOrigin>-100000</MOrigin>
        <MScale>10000</MScale>
        <XYTolerance>0.001</XYTolerance>
        <ZTolerance>0.001</ZTolerance>
        <MTolerance>0.001</MTolerance>
        <HighPrecision>true</HighPrecision>
        <WKID>102100</WKID>
        <LatestWKID>3857</LatestWKID>
    </SpatialReference>
</EnvelopeN>

যদিও config.xmlনিম্নলিখিত তথ্য রয়েছে

<?xml version="1.0" encoding="utf-8" ?>
<CacheInfo xsi:type='typens:CacheInfo' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/10.1'>
    <TileCacheInfo xsi:type='typens:TileCacheInfo'>
        <SpatialReference xsi:type='typens:ProjectedCoordinateSystem'>
            <WKT>PROJCS[&quot;WGS_1984_Web_Mercator_Auxiliary_Sphere&quot;,GEOGCS[&quot;GCS_WGS_1984&quot;,DATUM[&quot;D_WGS_1984&quot;,SPHEROID[&quot;WGS_1984&quot;,6378137.0,298.257223563]],PRIMEM[&quot;Greenwich&quot;,0.0],UNIT[&quot;Degree&quot;,0.0174532925199433]],PROJECTION[&quot;Mercator_Auxiliary_Sphere&quot;],PARAMETER[&quot;False_Easting&quot;,0.0],PARAMETER[&quot;False_Northing&quot;,0.0],PARAMETER[&quot;Central_Meridian&quot;,0.0],PARAMETER[&quot;Standard_Parallel_1&quot;,0.0],PARAMETER[&quot;Auxiliary_Sphere_Type&quot;,0.0],UNIT[&quot;Meter&quot;,1.0],AUTHORITY[&quot;EPSG&quot;,3857]]</WKT>
            <XOrigin>-20037700</XOrigin>
            <YOrigin>-30241100</YOrigin>
            <XYScale>148923141.92838538</XYScale>
            <ZOrigin>-100000</ZOrigin>
            <ZScale>10000</ZScale>
            <MOrigin>-100000</MOrigin>
            <MScale>10000</MScale>
            <XYTolerance>0.001</XYTolerance>
            <ZTolerance>0.001</ZTolerance>
            <MTolerance>0.001</MTolerance>
            <HighPrecision>true</HighPrecision>
            <WKID>102100</WKID>
            <LatestWKID>3857</LatestWKID>
        </SpatialReference>
        <TileOrigin xsi:type='typens:PointN'>
            <X>-20037508.342787001</X>
            <Y>20037508.342787001</Y>
        </TileOrigin>
        <TileCols>256</TileCols>
        <TileRows>256</TileRows>
        <DPI>96</DPI>
        <PreciseDPI>96</PreciseDPI>
        <LODInfos xsi:type='typens:ArrayOfLODInfo'>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>0</LevelID>
                <Scale>591657527.591555</Scale>
                <Resolution>156543.03392799999</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>1</LevelID>
                <Scale>295828763.79577702</Scale>
                <Resolution>78271.516963999893</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>2</LevelID>
                <Scale>147914381.89788899</Scale>
                <Resolution>39135.758482000099</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>3</LevelID>
                <Scale>73957190.948944002</Scale>
                <Resolution>19567.879240999901</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>4</LevelID>
                <Scale>36978595.474472001</Scale>
                <Resolution>9783.9396204999593</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>5</LevelID>
                <Scale>18489297.737236001</Scale>
                <Resolution>4891.9698102499797</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>6</LevelID>
                <Scale>9244648.8686180003</Scale>
                <Resolution>2445.9849051249898</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>7</LevelID>
                <Scale>4622324.4343090001</Scale>
                <Resolution>1222.9924525624899</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>8</LevelID>
                <Scale>2311162.2171550002</Scale>
                <Resolution>611.49622628138002</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>9</LevelID>
                <Scale>1155581.108577</Scale>
                <Resolution>305.74811314055802</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>10</LevelID>
                <Scale>577790.55428899999</Scale>
                <Resolution>152.874056570411</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>11</LevelID>
                <Scale>288895.27714399999</Scale>
                <Resolution>76.437028285073197</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>12</LevelID>
                <Scale>144447.638572</Scale>
                <Resolution>38.218514142536598</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>13</LevelID>
                <Scale>72223.819285999998</Scale>
                <Resolution>19.109257071268299</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>14</LevelID>
                <Scale>36111.909642999999</Scale>
                <Resolution>9.5546285356341496</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>15</LevelID>
                <Scale>18055.954822</Scale>
                <Resolution>4.7773142679493699</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>16</LevelID>
                <Scale>9027.9774109999998</Scale>
                <Resolution>2.38865713397468</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>17</LevelID>
                <Scale>4513.9887049999998</Scale>
                <Resolution>1.1943285668550501</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>18</LevelID>
                <Scale>2256.994353</Scale>
                <Resolution>0.59716428355981699</Resolution>
            </LODInfo>
            <LODInfo xsi:type='typens:LODInfo'>
                <LevelID>19</LevelID>
                <Scale>1128.4971760000001</Scale>
                <Resolution>0.29858214164761698</Resolution>
            </LODInfo>
        </LODInfos>
    </TileCacheInfo>
    <TileImageInfo xsi:type='typens:TileImageInfo'>
        <CacheTileFormat>MIXED</CacheTileFormat>
        <CompressionQuality>75</CompressionQuality>
        <Antialiasing>false</Antialiasing>
    </TileImageInfo>
    <CacheStorageInfo xsi:type='typens:CacheStorageInfo'>
        <StorageFormat>esriMapCacheStorageModeExploded</StorageFormat>
        <PacketSize>128</PacketSize>
    </CacheStorageInfo>
</CacheInfo>

এবং _alllayersফোল্ডারে উপস্থিত টাইলস আছে । প্রকৃতপক্ষে, এই কনফিগারেশন তথ্য এবং ফোল্ডার এবং ফাইলগুলির কনভেনশন নামকরণের মধ্যে একটি লিঙ্ক রয়েছে _allayersএবং আমি সেই লিঙ্কটি খুঁজে পেতে পারছি না, একবার আমি আসল পয়েন্টটি পেয়ে গেলে, টাইলগুলি একসাথে মোজাইক করা কোনও বড় বিষয় নয়।


আপনি কি এটি এমএক্সডি তে একটি স্তর হিসাবে যুক্ত করতে পারেন?
FelixIP

হ্যাঁ, অবশ্যই, আর্কম্যাপে, আমি এই ডেটাসেটটি খুলতে পারি
মুজাফফার

এটি খুব বেসিক স্ক্রিপ্টিং অনুশীলন। ছোট কোষের সাথে ফিশনেট তৈরি করুন, এটি থেকে ডিডিপি তৈরি করুন এবং এর মাধ্যমে ভ্রমণ করুন,
রাস্টারকে

ডিডিপি বলতে কী বোঝ?
মোজাফফার

ডেটা চালিত পৃষ্ঠাগুলি
ফেলিক্সআইপি

উত্তর:


13

আমি জিআইএস সার্ভার থেকে বায়বীয় চিত্র যুক্ত করেছি এবং আগ্রহের ক্ষেত্রের উপরে ফিশনেট তৈরি করেছি: এখানে চিত্র বর্ণনা লিখুন

আমি আমার ডেটা চালিত পৃষ্ঠাগুলির জন্য সূচক স্তর হিসাবে ফিশনেট ব্যবহার করি, তা নিশ্চিত করে বাছাইয়ের ক্রমটি ফিশনেট টেবিলের রেকর্ড ক্রমের সাথে মিলে যায়।

পৃষ্ঠাগুলি ভ্রমণ করার জন্য, স্ক্রিপ্ট প্রয়োগ করেছি (নীচে দেখুন), এটি টেম্প রাস্টারগুলিতে রফতানি করুন, পৃষ্ঠার নাম অনুসারে এটি পিএনজি রাস্টারটিতে ক্লিপ করুন। উত্সের চিত্রটি বিবর্ণের সাথে ক্লিপড টাইলগুলি ফলাফল দেখায়:

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

স্ক্রিপ্টের 1 টি ইনপুট প্যারামিটার রয়েছে - আপনার টাইলগুলি সংরক্ষণ করতে আউটপুট ফোল্ডার। এটি চালানোর আগে আমি আপনাকে ফিশনেটের রেজোলিউশন (ডিপিআই) এবং কোষের আকার (সর্বোত্তম রেজোলিউশন পেতে সম্ভাব্য) দিয়ে খেলতে পরামর্শ দিই।

# EXPORT SCREENs TO RASTERs
import arcpy, traceback, os, sys, time
from arcpy import env
env.overwriteOutput = True
outFolder=arcpy.GetParameterAsText(0)
dpi=1200
tempRaster=outFolder+os.sep+"victim.png"

## ERROR HANDLING
def showPyMessage():
    arcpy.AddMessage(str(time.ctime()) + " - " + message)

try:
    mxd = arcpy.mapping.MapDocument("CURRENT")
    ddp = mxd.dataDrivenPages
    thePagesLayer = arcpy.mapping.ListLayers(mxd,ddp.indexLayer.name)[0]
#   GET RECTANGLES
    g=arcpy.Geometry()
    geometryList=arcpy.CopyFeatures_management(thePagesLayer,g)
#   EXPORT PAGES
    df = arcpy.mapping.ListDataFrames(mxd)[0]
    fld = ddp.pageNameField.name
    Page_Names=arcpy.da.TableToNumPyArray(thePagesLayer, fld)
    for pageID in range(1, ddp.pageCount+1):
        ddp.currentPageID = pageID
        arcpy.RefreshActiveView()
        time.sleep(3)
        arcpy.mapping.ExportToPNG(mxd,tempRaster,df,dpi,world_file=True)
        fName=outFolder+os.sep+Page_Names[pageID-1][0]+".png"
        anExtent=geometryList[pageID-1].extent
        envelope='%f %f %f %f' %(anExtent.XMin, anExtent.YMin, anExtent.XMax, anExtent.YMax,)
#   CLIP EXPORTED BY PAGE RECTANGLE
        arcpy.Clip_management (tempRaster, envelope,fName)
        arcpy.AddMessage('%s processed' %fName)
except:
    message = "\n*** PYTHON ERRORS *** "; showPyMessage()
    message = "Python Traceback Info: " + traceback.format_tb(sys.exc_info()[2])[0]; showPyMessage()
    message = "Python Error Info: " +  str(sys.exc_type)+ ": " + str(sys.exc_value) + "\n"; showPyMessage()

পৃষ্ঠাগুলি বাছাই ক্রম সবচেয়ে গুরুত্বপূর্ণ। 'ভ্রমণ' শুরুর আগে স্ক্রিপ্টটি আয়তক্ষেত্র / পৃষ্ঠাগুলির একটি তালিকা তৈরি করে এবং স্ক্রিনশটটি ক্লিপ করতে আই-থ (পৃষ্ঠা নং -১) ব্যবহার করে। পৃষ্ঠাগুলির ক্রম <> ফিশনেট টেবিলের মধ্যে রেকর্ডের ক্রম, স্ক্রিপ্ট যদি থাকে তবে অদ্ভুত ফলাফল আনবে।

কয়েক পদক্ষেপের পরে স্ক্রিপ্ট বাতিল করুন এবং ফলাফলগুলি পরীক্ষা করুন। তারা যদি বোঝাপড়া করে তবে পুনরায় চালু করুন।

আপডেট 3 মে, 2016

দেখে মনে হচ্ছে খুব কম লোকই স্ক্রিপ্টকে দরকারী বলে মনে হয়েছে। আমি এটিকে সংশোধন করেছি, যাতে পৃষ্ঠার নাম সংরক্ষণের জন্য পৃষ্ঠার ক্রম এবং ক্ষেত্রের ধরণটি কোনও বিষয় নয়।

# EXPORTS SCREEN TO RASTER(s)
import arcpy, traceback, os, sys, time
from arcpy import env
env.overwriteOutput = True
outFolder=arcpy.GetParameterAsText(0)
env.workspace = outFolder
dpi=1200
tempRaster=outFolder+os.sep+"victim.png"
## ERROR HANDLING
def showPyMessage():
    arcpy.AddMessage(str(time.ctime()) + " - " + message)
try:
    mxd = arcpy.mapping.MapDocument("CURRENT")
    ddp = mxd.dataDrivenPages
#   GET PAGES INFO
    thePagesLayer = arcpy.mapping.ListLayers(mxd,ddp.indexLayer.name)[0]
    df = arcpy.mapping.ListDataFrames(mxd)[0]
    fld = ddp.pageNameField.name
    for pageID in range(1, ddp.pageCount+1):
        ddp.currentPageID = pageID
        arcpy.RefreshActiveView()
        time.sleep(3)
        arcpy.mapping.ExportToPNG(mxd,tempRaster,df,dpi,world_file=True)
        fName=outFolder+os.sep+str(ddp.pageRow.getValue(fld))+".png"
        rect=ddp.pageRow.getValue("Shape")
        anExtent=rect.extent
        envelope='%f %f %f %f' %(anExtent.XMin, anExtent.YMin, anExtent.XMax, anExtent.YMax,)
#   CLIP EXPORTED BY PAGE RECTANGLE
        arcpy.Clip_management (tempRaster, envelope,fName)
        arcpy.AddMessage('%s processed' %fName)
    arcpy.Delete_management(tempRaster)
except:
    message = "\n*** PYTHON ERRORS *** "; showPyMessage()
    message = "Python Traceback Info: " + traceback.format_tb(sys.exc_info()[2])[0]; showPyMessage()
    message = "Python Error Info: " +  str(sys.exc_type)+ ": " + str(sys.exc_value) + "\n"; showPyMessage()

1
হাই ফেলিক্সআইপি, আমি যখন স্ক্রিপ্টটি চালাব, আমি নিম্নলিখিত ত্রুটি Python Traceback Info: File "D:\thesis\M\scipt.py", line 30, in <module> fName=outFolder+os.sep+Page_Names[pageID-1][0]+".png"এবং নিম্নলিখিতটি পেয়েছি Python Error Info: <type 'exceptions.TypeError'>: coercing to Unicode: need string or buffer, numpy.int32 found। আপনি কি দয়া করে এটি সন্ধান করতে পারেন এবং এটি সমাধান করার জন্য আমাকে কী করতে হবে তা আমাকে বলতে পারেন?
মোজাফফার

1
এটি পৃষ্ঠার নাম দিয়ে ব্যর্থ। আপনি এটি ডিডিপি সূচক স্তরে সঞ্চয় করতে কোন ক্ষেত্রটি ব্যবহার করছেন? উদাহরণস্বরূপ। একটি আউটপুট ফোল্ডারের নাম। ক্ষেত্রটি সংখ্যাসূচক বলে মনে হচ্ছে। অবশ্যই স্ট্রিং হওয়া উচিত, দুঃখিত
এটির

1
আমি একটি ফিশনেট তৈরি করেছি এবং এতে একটি ফাইল করা নাম 'অর্ডার_' যুক্ত করেছি এবং এর মধ্যে 1 থেকে আরও আগে মান যুক্ত করেছি। মানগুলি প্রায় 1900 পর্যন্ত যায় the আউটপুট ফোল্ডারের নাম merged_fishnet। আসলে, আমি একটি সরঞ্জাম তৈরি করেছি এবং এতে প্যারামিটার হিসাবে আউটপুট ফোল্ডার যুক্ত করেছি। আপনি কি আমাকে স্ক্রিপ্টটি চালানোর জন্য সঠিক পথটি চান?
মোজাফ্ফার

1
ক্ষেত্র অবশ্যই স্ট্রিং হতে হবে। একটি নতুন তৈরি করুন। । ব্যবহার পাইথন Str (!! INT (Oldfield)) (4) এটা যদি ক্ষেত্রের ক্যালকুলেটর মধ্যে নিয়ে আসতে 'zfill
FelixIP

2
। তাদের কোথাও আপলোড করুন, আমি "একটি চেহারা আছে করব জানান ইমেইল ইত্যাদি এই সাইটের নীতি বিরুদ্ধ
FelixIP

2

আমি এই জন্য একটি অজগর স্ক্রিপ্ট লিখেছি। এটি স্ক্রিপ্টের প্রাথমিক সংস্করণ, সুতরাং এটির স্ক্রিপ্টে ম্যানুয়ালি নির্দিষ্ট মান যুক্ত করা দরকার। আমি এটি স্ক্রিপ্টে উল্লেখ করেছি। এটা এখানে

import math
from pyproj import Proj, transform

from PIL import Image
import glob, os
import sys
from os import walk
from os.path import join, getsize

#this function would convert utm coordinates to lat lng
#function taken from http://gis.stackexchange.com/questions/78838/how-to-convert-projected-coordinates-to-lat-lon-using-python
def utmToLatLng(x,y):
  inProj = Proj(init='epsg:3857')
  outProj = Proj(init='epsg:4326')

  x2,y2 = transform(inProj,outProj,x,y)
  return (x2,y2)



#this function would take lat lng and return the tile number
#function taken from http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
def deg2num(lat_deg, lon_deg, zoom):
  lat_rad = math.radians(lat_deg)
  n = 2.0 ** zoom
  xtile = int((lon_deg + 180.0) / 360.0 * n)
  ytile = int((1.0 - math.log(math.tan(lat_rad) + (1 / math.cos(lat_rad))) / math.pi) / 2.0 * n)
  return (xtile, ytile)

#this function would take a number and return it in hexa format
#taken from http://stackoverflow.com/questions/16414559/trying-to-use-hex-without-0x
def inttohexa(x):
  return format(x, 'x')


#this function would take a number and return a 9 letter word, the first letter
# would be static, should be R and C for folder and files respectivly
#this function can be improved further. Developed by muzaffar in hurry
#that's why you so see much if else in the function
def completeEightNumbers(number,letter):
  if len(number)<8:
    less_number = 8-len(number)
    if less_number==1:
      return letter+'0'+number
    elif less_number==2:
      return letter+'00'+number
    elif less_number==3:
      return letter+'000'+number
    elif less_number==4:
      return letter+'0000'+number
    elif less_number==5:
      return letter+'00000'+number
    elif less_number==6:
      return letter+'000000'+number
    elif less_number==7:
      return letter+'0000000'+number
    elif less_number==8:
      return letter+'00000000'+number
  else:
    return letter+number


#we need these four parameters
ymin = 4370513.4222595459
ymax = 4375009.1735663339
xmin = 8142366.0491449088
xmax = 8146042.4910550155

#resolution of the max zoom level
resolution = 0.59716428355981699
tile_diff = resolution * 256 #256 is the tile width



folders_name = [] #this list would contain the actual folders which have tiles inside
#storing ymax value in a variable for loop purpose only
ymax_loop = 4375009.1735663339
while (ymin < ymax_loop):#we would keep looping until the max value reach the ymin

  #xmin value would remain same while ymax_loop would change for each loop
  latlng =  utmToLatLng(xmin, ymax_loop) #sample output 36.538723, 73.144095
  tile_num =  deg2num(latlng[1], latlng[0], 18) #18 here is zoom level
  folder_name = inttohexa(tile_num[1])
  exact_folder_name = completeEightNumbers(folder_name,'R')

  #insert the folder name in list
  folders_name.append(exact_folder_name)

  #reduce the value of loop by tile_diff -- each time the loop execute
  ymax_loop = ymax_loop - tile_diff

print folders_name


file1 = "C:\Users\A\Desktop\mosaic\output.png"
file, ext = os.path.splitext(file1)
outfile = file + ".PNG"

result_width = 25*256
result_height = 30*256
result = Image.new('RGB', (result_width, result_height))

root = "C:\Users\A\Desktop\mosaic"
folders_index = 0
for single_folder in folders_name:

    print root+"\\"+single_folder
    files = glob.glob(root+"\\"+single_folder+"\\*")

    image_list = []
    files_index = 0

    for b in files:

      image_list.append(Image.open(b))

      result.paste(image_list[files_index], box=((files_index*256),(folders_index*256)))
      files_index += 1
      #print result

      #print folders_index*256  
    folders_index +=1

result.save(outfile, "PNG")
print "done"


-1

আমি মনে করি আপনি এই রাস্টার ডেটাসেটটিকে অন্য ফর্ম্যাটগুলিতে যেমন ইমেজ ফর্ম্যাটগুলিতে রফতানি করতে পারেন (.টিফ, .পিএনজি,। এসিড) এবং তারপরে, আপনি এই সমস্ত চিত্রগুলি মোজাইক ডেটাসেটে যুক্ত করতে পারেন এবং "টাইল ক্যাশে পরিচালনা করুন" ব্যবহার করতে পারেন বেস মানচিত্র বা ব্যাকফিল স্তর


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