Stoqs: "Contour Plot" λΌλ””μ˜€ λ²„νŠΌ μΆ”κ°€

에 λ§Œλ“  2015λ…„ 12μ›” 30일  Β·  32μ½”λ©˜νŠΈ  Β·  좜처: stoqs/stoqs

ν•΄μ–‘ν•™μžλ“€μ€ 단면 ν”Œλ‘―μ—μ„œ 데이터λ₯Ό λΉ„κ΅ν•˜λŠ” 것을 μ’‹μ•„ν•©λ‹ˆλ‹€. 이λ₯Ό μˆ˜ν–‰ν•˜λŠ” ν•œ 가지 일반적인 방법은 ν•œ λ§€κ°œλ³€μˆ˜μ˜ 등고선을 λ‹€λ₯Έ λ§€κ°œλ³€μˆ˜μ˜ 컬러 데이터 μœ„μ— μ˜€λ²„λ ˆμ΄ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 선택 ν•­λͺ©μ— μžˆλŠ” λͺ¨λ“  데이터에 λŒ€ν•΄ 이 μ˜΅μ…˜μ„ μ œκ³΅ν•˜λ„λ‘ STOQS UIλ₯Ό μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λΌλ””μ˜€ λ²„νŠΌμ˜ ν˜„μž¬ "ν”Œλ‘― 데이터" 열은 "색상 ν”Œλ‘―"으둜 이름을 λ°”κΏ”μ•Ό ν•©λ‹ˆλ‹€. (Temporal - Depth μ„Ήμ…˜ ν”Œλ‘― μ•„λž˜μ˜ 'contour' 및 'scatter' λΌλ””μ˜€ λ²„νŠΌμ€ μ—¬μ „νžˆ ​​Color Plot 선택에 μ μš©λ©λ‹ˆλ‹€.) "Contour Plot"μ΄λΌλŠ” λΌλ””μ˜€ λ²„νŠΌμ˜ μƒˆ 열이 μΆ”κ°€λ©λ‹ˆλ‹€. Contour Plot λ§€κ°œλ³€μˆ˜λ₯Ό μ„ νƒν•˜λ©΄ λ§€κ°œλ³€μˆ˜μ˜ 등고선을 κ·Έλ¦¬λŠ” Matplotlib μ½”λ“œμ˜ 싀행이 νŠΈλ¦¬κ±°λ©λ‹ˆλ‹€. STOQS UI의 νŠΉμ„±μ— 따라 레벨 수, λ ˆμ΄λΈ” 배치 및 기타 속성은 데이터λ₯Ό κ°€μž₯ 잘 λ‚˜νƒ€λ‚΄λ„λ‘ μžλ™μœΌλ‘œ μ„ νƒλ©λ‹ˆλ‹€.

Component-UI Data Science Intern capstone help wanted

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ›μ‹œ μ˜κ΄‘μ˜ λ§ˆμ§€λ§‰ 컀밋 . 이 μ˜κ²¬μ— λ‚˜μ—΄λœ λͺ¨λ“  μž‘μ—…μ„ μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€. 이제 μ‹€μ œλ‘œ 데이터λ₯Ό ν”Œλ‘œνŒ…ν•˜λŠ” μž‘μ—…μ„ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€! plotting.py κ°€ μˆ˜μ •λ©λ‹ˆλ‹€.

λͺ¨λ“  32 λŒ“κΈ€

이 μƒˆλ‘œμš΄ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λ €λ©΄ 전체 μŠ€νƒ 개발자 기술이 ν•„μš”ν•©λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈ μΈ‘μ—λŠ” μž‘μ„±ν•  HTMLκ³Ό JavaScript(JQuery)κ°€ μžˆμŠ΅λ‹ˆλ‹€. UI와 μ„œλ²„ 간에 데이터λ₯Ό μ „λ‹¬ν•˜λ €λ©΄ AJAXλ₯Ό 이해해야 ν•©λ‹ˆλ‹€. μ„œλ²„ μΈ‘μ—λŠ” ν”Œλ‘œνŒ…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ μž‘μ„±ν•΄μ•Ό ν•˜λŠ” Python μ½”λ“œκ°€ μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  것을 λ§ˆλ¬΄λ¦¬ν•˜κΈ° μœ„ν•΄ κΈ°λŠ₯ ν…ŒμŠ€νŠΈλŠ” Selenium을 μ‚¬μš©ν•˜μ—¬ μž‘μ„±λ©λ‹ˆλ‹€. (μ΄μƒμ μœΌλ‘œλŠ” μ§„μ •ν•œ TDD 방법둠을 λ”°λ₯΄κΈ° μœ„ν•΄ ν…ŒμŠ€νŠΈκ°€ λ¨Όμ € μž‘μ„±λ©λ‹ˆλ‹€!)

