আমি জানি এই প্রশ্নটি পুরানো, তবে সম্প্রতি আমি এই সমস্যাটি নিয়েছিলাম এবং অবশেষে এটি করার একটি উপায় নিয়ে বেরিয়ে এসেছি।
এটি অস্জিও ব্যবহার করে সম্পন্ন করা যায় gdal
, যা পিডিএফ ড্রাইভার অন্তর্ভুক্ত রয়েছে। মূলত আপনি এর মতো কিছু করতে পারেন:
from osgeo import gdal
#Open your Unreferenced PDF
src = gdal.Open("originalFile.pdf")
তারপরে আপনি কোনওভাবে পছন্দসই প্রজেকশন সিস্টেম এবং জিওটান্সফর্মটি পিডিএফে যুক্ত করতে চান তা অর্জন বা গণনা করুন। উদাহরণস্বরূপ, আমরা জিওটিফ থেকে এটিগুলি বের করে আনতে পারি:
#Open the Tiff to obtain its data from
geoTiff = gdal.Open("someMap.tif")
#Obtain its Projection system and its Geotransform
coords = geoTiff.GetProjection()
gt = geoTiff.GetGeoTransform()
অবশেষে, আপনার পিডিএফটিতে প্রক্ষেপণ এবং জিওটান্সফর্ম সেট করুন এবং তারপরে পিডিএফ ড্রাইভারের সাথে একটি অনুলিপি তৈরি করুন:
src.SetProjection(coords)
src.SetGeoTransform(gt)
#Instantiate a PDF driver and save your Referenced copy
pdf_driver = gdal.GetDriverByName("PDF")
dst = pdf_driver.CreateCopy("referencedFile.pdf", src, 1)
ফলাফলটি এমন একটি পিডিএফ যা gt
প্রজেকশন সিস্টেমটি ব্যবহার করে তার উপরের-বাম কোণে অবস্থানের জন্য জিওরফারেন্স করা হয় coords
। এটি QGis বা আরকগিসের পিডিএফ খোলার মাধ্যমে বা gdalinfo
আপনার রেফারেন্সযুক্ত পিডিএফ- র কমান্ডটি ব্যবহার করে যাচাই করা যেতে পারে ।