Komut dizim hakkında bir sorum var ve sorununuzu çözmeniz için herhangi bir fikriniz veya herhangi bir fikriniz olsun.Maske koşulundan sonra 2D dizisi alın
Verilerle birlikte bir 2D dizilim var ve bunu diğer bir 2B dizisiyle bölmek istiyorum. Şimdiye kadar, sorun değil. Ama bir koşul koymak: sonda:
fig10, (ax1, ax2, ax3) = plt.subplots(1,3)
fig = plt.gcf()
fig.set_size_inches(16, 9)
# ARRAYS TAKE ACCOUNT PIXEL = 1 IN THE BINARY GRID
convolution_mask_locale_data = convolution_mask_locale[grid.T == 1]
convolution_mask_grande_data = convolution_mask_grande[grid.T == 1]
convolution_locale_data = convolution_locale[grid.T == 1]
convolution_grande_data = convolution_grande[grid.T == 1]
# FIRST STEP DIVIDE
step1 = convolution_locale_data/convolution_mask_locale_data
fig_step1 = ax1.imshow(step1, interpolation='nearest')
fig10.colorbar(fig_step1,ax=ax1)
ax1.set_xlabel("X (arcmin)")
ax1.set_ylabel("Y (arcmin)")
# SECOND STEP DIVIDE
step2 = convolution_grande_data/convolution_mask_grande_data
fig_step2 = ax2.imshow(step2, interpolation='nearest')
fig10.colorbar(fig_step2,ax=ax2)
ax2.set_xlabel("X (arcmin)")
ax2.set_ylabel("Y (arcmin)")
# SUBSTRACT BOTH RESULTS
S_N_map = step1 - step2
fig_S_N_map = ax3.imshow(S_N_map, interpolation='nearest')
fig10.colorbar(fig_S_N_map,ax=ax3)
ax3.set_xlabel("X (arcmin)")
ax3.set_ylabel("Y (arcmin)")
fig10.tight_layout()
fig10.savefig(outname10)
Ama bir sorunum olsun: Bu her iki diziler ikili maske hesabı alıp sadece pikselleri almalıdır = 1.
ben yazdım Bir ısı haritasıyla aynı şeyi almam gerek. Ama dizilerimle grid.T durumunun üstesinden geldiğimde, 2B dizim 1D dizisi olur ve işlem yapamıyorum.
Nasıl işleyebileceğim hakkında bir fikriniz var mı? Belki de tamamen açık değil ve çok kötü İngilizce'm için üzgünüm.
Teşekkür ederiz!
DÜZENLEME:
değişken grid.T bir ikili dizidir (0 veya 1) (değer 1) veya hiçbir şey benim piksel yıldızları varsa belirten (değer 0).
değişken convolution_mask_local Gauss tarafından konvolüsyon önceki grid.T temsil eder. Ayrıca OliverW TARAFINDAN ÇÖZÜM 2D dizi
bu. :.
Ben OliverW tarafından verilen çözüm ile benim programı güncellemek, bu edinin:
fig10, (ax1, ax2, ax3) = plt.subplots(1,3)
fig = plt.gcf()
fig.set_size_inches(16, 9)
mask = binary_mask == 0
A = np.ma.masked_array(convolution_locale, mask = mask)
B = np.ma.masked_array(convolution_mask_locale, mask = mask)
C = np.ma.masked_array(convolution_grande, mask = mask)
D = np.ma.masked_array(convolution_mask_grande, mask =mask)
step1 = A/B
step2 = C/D
fig_step1 = ax1.imshow(step1, interpolation='nearest')
fig10.colorbar(fig_step1,ax=ax1)
ax1.set_xlabel("X (arcmin)")
ax1.set_ylabel("Y (arcmin)")
fig_step2 = ax2.imshow(step2, interpolation='nearest')
fig10.colorbar(fig_step2,ax=ax2)
ax2.set_xlabel("X (arcmin)")
ax2.set_ylabel("Y (arcmin)")
# SUBSTRACT BOTH RESULTS
S_N_map = step1 - step2
fig_S_N_map = ax3.imshow(S_N_map, interpolation='nearest')
fig10.colorbar(fig_S_N_map,ax=ax3)
ax3.set_xlabel("X (arcmin)")
ax3.set_ylabel("Y (arcmin)")
fig10.tight_layout()
fig10.savefig(outname10)
Bunları araziler olsun (ikincisi çok iyi iş gibi görünüyor, ama için ilk değil bilinmeyen bir nedenle):
"Izgara" değişkeni nedir? Convolution_mask_locale nedir? Lütfen örneklerinizi [minimal, eksiksiz ve doğrulanabilir bir örnek] haline getirin (http://stackoverflow.com/help/mcve). –
@OliverW. Tamam, OliverW, sorumu mümkün olduğu kadar açık hale getirmek için düzenledim. Çok fazla detayım olduğu için, bir şeyi unuttum;) – Deadpool