@J0S349 , @noemicuin , @LeslyGJ , @samuelreyλ₯Ό ν™˜μ˜ν•©λ‹ˆλ‹€! 이 문제λ₯Ό μ„ νƒν•΄μ£Όμ…”μ„œ κΈ°μ©λ‹ˆλ‹€. 이것은 우리 κ³Όν•™μž 쀑 ν•œ λͺ…이 μš”μ²­ν•œ 것이며 그듀이 이 κΈ°λŠ₯을 κ°–κ²Œ λ˜μ–΄ 기쁠 것이라고 μƒκ°ν•©λ‹ˆλ‹€.

μ–΄μ œ MBARIλ₯Ό λ‘˜λŸ¬λ³΄λŠ” λ™μ•ˆ μš°λ¦¬λŠ” 이 μƒˆλ‘œμš΄ κΈ°λŠ₯이 μ œκ³΅ν•  ν”Œλ‘―μ˜ μ˜ˆκ°€ μžˆλŠ” ν¬μŠ€ν„°λ₯Ό μ§€λ‚˜μ³€μŠ΅λ‹ˆλ‹€.

img_7009-1

상단 ν”Œλ‘―μ€ μ˜¨λ„λ₯Ό 색상과 흰색 λ“±κ³ μ„ μœΌλ‘œ ν‘œμ‹œν•©λ‹ˆλ‹€. ν•˜λ‹¨ ν”Œλ‘―μ€ μ—½λ‘μ†Œλ₯Ό μƒ‰μƒμœΌλ‘œ ν‘œμ‹œν•˜κ³  흰색 등고선은 상단 ν”Œλ‘―, μ˜¨λ„μ—μ„œμ™€ λ™μΌν•©λ‹ˆλ‹€.

STOQS UI에 좔가될 κΈ°λŠ₯은 λͺ¨λ“  Parameter의 등고선을 μΆ”κ°€ν•  수 μžˆλŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€.

https://github.com/stoqs/stoqs/pull/501 에 μ˜ν•΄ μΆ”κ°€λœ test_contour_plots() ν…ŒμŠ€νŠΈλŠ” λ‹€μŒμ„ μ‚¬μš©ν•˜μ—¬ ~/dev/stoqsgit μ—μ„œ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

export DJANGO_SETTINGS_MODULE=config.settings.ci
export DATABASE_URL=postgis://127.0.0.1:5432/stoqs
stoqs/manage.py test stoqs.tests.functional_tests.BrowserTestCase.test_contour_plots

당신이 제거 된 디버그 쀑단 점에 λ‹€μ‹œ λ„£μœΌλ©΄ https://github.com/stoqs/stoqs/pull/501/commits/b976d708e13fd208df3f29c6f12bd1692e427e38 이 같은 창을 λ³Ό 수 :

screen shot 2017-02-15 at 12 17 58 pm

κΈ°λŠ₯ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜λ €λ©΄ 개발 μ„œλ²„κ°€ μ‹€ν–‰ 쀑이어야 ν•©λ‹ˆλ‹€. 이것이 λ‹€λ₯Έ 터미널 μ„Έμ…˜μ—μ„œ μ‹€ν–‰λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€:

cd ~/dev/stoqsgit && source venv-stoqs/bin/activate
export DATABASE_URL=postgis://stoqsadm:[email protected]:5432/stoqs
stoqs/manage.py runserver 0.0.0.0:8000 --settings=config.settings.ci

