এলোমেলো তবে বিশ্বাসযোগ্য ডিজিটাল উচ্চতা মডেল তৈরি করছেন? [বন্ধ]


32

ডিজাম তৈরির কোনও উপায় কি আছে, প্রোগ্রমেটিকভাবে বা অন্যথায়, যা আরও স্থানিক বিশ্লেষণের জন্য আর্কজিআইএস ডেস্কটপে ফিড করবে?

সম্ভবত এটি ছোট ক্রমবর্ধমান পদক্ষেপে বিভক্ত করা প্রয়োজন:

  1. একটি গ্রিড তৈরি করুন
  2. মান সহ গ্রিড পূরণ করুন যেখানে: 0 > value < maxElevation
  3. প্রতিবেশী কোষ: (x1-x2) < maxSlope

4
@ ইগোর সাইটটি আপনাকে এই প্রশ্নটি পরিষ্কার করার প্রয়োজনীয়তার পরামর্শ দেয়। এটি গেমস এবং এর মতো পটভূমি দৃশ্যত পটভূমি তৈরি করতে "সিন্থেটিক ভূখণ্ড" উপর দৃষ্টি নিবদ্ধ করে। এই কৌশলগুলির বেশিরভাগই সত্যিকারের ডেমগুলি পুনরুদ্ধার করার দিকে মনোনিবেশ করে বলে মনে হয় না : "বাস্তববাদী" কোনও বৈজ্ঞানিক বিষয়বস্তু না রেখে দর্শকের চোখে পড়ে। আপনার প্রশ্নে, "আরও স্থিতিক বিশ্লেষণ" পরামর্শ দেয় যে আপনার প্রকৃত ডিইএমগুলির কিছু শ্রেণির নির্দিষ্ট বৈশিষ্ট্য পুনরুত্পাদন করার জন্য আপনার সিন্থেটিক ডিইএমগুলির প্রয়োজন। এটি যদি তাই হয় তবে আপনার কী বৈশিষ্ট্যগুলি ক্যাপচার করতে হবে?
হোবার

@Aragon থেকে প্রথম লিঙ্কটি অসম্পূর্ণ, কিন্তু এটা নির্দেশ করা উচিত এই । তার উত্তরে মন্তব্য করার মতো যথেষ্ট ক্রেডিট নেই।
ম্যাথিউউ

এছাড়াও কটাক্ষপাত করা এই
রডরিগো

উত্তর:


6

কিছু ভাল তথ্যের জন্য এই পৃষ্ঠাটি চেষ্টা করুন বা পড়ুন। এবং দ্বিতীয় লিঙ্কটি আপনাকে এলোমেলো ডিজিটাল লিফটিন মডেলের পথ প্রদর্শন করে।

  1. সংখ্যাগত এবং বৈজ্ঞানিক পাইথন এবং ডেটা ভিজ্যুয়ালাইজেশন
  2. উচ্চতা / উচ্চতা ক্ষেত্র তৈরি করে gdal নাম্বার পাইথন

16

আপনি এই জন্য ফ্র্যাক্টাল ব্যবহার করতে পারেন: ফ্র্যাক্টাল দিয়ে তৈরি কৃত্রিম ডেমস

উপরের সারিটি ফ্র্যাক্টাল ডাইমেনশন ডি = 2.0005 (বাম: উচ্চতার মানচিত্র, ডান: দিক মানচিত্র), ফ্র্যাক্টাল ডাইমেনশন সহ ডি = 2.90 (বাম: উচ্চতার মানচিত্র, ডান: দিক মানচিত্র) দিয়ে তৈরি করা হয়েছিল। আমি গ্রাস জিআইএস এর r.surf.fractal ব্যবহার করেছি । তারপরে কেবল r.out.gdal (বা GUI) দিয়ে কৃত্রিম ডিইএম জিওটিআইএফএফ-তে রফতানি করুন।


এটি সত্যিই আকর্ষণীয় দেখায় - আপনি কীভাবে ব্যবহার r.surf.fractalকরবেন তার কিছু বিশদ যুক্ত করতে পারবেন ?
সিম্বামাঙ্গু

আপনি উপরের চিত্রগুলির জন্য ব্যবহৃত কমান্ডটি এখানে পেতে পারেন: ঘাস.
osgeo.org/grass70/manouts/r.surf.fractal.html#

8

আপনি এমন একটি স্ক্রিপ্ট থাকার বিষয়েও বিবেচনা করতে পারেন যা কোনও বিদ্যমান আসল ডেমের এলোমেলো অংশ নেয়।


এছাড়াও এলোমেলো অংশগুলির মোজাইক প্রান্তগুলি নিভিয়েট করার জন্য এটি শেষে এক ধরণের ফিল্টারিংয়ের প্রয়োজন হবে ..
najuste

7

