コード例 #1
0
ファイル: resample_test.py プロジェクト: dequis/auromat
 def testReal(self):
     m1 = _getMapping()
     m2 = resample(m1, pxPerDeg=15, method='mean')
     m2.checkPlateCarree()
     m3 = resample(m2, arcsecPerPx=100, method='nearest')
     m3.checkPlateCarree()
     
     assert_array_approx_equal(_bbToArray(m2.boundingBox), _bbToArray(m1.boundingBox), 1)
     assert_array_approx_equal(_bbToArray(m3.boundingBox), _bbToArray(m1.boundingBox), 1)
コード例 #2
0
    def _testReal(self):
        m1 = _getMapping()
        m2 = resample(m1, pxPerDeg=15, method='mean')
        m2.checkPlateCarree()
        m3 = resample(m2, arcsecPerPx=100, method='nearest')
        m3.checkPlateCarree()

        assert_array_approx_equal(_bbToArray(m2.boundingBox),
                                  _bbToArray(m1.boundingBox), 1)
        assert_array_approx_equal(_bbToArray(m3.boundingBox),
                                  _bbToArray(m1.boundingBox), 1)
コード例 #3
0
ファイル: mapping_test.py プロジェクト: dequis/auromat
 def testMiracleMapping(self):
     m = _getMiracleMapping()
     m.checkGuarantees()
     m = m.maskedByElevation(10)
     m.checkGuarantees()
     m = resample(m, arcsecPerPx=100, method='mean')
     m.checkGuarantees()
コード例 #4
0
    def test(self):
        lats, lons, latsCenter, lonsCenter = testCoordsDiscontinuity()

        altitude = 110
        rgb = ma.masked_array(
            (np.random.rand(lats.shape[0] - 1, lats.shape[1] - 1, 3) *
             255).astype(np.uint8))
        elevation = np.zeros((rgb.shape[0], rgb.shape[1]))

        date = datetime.datetime.now()
        mapping = GenericMapping(lats,
                                 lons,
                                 latsCenter,
                                 lonsCenter,
                                 elevation,
                                 altitude,
                                 rgb,
                                 cameraPosGCRS=np.array([0, 0, 0]),
                                 photoTime=date,
                                 identifier=None)
        m = resample(mapping, pxPerDeg=1, method='mean')
        m.checkPlateCarree()

        mapping = resampleMLatMLT(mapping, arcsecPerPx=100, method='nearest')
        assert not mapping.isPlateCarree
        mlat, mlt = mapping.mLatMlt
        mlat, mlt = mlat.data, mlt.data
        smlon = mltToSmLon(mlt)
        checkPlateCarree(mlat, smlon)
コード例 #5
0
ファイル: mapping_test.py プロジェクト: dequis/auromat
 def testSpacecraftMappingSouth(self):
     m = _getMappingSouth()
     m.checkGuarantees()
     m = m.maskedByElevation(10)
     m.checkGuarantees()
     m = resample(m, arcsecPerPx=100, method='mean')
     m.checkGuarantees()
コード例 #6
0
ファイル: draw_test.py プロジェクト: scivision/auromat
 def _testColors(self):
     m = _getMappingNorth()
     m = resample(m, arcsecPerPx=100, method='mean')
     saveFig('test_white.png', drawStereographic(m, bottomTitle='foo'), bgcolor='white')
     saveFig('test_black.png', drawStereographic(m, bottomTitle='foo'), bgcolor='black')
     saveFig('test_polar_white.png', drawMLatMLTPolar(m), bgcolor='white')
     saveFig('test_polar_black.png', drawMLatMLTPolar(m), bgcolor='black')
コード例 #7
0
 def testMiracleMapping(self):
     m = _getMiracleMapping()
     m.checkGuarantees()
     m = m.maskedByElevation(10)
     m.checkGuarantees()
     m = resample(m, arcsecPerPx=100, method='mean')
     m.checkGuarantees()
コード例 #8
0
 def testSpacecraftMappingSouth(self):
     m = _getMappingSouth()
     m.checkGuarantees()
     m = m.maskedByElevation(10)
     m.checkGuarantees()
     m = resample(m, arcsecPerPx=100, method='mean')
     m.checkGuarantees()
コード例 #9
0
ファイル: draw_test.py プロジェクト: scivision/auromat
 def _testMLatMLTPolarMapNorthPole(self):
     m = _getMappingNorth()
     m.checkGuarantees()
     #m = m.maskedByElevation(10)
     #m.checkGuarantees()
     m = resample(m, arcsecPerPx=100, method='mean')
     m.checkGuarantees()
     saveFig('test_mlatmlt_polar_north.png', drawMLatMLTPolar(m))