"λ“±κ³ μ„  ν”Œλ‘―" κΈ°λŠ₯에 λŒ€ν•œ κΈ°λŠ₯ ν…ŒμŠ€νŠΈμ˜ μ‹œμž‘μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

-        # TODO: Add tests for contour line plot
+        # Tests for contour line plot
+        parameter_contour_plot_radio_button = self.browser.find_element(By.XPATH,
+            "//input[@name='parameters_contour_plot' and @value='{}']".format(northward_sea_water_velocity_HR_id))

λ‹€μŒκ³Ό 같이 μ‹€νŒ¨ν•©λ‹ˆλ‹€.

NoSuchElementException: Message: Unable to locate element: //input[@name='parameters_contour_plot' and @value='17']

쀑단점을 μΆ”κ°€ν•˜κ³  μ‚¬μš©ν•  수 μ—†λŠ” μš”μ†Œλ₯Ό μš”μ²­ν•˜λŠ” 행을 μΆ”κ°€ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @samuelrey μž…λ‹ˆλ‹€ .

λŒ€λ‹¨ν•΄! 우리 λͺ¨λ‘κ°€ λ³Ό 수 μžˆλ„λ‘ μ½”λ“œ λ³€κ²½ 사항을 μƒˆ λΆ„κΈ°λ‘œ ν‘Έμ‹œν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

@MBARIMike 더 λ§Žμ€ ν…ŒμŠ€νŠΈ 사둀λ₯Ό
λ‚΄κ°€ κ΅¬ν˜„ν•œ 것은 윀곽 λΌλ””μ˜€ λ²„νŠΌ 쀑 ν•˜λ‚˜λ₯Ό λˆŒλ €μ„ λ•Œ 이미지가 생성될 κ²ƒμœΌλ‘œ μ˜ˆμƒν•©λ‹ˆλ‹€.
또 λ‹€λ₯Έ 생각은 컬러 λ²„νŠΌκ³Ό λ™μΌν•œ 개수의 윀곽 λ²„νŠΌμ΄ μƒμ„±λ˜λŠ”μ§€ ν™•μΈν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. 이것은 λΌλ””μ˜€ λ²„νŠΌμ΄ 데이터에 μ„€λͺ…λœ λ§€κ°œλ³€μˆ˜μ— 따라 λ™μ μœΌλ‘œ μƒμ„±λœλ‹€λŠ” λ‚˜μ˜ 이해λ₯Ό λ”°λ¦…λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @samuelrey (및 νŒ€),

Harry Percival의 μžμŠ΅μ„œ μ—μ„œ TDD의 예λ₯Ό λ”°λ₯΄λ €λ©΄ λ‹€μŒ λ‹¨κ³„λŠ” https://github.com/stoqs/stoqs/issues/230#issuecomment -280171422μ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν•˜λ„λ‘ μ½”λ“œλ₯Ό μΆ”κ°€ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

ν…ŒμŠ€νŠΈ μ½”λ“œλŠ” parameters_contour_plot λΌλŠ” μž…λ ₯ μš”μ†Œλ₯Ό μ°ΎλŠ” 데 μ‹€νŒ¨ν•©λ‹ˆλ‹€. κΈ°μ‘΄ μ›Ή νŽ˜μ΄μ§€μ—λŠ” parameters_plot λΌλŠ” λΌλ””μ˜€ λ²„νŠΌ 열이 μžˆμŠ΅λ‹ˆλ‹€. https://github.com/stoqs/stoqs/blob/master/stoqs/stoqs/templates/stoqs/stoqsquery.html νŒŒμΌμ—μ„œ 이 λ¬Έμžμ—΄μ„ μ°Ύκ³  parameters_contour_plot λΌλŠ” λΌλ””μ˜€ λ²„νŠΌ 열을 μΆ”κ°€ν•˜λŠ” μœ μ‚¬ν•œ μ½”λ“œλ₯Ό μΆ”κ°€ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν•˜λ©΄ 뢄기에 λ³€κ²½ 사항을 μ»€λ°‹ν•©λ‹ˆλ‹€. 그런 λ‹€μŒ λ‹€μŒ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜μ‹­μ‹œμ˜€.