এখানে টেরিটেন জেনারেশন অ্যালগরিদম এবং vterrain.org- এ সফটওয়্যারের একটি দুর্দান্ত সংস্থান রয়েছে: http://vterrain.org/ উচ্চতা / কৃত্রিম /


5

এলোমেলো রাস্টারে স্বতঃসংশ্লিষ্টতা যোগ করতে গসিয়ান কার্নেল ব্যবহার করে এখানে একটি আর সমাধান রয়েছে। যদিও, আমাকে বলতে হবে যে জিআরএসএস আর.সুরফ.ফ্র্যাক্টাল ফাংশন, @মার্কাসএন দ্বারা প্রস্তাবিত, সেরা পদ্ধতির মতো বলে মনে হচ্ছে।

require(raster)

# Create 100x100 random raster with a Z range of 500-1500
r <- raster(ncols=100, nrows=100, xmn=0)
  r[] <- runif(ncell(r), min=500, max=1500)  

# Gaussian Kernel Function
GaussianKernel <- function(sigma=s, n=d) {
          m <- matrix(nc=n, nr=n)
            col <- rep(1:n, n)
            row <- rep(1:n, each=n)
          x <- col - ceiling(n/2)
          y <- row - ceiling(n/2)
         m[cbind(row, col)] <- 1/(2*pi*sigma^2) * exp(-(x^2+y^2)/(2*sigma^2))
        m / sum(m)
       }

# Create autocorrelated raster using 9x9 Gaussian Kernel with a sigma of 1
r.sim <- focal(r, w=GaussianKernel(sigma=1, n=9))

# Plot results
par(mfcol=c(1,2))
  plot(r, main="Random Raster")
  plot(r.sim, main="Autocorrelated Random Raster sigma=1, n=9")

4

আপনি কিছু এলোমেলো ভাঙা অঞ্চল তৈরি করতে পার্লিন শব্দটি ব্যবহার করার চেষ্টা করতে পারেন। স্ট্যাকওভারফ্লোতে এই উত্তরটি পাইথন থেকে আপনি কীভাবে শুরু করতে পারেন তা ব্যাখ্যা করে। কৌশলটি হট্টগোলের গ্রিডের খুব ছোট একটি অঞ্চলে জুম বাড়ানো হবে যাতে এটি খুব অনিয়মিত দেখাচ্ছে না looking


3

libnoise আপনাকে যা চায় তা দেয়। আপনাকে সম্ভবত এটি কিছুটা কাস্টমাইজ করতে হবে। 'জটিল গ্রহের পৃষ্ঠ' উদাহরণ পরীক্ষা করুন।

libnoise একটি বহনযোগ্য সি ++ লাইব্রেরি যা সুসংগত শব্দ, এক ধরণের স্বাচ্ছন্দ্যত পরিবর্তনশীল গোলমাল তৈরি করতে ব্যবহৃত হয়। libnoise পার্লিন শব্দ, উত্সাহিত মাল্টিফ্র্যাক্টাল শব্দ এবং অন্যান্য ধরণের সুসংগঠিত শব্দ তৈরি করতে পারে।

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

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


3

এই কোডটি কেবলমাত্র প্রায় কয়েকটি সংখ্যক সারি এবং কলামের একটি "হিল opeাল" DEM তৈরি করতে ব্যবহার করা যেতে পারে:

# Building a fake hillslope
# hisllop is 5 rows by 6 columns

x <- seq(-15, 15, by=0.01)
z <- 1/(1+1.5^-x)
plot(z)

z <- 150 - (1-z)*5
plot(z)

# Doing it by hand - DELETE if needed - JUST HERE AS AN EXAMPLE!!!
elev <- c(mean(z[0:500]), mean(z[501:1000]), mean(z[1001:1500]), mean(z[1501:2000]), mean(z[2001:2500]),mean(z[2501:3000]))
plot(elev, type="l")


# doing it by loop
bins <- 6      # could also be considered the length or the hillslope - AKa the number of columns
elev1 <- numeric(bins)


for(i in 0:(bins-1))
{
  begin <- floor( (0 + (length(z)/bins)*i) )
  print(begin)
  end <- floor( ( (length(z)/bins) * (i+1) ) )
  print(end)
  print(mean(z[begin:end]))
  elev1[i+1] <- mean(z[begin:end])  

}

plot(elev1, type="l")


# Making the hillslope wide - AKA creating identical rows
width <- 5

# creating empty matric
hillslope <- matrix(0, nrow=bins, ncol=width)

#overwriting the matrix with the elevation column
system.time(
  { 
    for(i in 1:width) 
      hillslope[,i] <- elev1; 
    hillslope <- as.data.frame(hillslope) 
    }
  )



# applying random error grid
error <- rnorm((width*bins), mean = 0, sd = 0.25)
error.matrix <- as.matrix(error, nrow=bins )



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