コード例 #10
0
ファイル: draw_test.py プロジェクト: scivision/auromat
 def _testMLatMLTPolarMapBothHemispheres(self):
     m = _getMappingSouth()
     m.checkGuarantees()
     #m = m.maskedByElevation(10)
     #m.checkGuarantees()
     m = resample(m, arcsecPerPx=100, method='mean')
     m.checkGuarantees()
     seqbb = BoundingBox(latSouth=-61.150846231, lonWest=142.622725698, latNorth=6.84984918353, lonEast=-116.820615123)
     saveFig('test_mlatmlt_polar_seqbb.png', drawMLatMLTPolar(m, boundingBox=seqbb))
コード例 #11
0
ファイル: draw_test.py プロジェクト: scivision/auromat
 def _testMiracle(self):
     m = _getMiracleMapping()
     saveFig('heat_intersection.png', drawHeatmap(m.intersectionInflatedCorner[...,0]))
     drawHeatmaps(m)
     m.checkGuarantees()
     m = m.maskedByElevation(10)
     m.checkGuarantees()
     m = resample(m, arcsecPerPx=100, method='mean')
     m.checkGuarantees()
     saveFig('test_stereo.png', drawStereographic(m))
コード例 #12
0
ファイル: mapping_test.py プロジェクト: dequis/auromat
 def testSpacecraftMappingNorth(self):
     m = _getMappingNorth()
     m.checkGuarantees()
     m2 = m.maskedByElevation(10)
     m2.checkGuarantees()
     
     assert np.any(~(m.latsCenter.mask == m2.latsCenter.mask))
     assert np.any(~(m.lats.mask == m2.lats.mask))
     
     m3 = resample(m, arcsecPerPx=100, method='mean')
     m3.checkGuarantees()
コード例 #13
0
    def testSpacecraftMappingNorth(self):
        m = _getMappingNorth()
        m.checkGuarantees()
        m2 = m.maskedByElevation(10)
        m2.checkGuarantees()

        assert np.any(~(m.latsCenter.mask == m2.latsCenter.mask))
        assert np.any(~(m.lats.mask == m2.lats.mask))

        m3 = resample(m, arcsecPerPx=100, method='mean')
        m3.checkGuarantees()
コード例 #14
0
ファイル: draw_test.py プロジェクト: scivision/auromat
 def _testHoleBug(self):
     """
     Triggers a (now fixed) bug that occured when 'mean' resampling led to
     single-polygon holes where surrounding polygons were well-defined.
     A hole is a polygon such that all corners are defined and just the polygon
     center data was missing (color etc.). The issue was that those holes were
     not filtered and led to subsequent errors. The fix was to filter not by whether
     all corners are defined but whether the color is defined as this also guarantees
     that the corners are defined.        
     """
     m = _getMappingNorth()
     m = resample(m, arcsecPerPx=200, method='mean')
     # saving as svg without rasterization will lead to errors when trying to use
     # polygons with NaN colors; saving as png only leads to black areas!
     saveFig('test_stereo.svg', drawStereographic(m, rasterized=False))
コード例 #15
0
    def testPlateCarreeNetCDFExport(self):
        imagePath = getResourcePath('ISS030-E-102170_dc.jpg')
        wcsPath = getResourcePath('ISS030-E-102170_dc.wcs')
        mapping = getMapping(imagePath, wcsPath, fastCenterCalculation=True)
        mapping = resample(mapping, arcsecPerPx=200)
        path = tempfile.mktemp(suffix='.nc')
        try:
            auromat.export.netcdf.write(path, mapping)

            cdfmapping = NetCDFMapping(path)
            cdfmapping.checkGuarantees()
            cdfmapping.checkPlateCarree()

            check_equal(cdfmapping, mapping)
        finally:
            if os.path.exists(path):
                os.remove(path)
コード例 #16
0
ファイル: export_netcdf_test.py プロジェクト: esa/auromat
 def testPlateCarreeNetCDFExport(self):
     imagePath = getResourcePath('ISS030-E-102170_dc.jpg')
     wcsPath = getResourcePath('ISS030-E-102170_dc.wcs')
     mapping = getMapping(imagePath, wcsPath, fastCenterCalculation=True)
     mapping = resample(mapping, arcsecPerPx=200)
     path = tempfile.mktemp(suffix='.nc')
     try:
         auromat.export.netcdf.write(path, mapping)
         
         cdfmapping = NetCDFMapping(path)
         cdfmapping.checkGuarantees()
         cdfmapping.checkPlateCarree()
         
         check_equal(cdfmapping, mapping)
     finally:
         if os.path.exists(path):
             os.remove(path)