screen shot 2017-03-29 at 12 54 30 pm
μ•ˆλ…•ν•˜μ„Έμš” @MBARIMike ,

이제 λ‹€μŒκ³Ό 같이 이름이 μ§€μ •λœ μž‘λ™ν•˜μ§€ μ•ŠλŠ” λͺ¨λ“  λΌλ””μ˜€ λ²„νŠΌμ„ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. parameters_contour_plot λ“±κ³ μ„  ν”Œλ‘―μ— λŒ€ν•œ ν…ŒμŠ€νŠΈμ™€ ν•¨κ»˜ μƒμ„±λ˜μ—ˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. λ‹€μŒ λ‹¨κ³„λŠ” 윀곽 λΌλ””μ˜€ λ²„νŠΌμ— κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

@MBARIMike λ˜ν•œ 3μ›” 31일 κΈˆμš”μΌ(Cesar Chavez Day)μ—λŠ” λ§Œλ‚  수 μ—†μ§€λ§Œ λ‹€λ₯Έ κΈˆμš”μΌμ— λ§Œλ‚˜μ„œ 진행 상황을 보여주고 μ œμ•ˆ 사항을 λ…Όμ˜ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. κ·€ν•˜μ—κ²Œ κ°€μž₯ μ ν•©ν•œ 것이 무엇인지 μ•Œλ €μ£Όμ‹­μ‹œμ˜€.

λŒ€λ‹¨ν•œ λ°œμ „μΈ 것 κ°™μŠ΅λ‹ˆλ‹€!

μ΄λŸ¬ν•œ μ½”λ“œ λ³€κ²½ 사항에 λŒ€ν•œ λΆ„κΈ° 링크λ₯Ό μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

λ‚΄ VMμ—μ„œ Firefox 창이 화면에 λ‚˜νƒ€λ‚˜μ§€ μ•ŠλŠ” 것을 ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή λ¬Έμ œκ°€ λ°œμƒν–ˆλŠ”μ§€ λͺ¨λ₯΄κ² μ§€λ§Œ stoqs/stoqs/tests/functional_tests.py λ³€κ²½ν•˜λ©΄ λ‹€μŒκ³Ό 같은 λ¬Έμ œκ°€ ν•΄κ²°λ©λ‹ˆλ‹€.

--- a/stoqs/stoqs/tests/functional_tests.py
+++ b/stoqs/stoqs/tests/functional_tests.py
@@ -48,9 +48,6 @@ class BrowserTestCase(TestCase):
     def setUp(self):
         profile = webdriver.FirefoxProfile()
         self.browser = webdriver.Firefox(profile)
-        self.browser.set_window_size(1200, 768)
-        self.browser.set_window_position(300, 0)
-        self.browser.implicitly_wait(10)

λ‹€μŒμ€ μ•½κ°„μ˜ μ§€μΉ¨μž…λ‹ˆλ‹€.

  1. 제λͺ©μ˜ μ—΄ μ •λ ¬κ³Ό 선택 ν–‰ μ§€μš°κΈ°μ— μ•½κ°„μ˜ 정리가 ν•„μš”ν•©λ‹ˆλ‹€.
  2. parameters_contour_plot λΌλŠ” λΌλ””μ˜€ λ²„νŠΌμ˜ 클릭에 λŒ€ν•œ ν•Έλ“€λŸ¬λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. 이 JavaScript μ½”λ“œ λŠ” κΈ°μ‘΄ Plot λ²„νŠΌμ˜ ν•Έλ“€λŸ¬μž…λ‹ˆλ‹€. 그런 λ‹€μŒ λ“±κ³ μ„  ν”Œλ‘―μ΄ 생성될 μ„œλ²„λ‘œ μ „λ‹¬λ˜λŠ” 쿼리 λ¬Έμžμ—΄μ„ μž‘μ„±ν•©λ‹ˆλ‹€. parameters_contour_plot λ₯Ό 쿼리 λ¬Έμžμ—΄μ— μΆ”κ°€ν•˜λ €λ©΄ λΉ„μŠ·ν•œ μ½”λ“œλ₯Ό μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ‹€μŒ λ‹¨κ³„λŠ” μ„œλ²„ μΈ‘ μ½”λ“œμ— λ“€μ–΄κ°ˆ λ•Œ μ•½κ°„ 거칠어지기 μ‹œμž‘ν•©λ‹ˆλ‹€.

  1. parametercontourplot 에 λŒ€ν•œ 행을 stoqs/stoqs/views/query.py Python μ½”λ“œμ— μΆ”κ°€ν•©λ‹ˆλ‹€.
  2. 파일 stoqs / μœ ν‹Έμ—μ„œ / STOQSQManager.pyκ°€ μ£Όλ³€ contourparameterID 및 contourparameterGroups을 당겨 MeasuredParameter에 λŒ€ν•œ 인수 λͺ©λ‘μ— μΆ”κ°€ν•˜λŠ” μ½”λ“œλ₯Ό μΆ”κ°€ ().
  3. stoqs/utils/Viz/plotting.py νŒŒμΌμ—μ„œ contourparameterID 및 contourparameterGroupsλ₯Ό MeasuredParameter()의 __init__()에 μΆ”κ°€ν•©λ‹ˆλ‹€.

이 μ‹œμ μ—μ„œ λ‹Ήμ‹ μ˜ κΈ°λŠ₯ ν…ŒμŠ€νŠΈ stoqs.tests.functional_tests.BrowserTestCase.test_contour_plots ν†΅κ³Όν•΄μ•Όν•˜κ³  당신이 κ·Έκ²ƒμ„ν•©λ‹ˆλ‹€ (ν•„μš”λ‘œν•˜λŠ” 곳에 μœ€κ³½μ„ μœ„ν•΄ μ„ νƒλœ νŒŒλΌλ―Έν„° ID에 μ•‘μ„ΈμŠ€ν•΄μ•Όν•©λ‹ˆλ‹€ renderDatavaluesForFlot() 의 방법 MeasuredParameter μˆ˜μ—…).

μžλ°”μŠ€ν¬λ¦½νŠΈ κΈ°λŠ₯을 μ‚¬μš©ν•˜κ² μŠ΅λ‹ˆλ‹€!

μ›μ‹œ μ˜κ΄‘μ˜ λ§ˆμ§€λ§‰ 컀밋 . 이 μ˜κ²¬μ— λ‚˜μ—΄λœ λͺ¨λ“  μž‘μ—…μ„ μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€. 이제 μ‹€μ œλ‘œ 데이터λ₯Ό ν”Œλ‘œνŒ…ν•˜λŠ” μž‘μ—…μ„ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€! plotting.py κ°€ μˆ˜μ •λ©λ‹ˆλ‹€.

컬러 ν”Œλ‘―μ„ μƒμ„±ν•˜λ €κ³  ν•  λ•Œ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. data['parameterplatformdatavaluepng']에 [null, null, 'λ§€κ°œλ³€μˆ˜ μœ€κ³½μ„  ν”Œλ‘― λΌλ””μ˜€ λ²„νŠΌ 정보 κ°€μ Έμ˜€κΈ° 문제']κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ° 에 쀑단점을 μ„€μ •ν•˜κ³  색상 ν”Œλ‘― λΌλ””μ˜€ λ²„νŠΌμ„ μ„ νƒν•˜κ³  데이터가 λ‚΄κ°€ κ΄€μ°°ν•œ 것과 λ™μΌν•œμ§€ ν™•μΈν•©λ‹ˆλ‹€. μ—¬μ „νžˆ 원인을 쒁히고 μžˆμŠ΅λ‹ˆλ‹€.

'λ§€κ°œλ³€μˆ˜-λ“±κ³ μ„ -ν”Œλ‘―-λΌλ””μ˜€ λ²„νŠΌ 정보 κ°€μ Έμ˜€κΈ° 문제' ν…μŠ€νŠΈκ°€ 이 쀄 μ—μ„œ λ‚˜μ˜΅λ‹ˆλ‹€.