コード例 #17
0
ファイル: resample_test.py プロジェクト: dequis/auromat
    def test(self):
        np.set_printoptions(precision=1)
        lats, lons, latsCenter, lonsCenter = testCoordsDiscontinuity()

        altitude = 110
        rgb = ma.masked_array((np.random.rand(lats.shape[0]-1,lats.shape[1]-1,3) * 255).astype(np.uint8))
        elevation = np.zeros((rgb.shape[0], rgb.shape[1]))
                
        mapping = GenericMapping(lats, lons, latsCenter, lonsCenter, elevation, altitude, rgb, 
                                 cameraPosGCRS=np.array([0,0,0]), photoTime=datetime.datetime.now(), identifier=None)
        m = resample(mapping, pxPerDeg=1, method='mean')
        m.checkPlateCarree()
        
        mapping = resampleMLatMLT(mapping, arcsecPerPx=100, method='nearest')
        assert not mapping.isPlateCarree
        mlat, mlt = mapping.mLatMlt
        smlon = mltToSmLon(mlt)
        checkPlateCarree(mlat, smlon)
コード例 #18
0
import numpy as np
import cv2
import base64
import math
import matplotlib.pyplot as plt

for i in range(64757, 64758):

    dcfolder = '/home/lianqiang/data/iss_imgs_dc'
    wcsfolder = '/home/lianqiang/data/iss_wcs'

    print("Calculating...")
    provider = SpacecraftMappingProvider(dcfolder, wcsfolder)
    number = str(i)
    mapping = provider.getById(number)  # id = any unique part of the filename
    resampled = resample(mapping, arcsecPerPx=100)
    masked = resampled.maskedByElevation(10)
    # h = mapping.img.shape[0]
    # w = mapping.img.shape[1]

    # img = list(np.array(masked.img).flatten())
    # lats = list(np.array(masked.lats).flatten())
    # lons = list(np.array(masked.lons).flatten())

    img = masked.img
    lats = masked.lats
    lons = masked.lons

    # plt.scatter(lats, lons, np.array(masked.img).flatten())
    # plt.show()
    # for i in range(0, len(lats)):
コード例 #19
0
 def _testPoleBug(self):
     m1 = _getMapping()
     m2 = resample(m1, arcsecPerPx=100, method='mean')
     assert_array_approx_equal(_bbToArray(m2.boundingBox),
                               _bbToArray(m1.boundingBox), 1)
コード例 #20
0
ファイル: profiling.py プロジェクト: scivision/auromat
def _profileMeanResampling(m):
    print('profiling mean resampling')
    resample(m, method='mean')
コード例 #21
0
ファイル: draw_test.py プロジェクト: scivision/auromat
 def _testStereographicMap(self):
     m = _getMappingSouth()
     m = m.maskedByElevation(10)
     m = resample(m, arcsecPerPx=100, method='mean')
     saveFig('test_stereo.svg', drawStereographic(m), dpi=200)
コード例 #22
0
ファイル: draw_test.py プロジェクト: scivision/auromat
 def _testBBPole2(self):
     bb = BoundingBox(latSouth=35.3446724767, lonWest=-180.0, latNorth=90.0, lonEast=180.0)
     m = _getMappingNorth()
     m = resample(m, arcsecPerPx=100, method='mean')
     saveFig('test_bb.png', drawStereographic(m, boundingBox=bb))
コード例 #23
0
ファイル: AuroraData2.py プロジェクト: lianqiang/AuromatTest
import numpy as np
import cv2
import base64
import math
import matplotlib.pyplot as plt

for i in range(64757, 64758):

	dcfolder = '/home/lianqiang/data/iss_imgs_dc'
	wcsfolder = '/home/lianqiang/data/iss_wcs'

	print("Calculating...")
	provider = SpacecraftMappingProvider(dcfolder, wcsfolder)
	number = str(i)
	mapping = provider.getById(number) # id = any unique part of the filename
	resampled = resample(mapping, arcsecPerPx=100)
	masked = resampled.maskedByElevation(10)
	# h = mapping.img.shape[0]
	# w = mapping.img.shape[1]

	# img = list(np.array(masked.img).flatten())
	# lats = list(np.array(masked.lats).flatten())
	# lons = list(np.array(masked.lons).flatten())

	img = masked.img
	lats = masked.lats
	lons = masked.lons

	# plt.scatter(lats, lons, np.array(masked.img).flatten())
	# plt.show()
	# for i in range(0, len(lats)):
コード例 #24
0
 def _testSingle(self):
     provider = ISSMappingProvider(url, cacheFolder, altitude=110)
     
     mapping = provider.get(datetime(2012,1,25,9,26,57))
     mapping = resample(mapping, arcsecPerPx=100)
     saveFig('test.png', drawStereographicMLatMLT(mapping))
コード例 #25
0
ファイル: profiling.py プロジェクト: dequis/auromat
def _profileMeanResampling(m):
    print('profiling mean resampling')
    resample(m, method='mean')
コード例 #26
0
ファイル: resample_test.py プロジェクト: dequis/auromat
 def testPoleBug(self):
     m1 = _getMapping()
     m2 = resample(m1, arcsecPerPx=100, method='mean')
     assert_array_approx_equal(_bbToArray(m2.boundingBox), _bbToArray(m1.boundingBox), 1)