μ•„, λ‚΄ 잘λͺ»μ΄μ•Ό.
이 였λ₯˜μ— λŒ€ν•œ λ‚΄ 좔츑은 'platformName'이 'contourplatformName'이어야 ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. λ˜λŠ” λ‹€λ₯Έ 해결책은 'contourplatformName'을 ν™•μΈν•˜μ§€ μ•ŠλŠ” 것일 수 μžˆμŠ΅λ‹ˆκΉŒ?
쑰언은 λΆˆν•„μš”ν•œ μ–‘μ˜ 컀밋을 ν”Όν•˜λŠ” 데 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

_fillXYZ 및 loadData λ©”μ„œλ“œμ—λŠ” λ“±κ³ μ„  λ³€μˆ˜μ— μž¬μ‚¬μš©ν•  수 μžˆλŠ” λ§Žμ€ μ½”λ“œκ°€ μžˆμŠ΅λ‹ˆλ‹€. ν•¨μˆ˜ λ‚΄μ—μ„œ 멀버 λ³€μˆ˜λ₯Ό μ„€μ •ν•˜λŠ” λŒ€μ‹  μƒμ„±ν•œ λͺ©λ‘μ„ λ°˜ν™˜ν•˜λ„λ‘ ν•¨μˆ˜λ₯Ό μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

if contourParameterID:
    self.clx, self.cly, self.clz = self.loadData(...)

λ“±κ³ μ„  x, y 및 z λ³€μˆ˜μ— λŒ€ν•œ 데이터λ₯Ό μ±„μš°κΈ° μœ„ν•΄ plotting.pyμ—μ„œ loadData() λ©”μ„œλ“œλ₯Ό μž¬μ‚¬μš©ν•˜λŠ” κ°€μž₯ 쒋은 방법에 λŒ€ν•΄ μƒκ°ν•©λ‹ˆλ‹€. 이 근처 μ—μ„œ 이런 κ°œμ‘°μ— λŒ€ν•΄ μ–΄λ–»κ²Œ 생각

diff --git a/stoqs/utils/Viz/plotting.py b/stoqs/utils/Viz/plotting.py
index 81c278b..cfe679c 100644
--- a/stoqs/utils/Viz/plotting.py
+++ b/stoqs/utils/Viz/plotting.py
@@ -556,6 +556,12 @@ class MeasuredParameter(BaseParameter):

             if not self.x and not self.y and not self.z:
                 self.loadData()
+            if contourParameterID is not None:
+                if not self.clx and not self.cly and not self.clz:
+                    self.loadData()
+                    self.clx = self.x
+                    self.cly = self.y
+                    self.clz = self.z

평행 contour_qs_mpλ₯Ό μƒμ„±ν•˜κ³  λ“±κ³ μ„  λ§€κ°œλ³€μˆ˜ 데이터 값을 μ–»κΈ° μœ„ν•΄ loadData()λ₯Ό μž¬μ‚¬μš©ν•˜λŠ” 데 도움이 λ˜λŠ” "토끼 ꡬ멍"에 λŒ€ν•΄ μžμ„Ένžˆ μ„€λͺ…ν•˜λŠ” 이 ν’€ μš”μ²­ 을 μ°Έμ‘°ν•˜μ„Έμš”. 이제 clx, cly 및 clz λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 등고선을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

@samuelrey https://github.com/stoqs/stoqs/pull/578 의 κΈ°λ³Έ 브랜치λ₯Ό capstone-spring2017 브랜치둜 λ³€κ²½ν•΄μ£Όμ„Έμš”. 이λ₯Ό μˆ˜ν–‰ν•˜λŠ” 방법에 λŒ€ν•œ 지침은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. https://github.com/blog/2224-change-the-base-branch-of-a-pull-request

λ³„λ„μ˜ 뢄기에 μžˆμœΌλ―€λ‘œ 증뢄 병합을 더 μ‰½κ²Œ 관리할 수 μžˆμŠ΅λ‹ˆλ‹€.

ν•˜λ£¨κ°€ 끝날 λ•ŒκΉŒμ§€ μ™„λ£Œν•˜κ² μŠ΅λ‹ˆλ‹€! κ°€λŠ” 것이 μ’‹λ‹€.

μ’‹μ•„ 보인닀! 이 μž‘μ€ μš”μ²­ 도 λ³΄μ•˜μŠ΅λ‹ˆκΉŒ?

그림이 μ €μž₯되기 직전에 μ‚½μž…ν•©λ‹ˆλ‹€.

                if self.contourParameterID is not None:
                    CS = ax.contour(clx, cly, clz)
                    ax.clabel(CS, fontsize=9, inline=1)

z의 λͺ¨μ–‘에 κ΄€ν•œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.
λ“±κ³ μ„  λ¬Έμ„œμ— λ”°λ₯΄λ©΄ x, y 및 zλŠ” λͺ¨μ–‘이 λ™μΌν•œ 2dμ΄κ±°λ‚˜ x 및 yκ°€ z의 ν–‰ μˆ˜μ™€ 길이가 λ™μΌν•œ 1dμ—¬μ•Ό ν•©λ‹ˆλ‹€.

xi, yi 및 ziκ°€ μƒμ„±λ˜λŠ” 것과 λ™μΌν•œ λ°©μ‹μœΌλ‘œ μƒμ„±λœ κ·Έλ¦¬λ“œ λ³€μˆ˜λ₯Ό 전달해야 ν•©λ‹ˆλ‹€.

였, λ‚˜λŠ” 그것을 λ³΄μ•˜λ‹€. μ•Œμ•˜μ–΄μš”!

screen shot 2017-05-18 at 4 04 52 pm
screen shot 2017-04-26 at 1 11 28 pm

λ‹€μŒμ€ 우리 μ½”λ“œκ°€ 생성할 수 μžˆμ—ˆλ˜ 것을 μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. 이제 Mike의 μ—…λ°μ΄νŠΈλ‘œ 인해 UI와 이미지 ν’ˆμ§ˆμ΄ λ‹€λ₯΄κ²Œ 보일 κ²ƒμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이것이 CSUMB STOQS νŒ€μ΄ μ œκ³΅ν•  수 μžˆμ—ˆλ˜ κ²ƒμž…λ‹ˆλ‹€.

CSUMB STOQS νŒ€μ΄ μ™„λ£Œν•œ μž‘μ—…μ— λŒ€ν•œ λΉ λ₯Έ μš”μ•½μ„ μ œκ³΅ν•˜κΈ° μœ„ν•΄ κΈ°μ‘΄ μ½”λ“œλ₯Ό ν•„ν„°λ§ν•˜κ³  ν•„μš”μ— 따라 μ‘°μ •ν–ˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ‘°μ • 쀑 ν•˜λ‚˜λŠ” μ™„μ „νžˆ μƒˆλ‘œμš΄ λΌλ””μ˜€ λ²„νŠΌ 열을 μΆ”κ°€ν•˜μ—¬ UI에 λ“±κ³ μ„  맀핑 μ˜΅μ…˜μ΄ μžˆλ„λ‘ ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ UI 변경은 저와 @LeslyGJ에 μ˜ν•΄ μ΄λ£¨μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€. μƒˆλ‘œμš΄ ν˜•μ‹μ— 따라 ν•΄λ‹Ή λ²„νŠΌμ— λŒ€ν•œ 연결도 이루어져야 ν–ˆμŠ΅λ‹ˆλ‹€. JavaScript @samuelrey λ₯Ό λ³€κ²½ν•˜λŠ” 것이 κ·Έ μž‘μ—…μ„ λ‹΄λ‹Ήν–ˆμŠ΅λ‹ˆλ‹€. 또 λ‹€λ₯Έ 쑰정은 μ„œλ²„ μΈ‘ μ½”λ“œ 뒀에 μžˆλŠ” νŒŒμ΄μ¬μ— λ›°μ–΄λ“€ λ•Œ μ΄λ£¨μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€. @samuelrey 와 @J0S349 및 @samuelreyλŠ” μƒˆλ‘œμš΄ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό μƒμ„±ν•˜κ±°λ‚˜ μ½”λ“œκ°€ μ œλŒ€λ‘œ μ „λ‹¬λ˜κ³  λ‹€μ‹œ

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